Linux

使用 XFS 輕鬆擴展 Linux 軟體 RAID 5。最佳實踐?

  • February 19, 2010

我使用我的 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 陣列)並且可以減小陣列的大小。

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