这是在 nexenta 开放存储上。我有一个 zpool,由于某些磁盘,它处于 UNAVAIL 状态。
# zpool import -F
pool: delta
id: XYAZA
state: UNAVAIL
status: One or more devices are missing from the system.
action: The pool cannot be imported. Attach the missing
devices and try again.
config:
delta UNAVAIL insufficient replicas
raidz2-0 UNAVAIL insufficient replicas
c0t5000C500573978EBd0 ONLINE
c0t5000C50057397933d0 ONLINE
c0t5000C50057397C47d0 UNAVAIL cannot open
c0t5000C5005739997Fd0 UNAVAIL cannot open
c0t5000C50057399F87d0 ONLINE
c0t5000C5005739A90Bd0 ONLINE
c0t5000C5005739ABC7d0 UNAVAIL cannot open
c0t5000C5005739AC0Fd0 ONLINE
raidz2-1 DEGRADED
c0t5000C50057398657d0 ONLINE
c0t5000C50057398E03d0 ONLINE
c0t5000C50057398EF7d0 ONLINE
c0t5000C50057398FAFd0 ONLINE
c0t5000C5005739A39Fd0 UNAVAIL cannot open
c0t5000C5005739AAFFd0 ONLINE
spare-6 DEGRADED
c0t5000C5005739AC3Fd0 UNAVAIL cannot open
c0t5000C50057398EDBd0 ONLINE
c0t5000C5005739AE9Bd0 ONLINE
~# zpool import -FXf delta
cannot import 'delta': I/O error
Destroy and re-create the pool from
a backup source.
- 我怎样才能使这个 zpool 导入正常工作?
- 被指出“不可用”的磁盘,我该如何修复/更换它们?
更新日期:2018 年 9 月 7 日
在 Nexenta 上找到磁盘到插槽的映射后,重新安装增量卷中的磁盘,我可以让 raidz2-1 组中的一个磁盘处于 ONLINE 状态,但 raidz2-0 组中的 3 个磁盘仍然继续显示为 UNAVAIL。
# zpool import -F
pool: delta
id: XYAZA
state: UNAVAIL
status: One or more devices are missing from the system.
action: The pool cannot be imported. Attach the missing
devices and try again.
config:
delta UNAVAIL insufficient replicas
raidz2-0 UNAVAIL insufficient replicas
c0t5000C500573978EBd0 ONLINE
c0t5000C50057397933d0 ONLINE
c0t5000C50057397C47d0 UNAVAIL cannot open
c0t5000C5005739997Fd0 UNAVAIL cannot open
c0t5000C50057399F87d0 ONLINE
c0t5000C5005739A90Bd0 ONLINE
c0t5000C5005739ABC7d0 UNAVAIL cannot open
c0t5000C5005739AC0Fd0 ONLINE
raidz2-1 DEGRADED
c0t5000C50057398657d0 ONLINE
c0t5000C50057398E03d0 ONLINE
c0t5000C50057398EF7d0 ONLINE
c0t5000C50057398FAFd0 ONLINE
c0t5000C5005739A39Fd0 ONLINE
c0t5000C5005739AAFFd0 ONLINE
spare-6 DEGRADED
c0t5000C5005739AC3Fd0 UNAVAIL cannot open
c0t5000C50057398EDBd0 ONLINE
c0t5000C5005739AE9Bd0 ONLINE
我在设备上找到了另一个池的单个备用磁盘online
。现在的问题是 1. 我是否应该将备用磁盘分离/连接到 raidz2-1 组,该组在 spare-6 子类别下只有一个磁盘 UNAVAIL?或者 2. 我是否应该将备用磁盘分离/连接到 raidz2-0 组,该组仍有 3 个磁盘 UNAVAIL?
鉴于该池处于离线状态(导出后)并且现在无法导入。
我查看了有关如何创建此池的一些历史记录,它是在过去使用以下命令创建的
zpool create -m /volumes/delta -o autoreplace=on delta raidz2 c0t5000C500573978EBd0 c0t5000C50057397933d0 c0t5000C50057397C47d0 c0t5000C5005739997Fd0 c0t5000C50057399F87d0 c0t5000C5005739A90Bd0 c0t5000C5005739ABC7d0 c0t5000C5005739AC0Fd0 raidz2 c0t5000C50057398657d0 c0t5000C50057398E03d0 c0t5000C50057398EF7d0 c0t5000C50057398FAFd0 c0t5000C5005739A39Fd0 c0t5000C5005739AAFFd0 c0t5000C5005739AC3Fd0 c0t5000C5005739AE9Bd0
这是否表明 raidz2-0 和 raidz2-1 是两个 RAIDZ 镜像池?
如果是,我是否应该优先修复 raidz2-1 组磁盘,使其恢复在线状态,而不是 raidz2-0(有 3 个磁盘故障)?
答案1
- 我是否应该将备用磁盘分离/附加到 raidz2-1 组,该组在 spare-6 子类别下只有一个磁盘 UNAVAIL?
您的备用磁盘已自动连接raidz2-1
并重新镀银。通常,您现在会将c0t5000C5005739AC3Fd0
其从系统中分离并移除,因为它已经发生过一次故障(或者,如果您没有多余的资源,则将其重新用于另一个系统并希望获得最佳效果)。
但这不会帮助你,因为raidz2-0
仍然处于关闭状态。如果任何zpool 中的 vdev 发生故障,整个池及其上的所有数据都会丢失。如果无法维持配置的奇偶校验,每个 vdev 都会发生故障,因为其中有足够多的磁盘发生故障。在您的例子中,每个 Z2 vdev 可以承受两个磁盘的丢失,但其中一个丢失了三个。
- 我是否应该将备用磁盘分离/附加到仍有 3 个磁盘处于 UNAVAIL 状态的 raidz2-0 组?
首先,您现在没有真正的备用磁盘。而且,即使您从 中移除了一块正常工作的磁盘raidz2-1
(不推荐!),您仍然不会有任何收获,除非您修复 中的故障磁盘raidz2-0
。奇偶校验数据必须来自某个地方,在本例中,它必须来自您的故障磁盘。如果您无法让其中至少一个磁盘正常工作,那么最好的办法是从备份中恢复。
我查看了有关如何创建该池的一些历史记录,它是过去使用以下命令创建的,
zpool create -m /volumes/delta [...]
这是否表明 raidz2-0 和 raidz2-1 是两个 RAIDZ 镜像池?
不,这意味着您的池由两个条带化 vdev 组成,每个都配置了 raidz2 冗余和 8 个磁盘。您最多可以在每个 vdev 中丢失 2 个磁盘。如果在任何一个 vdev 中丢失 3 个磁盘,游戏就结束了。
在 ZFS 中,所有冗余都在 vdev 级别处理。池始终在所有现有 vdev 上进行条带化。如果任何 vdev 发生故障,池也会发生故障。镜像是 vdev 的一种冗余类型,与 raidz1/z2/z3 不兼容(您可以混合搭配具有不同冗余类型的 vdev,但最弱的冗余类型将决定池的强度,性能会受到影响,因此不建议这样做)。
如果是,我是否应该优先修复 raidz2-1 组磁盘,使其恢复在线状态,而不是 raidz2-0(有 3 个磁盘故障)?
不,你必须先修复raidz2-0
。
它们全部属于 Seagate,其中有 SEAGATE、Rev. A001 和 SEAGATE、Rev. 0002,大小为 1.82TB
这现在对您没有帮助,但将来可能会有帮助:建议混合搭配制造商和型号,甚至制造日期,以平衡“一批坏驱动器”的情况。例如,如果您从 4 家主要制造商(Seagate、Western Digital、Hitachi、Toshiba)各购买了 4 个磁盘,并将它们 2-2 拆分到您的 vdev 上,即使一个制造商的所有磁盘同时发生故障,您仍然会有一个工作池。