Linux
如何將一盤 zfs 池轉換為兩盤 RAID1 池?
我的台式電腦上有一個名為 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