使用 XFS 輕鬆擴展 Linux 軟體 RAID 5。最佳實踐?
我使用我的 Ubuntu 機器作為使用 Samba 共享的 Windows/Linux/Mac 客戶端的文件伺服器。我需要它可以通過添加更多硬碟驅動器輕鬆擴展,而無需來回移動任何數據。
到目前為止,我就是這樣做的。我已經成功添加了第四個硬碟。現在很高興知道這應該怎麼做?我做錯了什麼或我可以做得更好?
創建初始 3 驅動器陣列
我從三個空驅動器開始:/dev/sdb、/dev/sdc 和 /dev/sdd。
首先,我為所有驅動器創建了空分區:
$ fdisk /dev/sdX n # Create a new partition p # Primary 1 # First partition [enter] # Starting point to first sector (default) [enter] # Ending point to last sector (default) t # Change partition type fd # Type: Linux raid autodetect w # Write changes to disc
為所有三張磁碟創建空 RAID 分區後,我創建了一個 RAID5 陣列:
$ mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
現在創建了 RAID5 陣列,並且已經在建構它。這需要時間,但您可以繼續創建新的物理 LVM2 卷:
$ pvcreate /dev/md0
現在讓我們創建一個新的捲組:
$ vgcreate vd_raid /dev/md0
然後我們需要在該卷組內創建一個新的邏輯卷。首先我們需要弄清楚創建的捲組的確切大小:
$ vgdisplay vg_raid
可以從指示物理範圍中的“總 PE”的行中看到大小。讓我們假設它是 509。現在創建一個佔用所有可用空間的新邏輯卷:
$ lvcreate -l 509 vg_raid -n lv_raid
最後,我們可以在該邏輯卷之上創建一個文件系統:
$ mkfs.xfs /dev/mapper/vg_raid-lv_raid
為了能夠使用我們新創建的 RAID 陣列,我們需要創建一個目錄並掛載它:
$ mkdir /raid $ mount /dev/mapper/vg_raid-lv_raid /raid
現在可以使用了。但是要讓它在重啟後自動掛載,我們需要將 RAID 幾何結構保存到 mdadm 的配置文件中:
$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf
然後將以下行添加到自動掛載 RAID 陣列的 /etc/fstab 中:
/dev/mapper/vg_raid-lv_raid /raid auto auto,noatime,nodiratime,logbufs=8 0 1
現在 RAID 陣列已準備好使用,並在每次啟動後自動掛載到 /raid 目錄。
向陣列添加新驅動器
假設現在您有一個新驅動器 /dev/sde,您希望將其添加到先前創建的陣列中而不會失去任何數據。
首先,新驅動器需要像所有其他驅動器一樣進行分區:
$ fdisk /dev/sde n # Create a new partition p # Primary 1 # First partition [enter] # Starting point to first sector (default) [enter] # Ending point to last sector (default) t # Change partition type fd # Type: Linux raid autodetect w # Write changes to disc
然後需要將其添加到 RAID 陣列中:
$ mdadm --add /dev/md0 /dev/sde1
現在 RAID5 陣列包括四個驅動器,目前只有三個在使用中。需要擴展陣列以包括所有四個驅動器:
$ mdadm --grow /dev/md0 --raid-devices=4
然後需要擴展物理 LVM2 卷:
$ pvresize /dev/md0
現在物理卷預設調整大小以覆蓋 RAID 陣列中的所有可用空間。我們需要找出物理範圍的新大小:
$ vgdisplay vg_raid
讓我們想像一下,現在新的尺寸是 764(可以從“Total PE”中看出)。現在擴展邏輯卷以覆蓋它:
$ lvextend /dev/mapper/vg_raid-lv_raid -l 764
然後展開 XFS 文件系統。這需要在文件系統線上和掛載期間完成:
$ xfs_grow /raid
預設情況下,它會擴展以覆蓋所有可用空間。最後需要更新 RAID 陣列幾何結構,因為陣列現在包含一個新磁碟。首先從 /etc/mdadm/mdadm.conf 中刪除添加的行,然後添加一個新行:
$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf
我認為你做對了。確保您了解並註意有關在
man 8 mdadm
.就我個人而言,如果我正在增長 LVM 卷,我不會增長現有的 RAID 陣列來完成它。我會創建另一個 RAID 陣列,從中創建一個新的 physvol,然後將其添加到同一個卷組中。這是一個更安全的操作(不涉及在新磁碟集上重寫整個 RAID5 陣列)並且可以減小陣列的大小。