ค้นหาเว็บไซต์

การสร้าง RAID 5 (สตริปด้วย Distributed Parity) ใน Linux - ตอนที่ 4


ใน RAID 5 แถบข้อมูลจะครอบคลุมหลายไดรฟ์ที่มี Parity แบบกระจาย การสไทรพ์ที่มีพาริตีแบบกระจายหมายความว่าจะแยกข้อมูลพาริตีและสไทรพ์ข้อมูลบนดิสก์หลายตัว ซึ่งจะมีความซ้ำซ้อนของข้อมูลที่ดี

สำหรับระดับ RAID ควรมีฮาร์ดไดรฟ์อย่างน้อยสามตัวขึ้นไป RAID 5 กำลังถูกใช้ในสภาพแวดล้อมการผลิตขนาดใหญ่ซึ่งมีความคุ้มค่าและให้ประสิทธิภาพและความซ้ำซ้อน

ความเท่าเทียมกันคืออะไร?

ความเท่าเทียมกันเป็นวิธีการทั่วไปที่ง่ายที่สุดในการตรวจจับข้อผิดพลาดในการจัดเก็บข้อมูล พาริตี้จัดเก็บข้อมูลในแต่ละดิสก์ สมมติว่าเรามีดิสก์ 4 ตัว ใน 4 ดิสก์ พื้นที่ดิสก์หนึ่งจะถูกแบ่งออกเป็นดิสก์ทั้งหมดเพื่อเก็บข้อมูลพาริตี หากดิสก์ตัวใดตัวหนึ่งล้มเหลว เราก็สามารถรับข้อมูลได้โดยการสร้างใหม่จากข้อมูลพาริตีหลังจากเปลี่ยนดิสก์ที่ล้มเหลว

ข้อดีและข้อเสียของ RAID 5

  1. ให้ประสิทธิภาพที่ดีขึ้น
  2. รองรับความซ้ำซ้อนและความทนทานต่อข้อผิดพลาด
  3. รองรับตัวเลือกอะไหล่ร้อน
  4. จะสูญเสียความจุดิสก์เดียวสำหรับการใช้ข้อมูลพาริตี
  5. ข้อมูลไม่สูญหายหากดิสก์ตัวเดียวล้มเหลว เราสามารถสร้างใหม่จากความเท่าเทียมกันได้หลังจากเปลี่ยนดิสก์ที่ล้มเหลว
  6. เหมาะกับสภาพแวดล้อมที่เน้นการทำธุรกรรมเนื่องจากการอ่านจะเร็วขึ้น
  7. เนื่องจากค่าใช้จ่ายที่เท่าเทียมกัน การเขียนจึงช้า
  8. การสร้างใหม่ใช้เวลานาน

ความต้องการ

ต้องใช้ฮาร์ดไดรฟ์อย่างน้อย 3 ตัวเพื่อสร้าง Raid 5 แต่คุณสามารถเพิ่มดิสก์เพิ่มเติมได้ก็ต่อเมื่อคุณมีตัวควบคุมการโจมตีฮาร์ดแวร์เฉพาะที่มีหลายพอร์ต ที่นี่ เราใช้ซอฟต์แวร์ RAID และแพ็คเกจ 'mdadm' เพื่อสร้างการโจมตี

mdadm เป็นแพ็คเกจที่ช่วยให้เราสามารถกำหนดค่าและจัดการอุปกรณ์ RAID ใน Linux ตามค่าเริ่มต้น ไม่มีไฟล์การกำหนดค่าสำหรับ RAID เราต้องบันทึกไฟล์การกำหนดค่าหลังจากสร้างและกำหนดค่าการตั้งค่า RAID ในไฟล์แยกต่างหากที่เรียกว่า mdadm.conf

ก่อนที่จะดำเนินการต่อไป ฉันขอแนะนำให้คุณอ่านบทความต่อไปนี้เพื่อทำความเข้าใจพื้นฐานของ RAID ใน Linux

  1. แนวคิดพื้นฐานของ RAID ใน Linux - ตอนที่ 1
  2. การสร้าง RAID 0 (Stripe) ใน Linux - ตอนที่ 2
  3. การตั้งค่า RAID 1 (มิเรอร์) ใน Linux - ตอนที่ 3
การตั้งค่าเซิร์ฟเวอร์ของฉัน
Operating System :	CentOS 6.5 Final
IP Address	 :	192.168.0.227
Hostname	 :	rd5.tecmintlocal.com
Disk 1 [20GB]	 :	/dev/sdb
Disk 2 [20GB]	 :	/dev/sdc
Disk 3 [20GB]	 :	/dev/sdd

บทความนี้เป็นส่วนที่ 4 ของซีรี่ส์ RAID บทช่วยสอน 9 รายการ เราจะตั้งค่าซอฟต์แวร์ RAID 5 ที่มีพาริตีแบบกระจายในระบบ Linux หรือเซิร์ฟเวอร์ที่ใช้ดิสก์ขนาด 20GB สามตัว ชื่อ /dev/sdb, /dev/sdc และ /dev/sdd

ขั้นตอนที่ 1: การติดตั้ง mdadm และยืนยันไดรฟ์

1. ดังที่เราได้กล่าวไปแล้วว่า เรากำลังใช้ CentOS 6.5 เวอร์ชันสุดท้ายสำหรับการตั้งค่า Raid นี้ แต่สามารถทำตามขั้นตอนเดียวกันนี้ได้สำหรับการตั้งค่า RAID ในการแจกจ่ายบน Linux ใดๆ

lsb_release -a
ifconfig | grep inet

2. หากคุณกำลังติดตามซีรี่ส์การโจมตีของเรา เราถือว่าคุณได้ติดตั้งแพ็คเกจ 'mdadm' แล้ว หากไม่เป็นเช่นนั้น ให้ใช้คำสั่งต่อไปนี้ตาม Linux ของคุณ จำหน่ายเพื่อติดตั้งแพ็คเกจ

yum install mdadm		[on RedHat systems]
apt-get install mdadm 	[on Debain systems]

3. หลังจากติดตั้งแพ็คเกจ 'mdadm' ให้แสดงรายการดิสก์ 20GB สามแผ่นที่เราได้เพิ่มในระบบของเราโดยใช้คำสั่ง 'fdisk'

fdisk -l | grep sd

4. ตอนนี้ก็ถึงเวลาที่จะตรวจสอบไดรฟ์สามตัวที่เชื่อมต่ออยู่เพื่อหาบล็อก RAID ที่มีอยู่ในไดรฟ์เหล่านี้โดยใช้คำสั่งต่อไปนี้

mdadm -E /dev/sd[b-d]
mdadm --examine /dev/sdb /dev/sdc /dev/sdd

หมายเหตุ: จากภาพด้านบนแสดงให้เห็นว่ายังไม่มีการตรวจพบซุปเปอร์บล็อก ดังนั้นจึงไม่มีการกำหนด RAID ในไดรฟ์ทั้งสามตัว ให้เราเริ่มต้นสร้างหนึ่งตอนนี้

ขั้นตอนที่ 2: การแบ่งพาร์ติชันดิสก์สำหรับ RAID

5. ก่อนอื่น เราต้องแบ่งพาร์ติชันดิสก์ (/dev/sdb, /dev/sdc และ / dev/sdd) ก่อนที่จะเพิ่มไปยัง RAID ดังนั้นให้เรากำหนดพาร์ติชันโดยใช้คำสั่ง 'fdisk' ก่อนที่จะส่งต่อไปยังขั้นตอนถัดไป

fdisk /dev/sdb
fdisk /dev/sdc
fdisk /dev/sdd
สร้างพาร์ติชัน /dev/sdb

โปรดปฏิบัติตามคำแนะนำด้านล่างเพื่อสร้างพาร์ติชันบนไดรฟ์ /dev/sdb

  1. กด 'n' เพื่อสร้างพาร์ติชันใหม่
  2. จากนั้นเลือก 'P' สำหรับพาร์ติชันหลัก ที่นี่เรากำลังเลือก Primary เนื่องจากยังไม่มีการกำหนดพาร์ติชัน
  3. จากนั้นเลือก '1' เพื่อเป็นพาร์ติชันแรก โดยค่าเริ่มต้น จะเป็น 1
  4. สำหรับขนาดกระบอกสูบ เราไม่จำเป็นต้องเลือกขนาดที่ระบุเนื่องจากเราต้องการพาร์ติชันทั้งหมดสำหรับ RAID ดังนั้นเพียงกด Enter สองครั้งเพื่อเลือกขนาดเต็มเริ่มต้น
  5. จากนั้นกด 'p' เพื่อพิมพ์พาร์ติชันที่สร้างขึ้น
  6. เปลี่ยนประเภท หากเราต้องการทราบทุกประเภทที่มีอยู่ กด 'L'
  7. ที่นี่ เรากำลังเลือก 'fd' เนื่องจากประเภทของฉันคือ RAID
  8. จากนั้นกด 'p' เพื่อพิมพ์พาร์ติชันที่กำหนด
  9. จากนั้นใช้ 'p' อีกครั้งเพื่อพิมพ์การเปลี่ยนแปลงที่เราทำ
  10. ใช้ 'w' เพื่อเขียนการเปลี่ยนแปลง

หมายเหตุ: เราต้องทำตามขั้นตอนที่กล่าวถึงข้างต้นเพื่อสร้างพาร์ติชันสำหรับไดรฟ์ sdc & sdd ด้วยเช่นกัน

สร้างพาร์ติชัน /dev/sdc

ตอนนี้แบ่งพาร์ติชันไดรฟ์ sdc และ sdd โดยทำตามขั้นตอนที่ระบุในภาพหน้าจอ หรือคุณสามารถทำตามขั้นตอนข้างต้นได้

fdisk /dev/sdc

สร้างพาร์ติชัน /dev/sdd
fdisk /dev/sdd

6. หลังจากสร้างพาร์ติชันแล้ว ให้ตรวจสอบการเปลี่ยนแปลงในไดรฟ์ทั้งสาม sdb, sdc และ sdd

mdadm --examine /dev/sdb /dev/sdc /dev/sdd

or

mdadm -E /dev/sd[b-d]

หมายเหตุ: ในรูปด้านบน แสดงถึงประเภทคือ fd เช่นสำหรับ RAID

7. ตอนนี้ให้ตรวจสอบบล็อก RAID ในพาร์ติชันที่สร้างขึ้นใหม่ หากตรวจไม่พบซุปเปอร์บล็อก เราสามารถดำเนินการต่อเพื่อสร้างการตั้งค่า RAID 5 ใหม่บนไดรฟ์เหล่านี้ได้

ขั้นตอนที่ 3: การสร้างอุปกรณ์ md md0

8. ตอนนี้สร้างอุปกรณ์ Raid 'md0' (เช่น /dev/md0) และรวมระดับการโจมตีไว้ในพาร์ติชันที่สร้างขึ้นใหม่ทั้งหมด (sdb1, sdc1 และ sdd1) โดยใช้คำสั่งด้านล่าง

mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

or

mdadm -C /dev/md0 -l=5 -n=3 /dev/sd[b-d]1

9. หลังจากสร้างอุปกรณ์ Raid แล้ว ให้ตรวจสอบและตรวจสอบ RAID อุปกรณ์ที่รวมอยู่ และระดับ RAID จากเอาต์พุต mdstat

cat /proc/mdstat

หากคุณต้องการตรวจสอบกระบวนการสร้างปัจจุบัน คุณสามารถใช้คำสั่ง 'watch' เพียงส่งผ่าน 'cat /proc/mdstat' ด้วยคำสั่ง watch ซึ่งจะ รีเฟรชหน้าจอทุกๆ 1 วินาที

watch -n1 cat /proc/mdstat

10. หลังจากสร้างการจู่โจม ให้ตรวจสอบอุปกรณ์การจู่โจมโดยใช้คำสั่งต่อไปนี้

mdadm -E /dev/sd[b-d]1

หมายเหตุ: ผลลัพธ์ของคำสั่งข้างต้นจะยาวเล็กน้อยเนื่องจากจะพิมพ์ข้อมูลของทั้งสามไดรฟ์

11. ถัดไป ตรวจสอบอาร์เรย์ RAID เพื่อสมมติว่าอุปกรณ์ที่เรารวมไว้ในระดับ RAID กำลังทำงานอยู่และเริ่มซิงค์ใหม่

mdadm --detail /dev/md0

ขั้นตอนที่ 4: การสร้างระบบไฟล์สำหรับ md0

12. สร้างระบบไฟล์สำหรับอุปกรณ์ 'md0' โดยใช้ ext4 ก่อนทำการติดตั้ง

mkfs.ext4 /dev/md0

13. ตอนนี้ให้สร้างไดเร็กทอรีภายใต้ '/mnt' จากนั้นติดตั้งระบบไฟล์ที่สร้างขึ้นภายใต้ /mnt/raid5 และตรวจสอบไฟล์ภายใต้จุดเมานท์ คุณจะเห็นไดเร็กทอรี lost+found

mkdir /mnt/raid5
mount /dev/md0 /mnt/raid5/
ls -l /mnt/raid5/

14. สร้างไฟล์สองสามไฟล์ภายใต้จุดเมานท์ /mnt/raid5 และต่อท้ายข้อความในไฟล์ใดไฟล์หนึ่งเพื่อตรวจสอบเนื้อหา

touch /mnt/raid5/raid5_tecmint_{1..5}
ls -l /mnt/raid5/
echo "tecmint raid setups" > /mnt/raid5/raid5_tecmint_1
cat /mnt/raid5/raid5_tecmint_1
cat /proc/mdstat

15. เราจำเป็นต้องเพิ่มรายการใน fstab ไม่เช่นนั้นจะไม่แสดงจุดเมานต์ของเราหลังจากรีบูตระบบ หากต้องการเพิ่มรายการ เราควรแก้ไขไฟล์ fstab และต่อท้ายบรรทัดต่อไปนี้ดังที่แสดงด้านล่าง จุดเชื่อมต่อจะแตกต่างกันไปตามสภาพแวดล้อมของคุณ

vim /etc/fstab

/dev/md0                /mnt/raid5              ext4    defaults        0 0

16. จากนั้น รันคำสั่ง 'mount -av' เพื่อตรวจสอบว่ามีข้อผิดพลาดใด ๆ ในรายการ fstab หรือไม่

mount -av

ขั้นตอนที่ 5: บันทึกการกำหนดค่า Raid 5

17. ตามที่กล่าวไว้ก่อนหน้าในส่วนข้อกำหนด โดยค่าเริ่มต้นแล้ว RAID จะไม่มีไฟล์กำหนดค่า เราต้องบันทึกมันด้วยตนเอง หากไม่ปฏิบัติตามขั้นตอนนี้ อุปกรณ์ RAID จะไม่อยู่ใน md0 มันจะอยู่ในตัวเลขสุ่มอื่น ๆ

ดังนั้นเราจะต้องบันทึกการกำหนดค่าก่อนที่ระบบจะรีบูต หากบันทึกการกำหนดค่าไว้ จะถูกโหลดไปยังเคอร์เนลระหว่างการรีบูตระบบ และ RAID จะถูกโหลดด้วย

mdadm --detail --scan --verbose >> /etc/mdadm.conf

หมายเหตุ: การบันทึกการกำหนดค่าจะทำให้ระดับ RAID ในอุปกรณ์ md0 มีความเสถียร

ขั้นตอนที่ 6: การเพิ่มไดรฟ์สำรอง

18. การเพิ่มไดรฟ์สำรองมีประโยชน์อย่างไร? มันจะมีประโยชน์มากหากเรามีไดรฟ์สำรอง หากดิสก์ตัวใดตัวหนึ่งล้มเหลวในอาร์เรย์ของเรา ไดรฟ์สำรองนี้จะเริ่มทำงานและสร้างกระบวนการขึ้นมาใหม่ และซิงค์ข้อมูลจากดิสก์อื่น เพื่อให้เราสามารถเห็นความซ้ำซ้อนได้ที่นี่

หากต้องการคำแนะนำเพิ่มเติมเกี่ยวกับวิธีเพิ่มไดรฟ์สำรองและตรวจสอบความทนทานต่อข้อผิดพลาดของ Raid 5 โปรดอ่าน #ขั้นตอนที่ 6 และ #ขั้นตอนที่ 7 ในบทความต่อไปนี้

  1. เพิ่มไดรฟ์สำรองไปยังการตั้งค่า Raid 5

บทสรุป

ในบทความนี้ เราได้เห็นวิธีตั้งค่า RAID 5 โดยใช้ดิสก์สามตัวแล้ว ต่อไปในบทความต่อๆ ไปของฉัน เราจะดูวิธีแก้ปัญหาเมื่อดิสก์ล้มเหลวใน RAID 5 และวิธีการเปลี่ยนดิสก์เพื่อการกู้คืน