如何將 2 設備條帶鏡像附加到池?
我有一個由 2TB 硬碟組成的單驅動器池。我有兩個可以在鏡像中使用的 1TB 驅動器 - 我想為我的池添加冗餘。
如何將這兩個驅動器連接為一個設備,以便它們可以用作條帶鏡像?
我們稱我的 2TB 驅動器為
sda
,空白的 1TB 驅動器為sdb
和sdc
。我試過了:
zfs attach tank sda sdb sdc
但那說too many arguments
.我試過了:
zfs attach tank sda sdb
但那說device is too small
我試過了:
zfs attach tank sda sdb+sdc
但那說no such device in /dev
我試過了:
zfs attach tank sda sdb,sdc
但那說no such device in /dev
我已經閱讀了手冊並蒐索了網路 - 我沒有想法。
我想我可以嘗試從這兩個 1TB 驅動器創建一個新的條帶池,在裡面創建一個 zvol 並將其用作我的主池的鏡像,但這可能會給我沒有足夠的容量來創建鏡像,再加上一個很多不必要的成本。
我怎樣才能做到這一點?
這不能通過 ZFS 直接完成。從手冊頁:
虛擬設備不能嵌套,因此鏡像或 raidz 虛擬設備只能包含文件或磁碟。不允許鏡子的鏡子(或其他組合)。
我的建議是創建一個包含兩個 1 TB 磁碟的新池,並使用一些東西作為syncoid來頻繁地將第一個池的內容髮送到新池。
— 警告:下面笨拙的解決方法!如果不確定,請勿使用!!!—
無論如何,如果您確實想將兩個 1 TB 磁碟添加為前 2 TB 磁碟的鏡像,可以嘗試一種解決方法。您可以使用 device-mapper(以其 LVM 形式)連接兩個磁碟並將生成的捲附加到 2 TB 設備。例如:
pvcreate /dev/sdb pvcreate /dev/sdc vgcreate zvg /dev/sdb vgextend zvg /dev/sdc lvcreate zvg --name zdev -l +100%FREE zpool attach tank /dev/sda /dev/zvg/zdev zpool status
您可以使用 mdadm 獲得類似(甚至更好)的結果,創建一個 RAID0 設備並將其附加到 zpool:
mdadm --create md127 --level=0 --raid-devices=2 /dev/sdb /dev/sdc zpool attach tank /dev/sda /dev/md127 zpool status
不推薦這種方法。需要您自擔風險使用它。