我在Ubuntu上有一个2个驱动器的ZFS镜像池。 池的驱动器位于/ dev / sda和/ dev / sdb。 出于各种原因,我不得不将物理驱动器放在/ dev / sda到我服务器上的不同插槽,所以Ubuntu现在认为它在/ dev / sdc。 看起来,正因为如此,zfs池不再认可这个驱动器,因此将我的池标记为降级。 zpool status -x yield
pool: data state: DEGRADED status: One or more devices could not be used because the label is missing or invalid. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Replace the device using 'zpool replace'. see: http://zfsonlinux.org/msg/ZFS-8000-4J scan: scrub repaired 0 in 12h56m with 0 errors on Sun Apr 9 13:20:15 2017 config: NAME STATE READ WRITE CKSUM data DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 9406053825076090209 UNAVAIL 0 0 0 was /dev/sda1 sdb ONLINE 0 0 0
我尝试运行一些命令,我在网上find涉及zpool replace ,但它似乎抱怨,当我这样做,因为它看到/dev/sdc ( /dev/sdc1 )是一个ZFS磁盘(分区)。
理想情况下,我只想告诉ZFS缺less的驱动器在/dev/sdc – 这应该让我的池回到原始状态。 另一个想法可能是告诉Linux交换标签/dev/sda和/dev/sdc – 不知道这是不是一个疯狂的想法。 最坏的情况,也许有一些zpool replace命令,或多或less抹去/dev/sdc上的内容,并从头开始重build该磁盘上的镜像。 真的很感激什么是可能的build议/build议 – 谢谢!
使用/ dev / disk-by-id /名称而不是RAW SCSI名称很重要,因为像USB磁盘插入一样简单可能导致设备被重命名。
请参阅: 为什么重新启动导致ZFS镜像的一端变为UNAVAIL?
您可能能够zpool export data然后zpool import data 。
我也担心有一个sda1 。 当镜像的另一面是/ dev / sdb时,您不应该有分区。