如何將 2 裝置條紋鏡像連接到池子?

如何將 2 裝置條紋鏡像連接到池子?

我有一個由 2TB HDD 組成的單驅動器池。我有兩個 1TB 硬碟可以在鏡像中使用 - 我想在我的池中添加冗餘。

如何將這兩個驅動器連接為單一設備,以便它們可以用作條帶鏡像?

我們將我的 2TB 硬碟稱為sda,空白的 1TB 硬碟稱為sdbsdc

我嘗試過: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 並將其用作我的主池的鏡像,但這可能無論如何都不會為我提供足夠的鏡像容量,再加上一個很多不必要的開銷。

我怎樣才能做到這一點?

答案1

這不能透過 ZFS 直接完成。來自手冊頁:

虛擬設備不能嵌套,因此鏡像或 raidz 虛擬設備只能包含檔案或磁碟。不允許使用鏡子的鏡子(或其他組合)。

我的建議是創建一個包含兩個 1 TB 磁碟的新池,並使用以下內容:暈厥頻繁地將第一個池的內容傳送到新池。

--- 警告:下面有笨拙的解決方法!如果不確定,請勿使用! ---

無論如何,如果你真的如果想要新增兩個 1 TB 磁碟作為前 2 TB 磁碟的映像,可以嘗試解決方法。您可以使用裝置映射器(以其 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

這種方法是不是受到推崇的。需要您自擔風險使用它。

答案2

要將兩個新磁碟新增至池中,您可以使用,zpool add tank mirror sdb sdc但這會將新磁碟對新增為鏡像,並使用現有磁碟對其進行條帶化。 (這不會增加任何冗餘)。

您需要使用該zpool attach命令將磁碟附加到現有的 vdev,但不能使用鏡像對來支援單一磁碟,您必須新增一個新的 2TB 磁碟以使其成為鏡像對。

相關內容