一些用户在连接到池上的此服务器共享时遇到问题,而其他已登录的用户似乎没有问题。安排重新启动后,系统启动后池无法导入。
在重新启动过程中,我注意到 POST 期间驱动器出现故障,挡板上的橙色指示灯亮起,下方显示zpool import
。
该池有足够的设备可联机,但无法成功导入。
$ zpool import
pool: darkpool
id: 5743344949875332602
state: DEGRADED
status: One or more devices contains corrupted data.
action: The pool can be imported despite missing or damaged devices. The
fault tolerance of the pool may be compromised if imported.
see: http://zfsonlinux.org/msg/ZFS-8000-4J
config:
darkpool DEGRADED
raidz3-0 DEGRADED
wwn-0x5000c5008581aafb ONLINE
wwn-0x5000c5008581b61b ONLINE
wwn-0x5000c5008581b79f ONLINE
wwn-0x5000c5008581b933 ONLINE
wwn-0x5000c5008581b953 ONLINE
wwn-0x5000c5008581bdf7 ONLINE
wwn-0x5000c50085825ec7 ONLINE
wwn-0x5000c5008581cc03 ONLINE
wwn-0x5000c5008581e423 UNAVAIL
wwn-0x5000c5008581fd3f ONLINE
wwn-0x5000c50085820b93 ONLINE
wwn-0x5000c500858211b3 ONLINE
wwn-0x5000cca267ab0de4 ONLINE
spare-13 DEGRADED
11992420879588183985 FAULTED corrupted data
wwn-0x5000c500858252ef ONLINE
spares
wwn-0x5000c500858252ef
$ zpool status
no pools available
$ zpool import darkpool
cannot import 'darkpool': I/O error
Destroy and re-create the pool from
a backup source.
$ zpool import -f darkpool
cannot import 'darkpool': I/O error
Destroy and re-create the pool from
a backup source.
$ zpool import -fFn darkpool
$ zpool import -F darkpool
cannot import 'darkpool': I/O error
Destroy and re-create the pool from
a backup source.
$ zpool import -fFX darkpool
cannot import 'darkpool': I/O error
Destroy and re-create the pool from
a backup source.
有人见过这样的事情吗?我不确定在销毁池并从备份中恢复之前该尝试什么(我想避免这种情况,因为它会花很长时间)。
看起来备份在几周前就开始出现故障了。有什么方法可以知道维修故障驱动器是否能让池子满意吗?
系统是 Ubuntu 18.04.2 LTS,带有 zfsutils-linux_0.7.5-1ubuntu16.7_amd64。
答案1
我最终注册了 LinkedIn Premium,这样我就可以给 ZFS 开发人员发消息(他真的很好心地回复了我!)。他建议我将池移至 ZFS 0.8 系统,他在 Github 上的相关提交包含在 Ububtu 19.10 和其他发行版中。
处于只读模式,我们可以通过禁用选项来加载池spa_load_verify_metadata
。这也会跳过池的扫描,因此您不必等待几分钟或几小时(具体取决于池的大小)。
一旦池加载完毕,我便开始将所有内容备份到不同的服务器,并计划销毁池和服务器(戴尔的现场行程太多,更换了 CPU、内存、主板等...),然后重新开始使用新系统。
切换选项(Ubuntu 19.10):
$ cat /sys/module/zfs/parameters/spa_load_verify_metadata
1
$ echo 0 >/sys/module/zfs/parameters/spa_load_verify_metadata
$ cat /sys/module/zfs/parameters/spa_load_verify_metadata
0
加载池
zpool import -o readonly=on darkpool -f
重启后该标志将重置,因此池不会在启动过程中加载。但实际上你还是想复制数据并停止使用该池。