กลับไปหน้าบทความ

อ่าน 4 นาที

มดาดัม

mdadm เป็น ยูทิลิตี้ ของ Linux ที่ใช้ในการจัดการและตรวจสอบ อุปกรณ์ RAID ซอฟต์แวร์ มันถูกใช้ใน ระบบปฏิบัติการ Linux รุ่นใหม่ๆ แทนที่ยูทิลิตี้ RAID ซอฟต์แวร์รุ่นเก่าเช่น raidtools2...

มดาดัม

มดาดัม
ผู้เขียนต้นฉบับนีล บราวน์
นักพัฒนาผู้ร่วมให้ข้อมูลในชุมชนMariusz Tkaczyk [ 1 ]
ปล่อย2001
เวอร์ชันเสถียร
4.4 [ 2 ] / 13 ธันวาคม 2024 ( 13 ธันวาคม 2024 )
เขียนเป็นซี
ระบบปฏิบัติการลินุกซ์
มีจำหน่ายในภาษาอังกฤษ
พิมพ์โปรแกรมยูทิลิตี้ดิสก์
ใบอนุญาตจีเอ็นยู จีพีแอล
เว็บไซต์docs.kernel.org/admin-guide/md.html แก้ไขข้อมูลนี้บนวิกิดาต้า
ที่เก็บข้อมูลgithub.com/md-raid-utilities/mdadm/

mdadmเป็น ยูทิลิตี้ ของ Linuxที่ใช้ในการจัดการและตรวจสอบ อุปกรณ์ RAID ซอฟต์แวร์มันถูกใช้ในระบบปฏิบัติการ Linux รุ่นใหม่ๆ แทนที่ยูทิลิตี้ RAID ซอฟต์แวร์รุ่นเก่าเช่นraidtools2หรือraidtools [ 3 ] [ 4 ] [ 5 ]

mdadm เป็นซอฟต์แวร์ฟรีที่เดิมที[ 6 ]ได้รับการดูแลรักษาและสงวนลิขสิทธิ์โดย Neil Brown แห่งSUSEและได้รับอนุญาตภายใต้เงื่อนไขของGNU General Public License เวอร์ชัน 2 หรือ เวอร์ชัน ที่ใหม่กว่า

ชื่อ

ชื่อนี้ได้มาจาก โหนดอุปกรณ์ md (multiple device) ที่มันดูแลหรือจัดการ และก่อนหน้านี้รู้จักกันในชื่อmdctl [ 7 ] ชื่อเดิมคือ "Mirror Disk" แต่ถูกเปลี่ยนเมื่อมีการเพิ่มฟังก์ชันมากขึ้น ปัจจุบันชื่อนี้เข้าใจกันว่าเป็นชื่อย่อของ Multiple Disk and Device Management [ 3 ]

ภาพรวม

การกำหนดค่า RAID ซอฟต์แวร์ใน Linux สามารถรวมสิ่งใดก็ตามที่ถูกนำเสนอต่อเคอร์เนล Linuxในฐานะอุปกรณ์บล็อกได้ซึ่งรวมถึงฮาร์ดไดรฟ์ทั้งหมด (ตัวอย่างเช่น/dev/sda ) และพาร์ติชันของฮาร์ดไดรฟ์ เหล่านั้น (ตัวอย่างเช่น/dev/sda1 )

การกำหนดค่า RAID

  • RAID 0 – การแบ่งข้อมูลระดับบล็อกMD สามารถรองรับอุปกรณ์ที่มีความยาวต่างกันได้ โดยพื้นที่ส่วนเกินบนอุปกรณ์ที่มีขนาดใหญ่กว่าจะไม่ถูกแบ่งข้อมูล
  • RAID 1 – มิเรอร์
  • RAID 4 – คล้ายกับ RAID 0 แต่มีอุปกรณ์เพิ่มเติมสำหรับสำรองข้อมูล (parity )
  • RAID 5 – คล้ายกับ RAID 4 แต่มีการกระจายข้อมูลพาริตีไปยังอุปกรณ์ทุกตัว
  • RAID 6 – คล้ายกับ RAID 5 แต่มีเซ็กเมนต์พาริตีสองเซ็กเมนต์ต่อแถบข้อมูล
  • RAID 10 – นำชุดข้อมูล RAID 1 หลายๆ ชุดมาทำมิเรอร์ แล้วทำการกระจายข้อมูลแบบสไตรป์ (Stripe) ข้ามชุดข้อมูลเหล่านั้นในลักษณะเดียวกับ RAID 0

RAID 10แตกต่างจากRAID 0+1ซึ่งประกอบด้วย RAID 1 ระดับบนสุดที่เป็นมิเรอร์ที่สร้างจากแถบ RAID 0 ประสิทธิภาพสูงที่กระจายอยู่บนฮาร์ดดิสก์โดยตรง หากไดรฟ์ตัวใดตัวหนึ่งเสียในระบบ RAID 10 มิเรอร์ระดับล่างตัวใดตัวหนึ่งจะเข้าสู่โหมดลดประสิทธิภาพแต่แถบระดับบนสุดยังคงทำงานได้ตามปกติ (ยกเว้นประสิทธิภาพที่ลดลง) ส่วนในระบบ RAID 0+1 หากไดรฟ์ตัวใดตัวหนึ่งเสีย แถบระดับล่างตัวใดตัวหนึ่งจะล้มเหลวโดยสิ้นเชิงและมิเรอร์ระดับบนสุดจะเข้าสู่โหมดลดประสิทธิภาพ การเลือกใช้ระบบใดระบบหนึ่งนั้นขึ้นอยู่กับรายละเอียดของแอปพลิเคชันนั้นๆ เช่น มีดิสก์สำรองหรือไม่ และควรจะเรียกใช้งานดิสก์เหล่านั้นอย่างไร

การกำหนดค่าที่ไม่ใช่ RAID

  • แบบเชิงเส้น – รวมอุปกรณ์จำนวนหนึ่งเข้าเป็นอุปกรณ์ MD ขนาดใหญ่ตัวเดียว – (เลิกใช้แล้วตั้งแต่ปี 2021 และถูกลบออกจากเคอร์เนล Linux ตั้งแต่ปี 2023 [ 8 ] )
  • Multipath – ให้เส้นทางการเชื่อมต่อหลายเส้นทาง พร้อมระบบสำรองไปยังอุปกรณ์เดียวหากเกิดข้อผิดพลาด
  • อุปกรณ์ ที่ชำรุด – อุปกรณ์ชิ้นเดียวที่จำลองสถานการณ์ความผิดพลาดของดิสก์หลายรูปแบบสำหรับการทดสอบและการพัฒนา
  • คอนเทนเนอร์ – กลุ่มของอุปกรณ์ที่ได้รับการจัดการเสมือนเป็นอุปกรณ์เดียว ซึ่งสามารถสร้างระบบ RAID ภายในคอนเทนเนอร์ได้

คุณสมบัติ

รูปแบบชื่อมาตรฐานดั้งเดิมสำหรับอุปกรณ์ md คือ/dev/md<n>โดยที่<n>คือตัวเลขระหว่าง 0 ถึง 99 เคอร์เนลรุ่นใหม่กว่ารองรับชื่อเช่น/dev/md/Homeในเคอร์เนลเวอร์ชัน 2.4.x และก่อนหน้านั้น มีเพียงสองตัวเลือกนี้เท่านั้น และทั้งสองแบบไม่สามารถแบ่งพาร์ติชั่นได้

ตั้งแต่เคอร์เนลเวอร์ชัน 2.6.x เป็นต้นมา มีการแนะนำอุปกรณ์ MD ชนิดใหม่ คือ อาร์เรย์ ที่แบ่งพาร์ติชันได้ชื่ออุปกรณ์ถูกแก้ไขโดยเปลี่ยนmdเป็นmd_dพาร์ติชันถูกระบุโดยการเพิ่มp<n>โดยที่<n>คือหมายเลขพาร์ติชัน เช่น/dev/md/md_d2p3เป็นต้น ตั้งแต่เวอร์ชัน 2.6.28 ของเคอร์เนล Linuxหลัก อาร์เรย์ที่ไม่สามารถแบ่งพาร์ติชันได้สามารถแบ่งพาร์ติชันได้ โดยพาร์ติชันจะถูกอ้างอิงในลักษณะเดียวกับอาร์เรย์ที่แบ่งพาร์ติชันได้ เช่น/dev/md/ md1p2

ตั้งแต่เวอร์ชัน 3.7 ของเคอร์เนล Linux mainline md รองรับ การดำเนินการ TRIM สำหรับ ไดรฟ์โซลิดสเตต (SSD) พื้นฐานสำหรับรูปแบบเชิงเส้น RAID 0, RAID 1, RAID 5 และ RAID 10 [ 9 ]

กำลังบูต

เนื่องจากมีการรองรับ MD ในเคอร์เนล จึงมีปัญหาในการใช้งานก่อนที่เคอร์เนลจะทำงาน โดยเฉพาะอย่างยิ่งจะไม่มีให้ใช้งานหากบูตโหลดเดอร์เป็น(e)LiLoหรือGRUB legacy แม้ว่าโดยปกติจะมีให้ใช้งาน แต่ก็อาจไม่มีให้ใช้งานใน GRUB 2 เพื่อหลีกเลี่ยงปัญหานี้ ต้องใช้ระบบไฟล์ /bootโดยไม่มีการรองรับ md หรือใช้ RAID1 ในกรณีหลัง ระบบจะบูตโดยถือว่าอุปกรณ์ RAID1 เป็นระบบไฟล์ปกติ และเมื่อระบบทำงานแล้ว สามารถเมานต์ใหม่เป็น md และเพิ่มดิสก์ตัวที่สองเข้าไปได้ ซึ่งจะทำให้เกิดการตามทัน แต่ ระบบไฟล์ /bootมักมีขนาดเล็ก

ข้อมูลเมตาภายนอก

นอกจากรูปแบบเมตาเดตาของวอลุ่ม RAID ของตัวเองแล้ว ซอฟต์แวร์ RAID ของ Linux ยังรองรับรูปแบบเมตาเดตาภายนอกด้วย ตั้งแต่เวอร์ชัน 2.6.27 ของเคอร์เนล Linux และเวอร์ชัน 3.0 ของ ยูทิลิตี้ mdadmในพื้นที่ผู้ใช้ ซึ่งทำให้ Linux สามารถใช้วอลุ่ม RAID ที่ใช้เฟิร์มแวร์หรือไดรเวอร์ต่างๆ ได้ ซึ่งเรียกอีกอย่างว่า " RAID ปลอม " [ 10 ]

ณ เดือนตุลาคม 2556 มีรูปแบบข้อมูลเมตาภายนอกที่รองรับอยู่ 2 รูปแบบ ได้แก่:

  • DDF ( Disk Data Format ) เป็นมาตรฐานอุตสาหกรรมที่กำหนดโดยStorage Networking Industry Associationเพื่อเพิ่มความสามารถในการทำงานร่วมกัน[ 11 ]
  • รูปแบบเมตาเดตาของวอลุ่มที่ใช้โดยIntel Rapid Storage Technology (RST) ซึ่งเดิมคือ Intel Matrix RAID ถูกนำมาใช้ในเมนบอร์ดระดับผู้บริโภคหลายรุ่น[ 10 ]

เอ็มดีเอ็มพีดี

mdmpd [ 12 ]เป็นเดมอนที่ใช้สำหรับตรวจสอบอุปกรณ์มัลติพาธ MD จนถึงเคอร์เนล Linux 2.6.10-rc1 ซึ่งพัฒนาโดยRed Hatเป็นส่วนหนึ่งของแพ็คเกจ mdadm [ 13 ]โปรแกรมนี้ใช้สำหรับตรวจสอบ อุปกรณ์ มัลติพาธ ( RAID ) และมักจะเริ่มต้นในเวลาบูตเป็นบริการ จากนั้นจึงทำงานเป็นเดมอน

ข้อกำหนดด้านการจัดเก็บข้อมูลระดับองค์กรมักรวมถึงความต้องการที่จะมีมากกว่าหนึ่งวิธีในการสื่อสารกับไดรฟ์ดิสก์ตัวเดียว เพื่อให้ในกรณีที่เกิดความล้มเหลวในการสื่อสารกับไดรฟ์ดิสก์ผ่านคอนโทรลเลอร์ตัวใดตัวหนึ่ง ระบบสามารถสลับไปยังคอนโทรลเลอร์ตัวอื่นโดยอัตโนมัติและทำงานต่อไปได้ นี่เรียกว่าการเข้าถึงดิสก์แบบหลายเส้นทาง (multipath disk access) เคอร์เนลของ Linux ใช้การเข้าถึงดิสก์แบบหลายเส้นทางผ่านซอฟต์แวร์ RAID ที่เรียกว่าไดรเวอร์ md (Multiple Devices) ส่วนของเคอร์เนลในไดรเวอร์ md multipath จะจัดการเฉพาะการกำหนดเส้นทางการร้องขอ I/O ไปยังอุปกรณ์ที่เหมาะสมและการจัดการความล้มเหลวในเส้นทางที่ใช้งานอยู่เท่านั้น มันไม่ได้พยายามค้นหาว่าเส้นทางที่เคยล้มเหลวอาจใช้งานได้อีกครั้งหรือไม่ นั่นคือสิ่งที่ daemon นี้ทำ เมื่อเริ่มต้นทำงาน มันจะอ่านสถานะปัจจุบันของอาร์เรย์ RAID md บันทึกสถานะนั้น แล้วรอให้เคอร์เนลบอกว่ามีบางอย่างที่น่าสนใจเกิดขึ้น จากนั้นมันจะตื่นขึ้น ตรวจสอบว่ามีเส้นทางใดบนอุปกรณ์ multipath ล้มเหลวหรือไม่ และหากมี มันจะเริ่มตรวจสอบเส้นทางที่ล้มเหลวทุกๆ 15 วินาทีจนกว่าจะเริ่มทำงานอีกครั้ง เมื่อระบบเริ่มทำงานอีกครั้งแล้ว โปรแกรมเบื้องหลังจะเพิ่มเส้นทางนั้นกลับเข้าไปในอุปกรณ์ multipath md ที่เคยเป็นส่วนหนึ่งอยู่แต่เดิม โดยเพิ่มเป็นเส้นทางสำรองใหม่

หากใช้ระบบไฟล์/ proc /proc/mdstatจะแสดงรายการอุปกรณ์ md ที่ใช้งานอยู่ทั้งหมดพร้อมข้อมูลเกี่ยวกับอุปกรณ์เหล่านั้น Mdmpd ต้องการสิ่งนี้เพื่อค้นหาอาร์เรย์ที่จะตรวจสอบเส้นทาง เพื่อรับการแจ้งเตือนเหตุการณ์ที่น่าสนใจ และเพื่อตรวจสอบการสร้างอาร์เรย์ใหม่ในโหมดตรวจสอบ[ 7 ]

รายละเอียดทางเทคนิค RAID 1

ข้อมูลในวอลุ่ม RAID 1 นั้นเหมือนกับข้อมูลในพาร์ติชั่นปกติ ข้อมูล RAID จะถูกจัดเก็บไว้ใน 128kB สุดท้ายของแต่ละพาร์ติชั่น ซึ่งหมายความว่า หากต้องการแปลงวอลุ่ม RAID 1 ให้เป็นพาร์ติชั่นข้อมูลปกติ สามารถลดขนาดพาร์ติชั่นลง 128kB และเปลี่ยน ID ของพาร์ติชั่นจาก fd เป็น 83 (สำหรับ Linux) ได้

ดูเพิ่มเติม

  • การเผยแพร่ซอร์สโค้ดของ mdadm
  • "การติดตั้ง/ซอฟต์แวร์ RAID"เอกสาร ประกอบการใช้งาน Ubuntu Community 1 มีนาคม 2012
  • Lonezor (13 พฤศจิกายน 2011). "การตั้งค่า RAID volume ใน Linux ด้วยดิสก์ขนาดมากกว่า 2TB" . เก็บถาวรจากต้นฉบับเมื่อ 19 พฤศจิกายน 2011.
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Mdadm&oldid=1329886362 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ มดาดัม

mdadm เป็น ยูทิลิตี้ ของ Linux ที่ใช้ในการจัดการและตรวจสอบ อุปกรณ์ RAID ซอฟต์แวร์ มันถูกใช้ใน ระบบปฏิบัติการ Linux รุ่นใหม่ๆ แทนที่ยูทิลิตี้ RAID ซอฟต์แวร์รุ่นเก่าเช่น raidtools2...

ชื่อ

ชื่อนี้ได้มาจาก โหนดอุปกรณ์ md (multiple device) ที่มัน ดูแล หรือจัดการ และก่อนหน้านี้รู้จักกันในชื่อmdctl [ 7 ] ชื่อ เดิมคือ "Mirror Disk" แต่ถูกเปลี่ยนเมื่อมีการเพิ่มฟังก์ชันมากขึ้น ปัจจุบันชื่อนี้เข้าใจกันว่าเป็นชื่อย่อของ Multiple Disk and Device...

ภาพรวม

การกำหนดค่า RAID ซอฟต์แวร์ใน Linux สามารถรวมสิ่งใดก็ตามที่ถูกนำเสนอต่อ เคอร์เนล Linux ในฐานะ อุปกรณ์บล็อกได้ ซึ่งรวมถึงฮาร์ดไดรฟ์ทั้งหมด (ตัวอย่างเช่น /dev/sda ) และ พาร์ติชันของฮาร์ดไดรฟ์ เหล่านั้น (ตัวอย่างเช่น /dev/sda1 )

การกำหนดค่า RAID

RAID 10 แตกต่างจาก RAID 0+1 ซึ่งประกอบด้วย RAID 1 ระดับบนสุดที่เป็นมิเรอร์ที่สร้างจากแถบ RAID 0 ประสิทธิภาพสูงที่กระจายอยู่บนฮาร์ดดิสก์โดยตรง หากไดรฟ์ตัวใดตัวหนึ่งเสียในระบบ RAID 10 มิเรอร์ระดับล่างตัวใดตัวหนึ่งจะเข้าสู่ โหมดลดประสิทธิภาพ...