如何将单磁盘 zfs 池转换为两磁盘 RAID1 池?

如何将单磁盘 zfs 池转换为两磁盘 RAID1 池?

我的台式计算机上有一个名为 data 的单驱动器 zfs 池,是使用zpool create data /dev/mapper/data(zfs on luks) 之类的内容创建的。我想将其转换为 raid1 池,但我的机器上只有 1 个驱动器可供使用,并且还有一个插槽。

我能否以某种方式告诉 zfs 将我的数据池转换为镜像,使用新驱动器作为该组中的第二个驱动器?

如果这是不可能的,是否有办法仅使用新驱动器创建新的降级镜像池(因为我还没有第二个驱动器)?这将使我有机会将数据从旧池复制到新镜像池,然后将原始驱动器添加到新池。

答案1

我是 FreeBSD 新手,还没有使用过 ZFS。但是,根据我的研究,为什么不使用

#zpool attach mypool /dev/sdX /dev/sdY

而不是所有这些?应自动将池转换为镜像。

答案2

我不认为我会回答我自己的问题,但经过大量谷歌搜索并使用多个磁盘进行实验后,我发现了如何创建降级的 zfs 镜像 (raid1) 池。

我将其发布在这里,以便任何也有此问题的人都可以使用。

# create sparse file, as placeholder for 2nd disk
truncate -s 1GB /tmp/placeholder.img

# create the new mirror pool
zpool create mypool mirror /dev/sdX /tmp/placeholder.img

# immediately place sparse file offline, so zfs won't write to it
zpool offline mypool /tmp/placeholder.img

# verify mirror pool is degraded
zpool status -v

# later, once 2nd disk is available, replace sparse file with new disk
zpool replace mypool /tmp/placeholder.img /dev/sdY

# verify new drive is there, and pool is either resilvering or ONLINE
zpool status -v

相关内容