JBOD:如何Raid1不同容量的硬碟? Btrfs、ZFS?

JBOD:如何Raid1不同容量的硬碟? Btrfs、ZFS?

我選擇了一些硬碟,容量為:

1 TB
500 GB
320 GB
250 GB

我想用它們製作 Raid1,從某種意義上說,任何資料的副本都將始終位於我擁有的四個驅動器中的兩個上。問題是,所有驅動器都有不同的容量。過去,從 mdadm 遷移後,我一直運行正常的 Raid1 mdadm 2x 2TB、Btrfs 和 2x 2TB。我不介意再次使用 mdadm、Btrfs 或 ZFS,儘管我對此一無所知。

最適合我的檔案系統或實用程式是什麼,符合這個標準:

  1. 始終擁有兩個文件副本,因此如果一個磁碟損壞,我不會丟失數據
  2. 擁有盡可能多的可用空間且仍符合第 1 點的標準

我該用什麼?我感覺 Btrfs Raid1 會處理這個問題,並且在所有四個硬碟上為每個文件提供兩個副本,但我不確定。我的 Linux 運行在 AMD64 電腦上,核心為 5.10。

歡迎任何建議。

編輯 - 解決方案!

非常感謝您的所有回覆!所以我繼續進行 Btrfs Raid1 配置,這是一個耗時的過程,但非常輕鬆,因為我已經熟悉 Btrfs 並每天使用它。我認為 Raid1 不會損失任何實體空間,同時保持冗餘比為 2。https://carfax.org.uk/btrfs-usage/

我的設備尺寸:

931.51 GiB
465.76 GiB
298.09 GiB
232.89 GiB

Total space for files in Raid1 mode: 963 GiB (all space used)
Total space for files in Raid5 mode: 995 GiB (466 GiB unusable on biggest drive)

使用 Raid1,我現在儲存了 719.5 GiB 數據,還有 241.6 GiB 可用空間,總共 961.1 GiB,與計算器顯示的數據相符。我可以稍後隨意添加/刪除驅動器。驚人的。

我很想選擇 Raid5,因為它的理論讀取速度增益為 4 倍,而 Raid1 則為 2 倍。但我聽說它目前還處於實驗階段,不建議日常使用,對嗎?它在5.10核心上的狀態如何,有人使用它並且可以分享他們的經驗嗎?

在構建陣列、一一添加所有驅動器並將所有資料遷移到其中(我有備份)之後,我進行了全面清理,一切都很好:

$ sudo btrfs scrub start -Bd /home

Scrub device /dev/sda (id 1) done
Scrub started:    Thu Jun 17 10:10:38 2021
Status:           finished
Duration:         2:38:51
Total to scrub:   724.03GiB
Rate:             77.53MiB/s
Error summary:    no errors found

Scrub device /dev/sdd (id 2) done
Scrub started:    Thu Jun 17 10:10:38 2021
Status:           finished
Duration:         1:52:39
Total to scrub:   374.03GiB
Rate:             56.57MiB/s
Error summary:    no errors found

Scrub device /dev/sdc (id 3) done
Scrub started:    Thu Jun 17 10:10:38 2021
Status:           finished
Duration:         0:48:06
Total to scrub:   207.00GiB
Rate:             73.09MiB/s
Error summary:    no errors found

Scrub device /dev/sdb (id 4) done
Scrub started:    Thu Jun 17 10:10:38 2021
Status:           finished
Duration:         0:30:00
Total to scrub:   143.00GiB
Rate:             80.89MiB/s
Error summary:    no errors found

很高興!

編輯 - @Marcus Müller 的評論:

“備註:您確定需要這個嗎?320 GB 和 250 GB 可能不是很新的驅動器 (...)”

你說得很對,這些都是非常舊的驅動器!我刪除了過去幾年我在 Btrfs Raid1 上使用的當前 2 個 2TB Seagate Barracuda Compute 驅動器,以放置這些隨機的 4 個舊驅動器。 Barracudas 將連接到我的伺服器,這需要完全的可靠性,我有2 個SSD 250GB 用於/ 那裡(Ext4 mdadm),以及2 個HDD TB 用於/home 和/var (Btrfs Raid1),並帶有ECC RAM。另外兩個 Barracuda 將加入前兩個,用於 Btrfs Raid1 模式或可能的 Raid10 或 Raid5。

4x 舊驅動器現在位於我的桌面上,它們包括:

Western Digital Blue Mobile, WDC WD10JPVX-60JC3T0
[1.00 TB, 4K sectors, SATA 3.0, 6.0 Gb/s, 5400 RPM, 2.5"]
Power_On_Hours 2496

Toshiba 2.5" HDD MK..65GSX, TOSHIBA MK5065GSX
[500 GB, 512 sectors, SATA 2.6, 3.0 Gb/s, 5400 RPM, 2.5"]
Power_On_Hours 2519

Seagate Momentus Thin, ST320LT007-9ZV142
[320 GB, 4K sectors, SATA 2.6, 3.0 Gb/s, 7200 RPM, 2.5"]
Power_On_Hours 5152

Seagate Barracuda 7200.12,ST3250318AS
[250 GB, 512 sectors, SATA 2.6, 3.0 Gb/s, 7200 RPM, 3.5"]
Power_On_Hours 6591

可靠性確實不是問題,我有備份,但我不希望太快出現任何令人痛苦的意外,因此2.0 的基本冗餘將節省我的麻煩,如果其中一個驅動器在一年左右內失效,我會再安裝另一個驅動器一個或兩個。

答案1

我只需在每個驅動器上擁有一個 LVM 實體磁碟區即可:

pvcreate /dev/drive1 /dev/drive2 /dev/drive3 /dev/drive4

然後建立一個卷宗組:

vgcreate myvolumegroup /dev/drive1 /dev/drive2 /dev/drive3 /dev/drive4

最後,在其上建立一個邏輯卷,該邏輯卷具有每個區塊都有一個鏡像的屬性:

lvcreate --mirrors 1 -l100%FREE  -n myvolume myvolumegroup

恭喜!您現在擁有一個可以使用的區塊設備任何您想要的檔案系統,例如 btrfs 或 XFS:

mkfs.xfs /dev/myvolumegroup/myvolume
mount /dev/myvolumegroup/myvolume /mnt

應該可以工作。


備註:你是嗎當然你要這個? 320 GB 和 250 GB 可能不是很新的驅動器,透過將這些可能非常老化的驅動器包含在此處,您只能獲得 (160+125)GB = 285 GB 的額外儲存空間。

使用舊磁碟機與您希望 RAID1 開始的原因有點相反:資料可用性。另外,請考慮使用 RAID5(man lvmraid可能會幫助您)。

答案2

使用它btrfs是因為與 ZFS 不同,它可以有效地處理不同大小的磁碟機。您最終會得到所有磁碟機的總容量大致除以二的結果(有 2 個副本用於冗餘)。約 1TB。不包括透明壓縮。

ZFS 只會建立一個容量為最小的裝置 - 但如果有 4 個驅動器,您將建立兩個鏡像 vdev。例如,具有 1TB 和 500GB 的鏡像 1 vdev 以及具有 320GB 和 250GB 的鏡像 2 vdev。為了最大限度地減少浪費的空間,您可以對 1TB 和 320GB 磁碟機進行分割,以便它們具有 500GB 分割區和 250GB 分割區來匹配其鏡像磁碟機。這將在壓縮前為池提供總共 750GB 的容量(在類似 RAID1+0 的配置中)。這些磁碟機上的剩餘空間(500GB 和 70GB)可用於其他用途,例如您不關心的東西,因為它是從網路下載並「備份在網路上」的。

如果您負擔得起,我建議您將 250GB 硬碟更換為另一個 1TB 硬碟。這對於 zfs 來說非常好,對於 btrfs 來說也非常好,因為在透明壓縮之前,它們的容量都會增加到大約 1.3TB。 「浪費」的空間少很多。

不要使用 LVM 或 mdadm 來執行 RAID-1/鏡像,btrfs 本身可以做到這一點 - 並且它會破壞使用 btrfs 等糾錯檔案系統的大部分目的。

快照和透明壓縮等功能仍然有效,但您將失去這些檔案系統糾正錯誤的能力,因為您實際上只為其提供了一個驅動器。

如果您願意,可以在 ZFS 或 btrfs 下使用軟體或硬體 raid,但 a) 不需要,b) 這不是一個好主意,事實上這是一個糟糕的主意。它的工作量更大,設定起來也更複雜,刪除了一個重要的功能,並且沒有提供任何補償性的好處。

如果您想使用 LVM 或 mdadm,請在它們之上使用ext4(或更好的是)。xfs

順便說一句,我仍然不認為我會相信 btrfs 用於 RAID-5/6,但它對於 RAID-1 或​​ RAID-10(如鏡像)來說絕對沒問題。

相關內容