我在 Ubuntu 上有一个 2 驱动器 ZFS 镜像池。池的驱动器位于 /dev/sda 和 /dev/sdb。由于各种原因,我不得不将 /dev/sda 上的驱动器物理移动到服务器中的其他插槽,因此 Ubuntu 现在将其识别为位于 /dev/sdc。似乎正因为如此,zfs 池不再识别该驱动器,因此将我的池标记为已降级。 zpool status -x
收益
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
我尝试运行一些我在网上找到的涉及的命令zpool replace
,但当我这样做时它似乎会抱怨,因为它看到/dev/sdc
(/dev/sdc1
)是一个 ZFS 磁盘(分区)。
理想情况下,我只想告诉 ZFS 丢失的驱动器位于/dev/sdc
-- 这应该会让我的池恢复到原始状态。另一个想法可能是告诉 Linux 交换标签/dev/sda
--/dev/sdc
不知道这是不是一个疯狂的想法。最坏的情况是,也许有一些zpool replace
命令或多或少会擦除上面的内容/dev/sdc
并从头开始重建该磁盘上的镜像。非常感谢任何关于可能/推荐的建议 -- 谢谢!!
答案1
使用 /dev/disk-by-id/ 名称而不是 RAW SCSI 名称非常重要,因为像插入 USB 磁盘这样简单的事情都可能导致设备重命名。
请参见:为什么重新启动会导致我的 ZFS 镜像的一侧变为 UNAVAIL?
您也许能够zpool export data
接着说zpool import data
。
我还担心有一个sda1
。当镜像的另一侧是 /dev/sdb 时,您不应该有分区。