ฉันใช้เครื่อง Ubuntu เป็นไฟล์เซิร์ฟเวอร์สำหรับไคลเอนต์ Windows/Linux/Mac โดยใช้การแชร์ Samba ฉันต้องการให้มันขยายได้ง่ายโดยการเพิ่มฮาร์ดไดรฟ์โดยไม่ต้องย้ายข้อมูลไปมา

นี่คือวิธีที่ฉันได้ทำไปแล้ว ฉันเพิ่มฮาร์ดไดรฟ์ตัวที่สี่สำเร็จแล้ว ตอนนี้คงจะดีที่รู้ว่าสิ่งนี้ควรทำอย่างไร? สิ่งที่ฉันทำผิดหรือสิ่งที่ฉันสามารถทำได้ดีกว่า?

การสร้างอาร์เรย์ 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

จากนั้นเพิ่มบรรทัดต่อไปนี้ใน /etc/fstab ซึ่งติดตั้งอาร์เรย์ RAID โดยอัตโนมัติ:

/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
answer

ฉันคิดว่าคุณเข้าใจถูกแล้ว ตรวจสอบให้แน่ใจว่าคุณเข้าใจและปฏิบัติตามคำเตือนเกี่ยวกับการเติบโตของ RAID 5 ในman 8 mdadm.

โดยส่วนตัวแล้วถ้าฉันเพิ่มปริมาณ LVM ฉันจะไม่เติบโตอาร์เรย์ RAID ที่มีอยู่ให้ทำ ฉันจะสร้างอาร์เรย์ RAID อื่น สร้าง physvol ใหม่ จากนั้นเพิ่มลงในกลุ่มวอลุ่มเดียวกัน นี่เป็นการดำเนินการที่ปลอดภัยกว่ามาก (ไม่เกี่ยวข้องกับการเขียนอาร์เรย์ RAID5 ใหม่ทั้งหมดในดิสก์ชุดใหม่) และทำให้ขนาดอาร์เรย์ของคุณมีขนาดเล็กลง