Linux

如何將一盤 zfs 池轉換為兩盤 RAID1 池?

  • September 1, 2021

我的台式電腦上有一個名為 data 的單驅動器 zfs 池,使用類似zpool create data /dev/mapper/data(zfs on luks) 創建。我想將它轉換成一個 raid1 池,但只有 1 個驅動器可以玩,我的機器上還有一個插槽。

我可以以某種方式告訴 zfs 將我的數據池轉換為鏡像,使用新驅動器作為集合中的第二個驅動器嗎?

如果這不可能,有沒有辦法只使用新驅動器創建一個新的降級鏡像池(因為我還沒有第二個驅動器)?這將使我有機會將數據從舊池複製到新鏡像池中,然後將原始驅動器添加到新池中。

我是 FreeBSD 的新手,還沒有使用過 ZFS。但是,根據我的研究,為什麼不使用

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

而不是所有這些?應該自動將池轉換為鏡像。

我不認為我會回答我自己的問題,但是經過大量的Google搜尋並旋轉了一個帶有多個磁碟的 vagrant box 進行試驗,我發現瞭如何創建一個降級的 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

引用自:https://unix.stackexchange.com/questions/525950