Linux

如何使用 2 個不同大小的 4 個磁碟創建 LVM RAID 1?

  • October 6, 2021

我有一個系統

2 x 1TB (NVMe SSDs)
2 x 2TB (SATA SSDs)

磁碟,並想使用所有可用磁碟創建一個 RAID 1 系統(所以我最後有一個 3TB RAID1 系統)。不幸的是,大多數關於如何設置的範例僅適用於兩個磁碟。

這裡推薦的方法是什麼?

  • 為每個磁碟大小創建 RAID1,即鏡像相同類型的磁碟,然後在其上創建一個大型邏輯卷?
  • 還是有其他更聰明的方法?

如果有人有一步一步的食譜(或一個很好的連結),那將非常感激。

另外,我需要一個單獨的系統或引導分區嗎?

謝謝你。

這在很大程度上取決於您的目標,因為 NVMe 與 SATA SSD 的速度和延遲存在巨大差異。

就個人而言,我會創建兩組不同的 LVM 卷組 (VG)。一個用於 NVMe,另一個用於 SSD,並手動將它們分配給不同的任務。即用於 IO 繁重任務的 NVMe,例如用於更通用儲存的 DB 和 SSD。當然,您可以將它們組合成一個 VG,但這樣您基本上是在“減慢” NVMe 到 SATA 的速度。嗯……不是真的,但幾乎。

至於引導 - 如果您有 EFI 模式系統和現代引導載入程序(即 GRUB2),您將需要一個單獨的小型(256-512Mb 即可)分區用於 FAT32 類型的 EFI 文件。但至少 EFI 系統可以直接從 NVMe 引導,GRUB2 可以直接從 Linux RAID + LVM 引導。

  1. fdisk在大約 256-512 Mb 大小的兩個 NVMe 驅動器上創建第一個分區(即使用)。將其類型設置為 EFI 啟動。
  2. 為剩餘空間創建第二個分區以進行 100% 分配。將其類型設置為 Linux RAID。
  3. 將每個第一個 EFI 分區格式化為 FAT32(即mkfs.vfat -F32 /dev/nvme0n1p1)。
  4. 如果您想讓 SSD 驅動器在兩個 NVMe 都發生故障或只有一個 Linux RAID 分區用於數據的情況下可啟動,您可以對 SSD 驅動器執行相同操作。
  5. 為 NVMe 創建第一個 RAID 陣列:mdadm --create /dev/md1 -l 1 -n 2 -b internal /dev/nvme0n1p2 /dev/nvme1n1p2.
  6. 為 SSD 成員創建第二個 RAID 陣列:(mdadm --create /dev/md2 -l 1 -n 2 /dev/sda2 /dev/sdb2如果您在那裡創建了 EFI 分區,或者如果沒有創建 sda1/sdb1)。
  7. 從新創建的陣列中創建 LVM PV pvcreate /dev/md1 && pvcreate /dev/md2:.
  8. 在 PV 上創建 VG 和 LV。如果您仍想組合它們,則創建 2 個 PV,然後將它們添加到同一個 VG。
  9. 確保掛載 EFI 分區並在每個驅動器上安裝正確的引導載入程序。對於第一個 NVMe 驅動器,就像這樣:mount /dev/nvme0n1p1 /boot/efi && grub-install /dev/nvme0n1.

請注意,您不能為 EFI 分區使用 RAID 陣列。嗯……不是真的,有一些技巧,但我認為它們不值得,因為它們沒有任何不可恢復的儲存空間。它只是一個小的二進製文件,以便 EFI“bios”可以引導您的引導載入程序。即使它失敗了,你仍然可以用某種 Live 鏡像(比如 SuperGRUBdisk)啟動你的系統,然後再次使用 grub-install 重新安裝它。

引用自:https://serverfault.com/questions/1079596