อ่าน 3 นาที
ดีอาร์บีดี
อุปกรณ์บล็อกจำลองแบบกระจาย ( DRBD ) [ 3 ] เป็นระบบจัดเก็บข้อมูลจำลองแบบกระจายสำหรับ แพลตฟอร์ม Linux โดยจะจำลอง อุปกรณ์บล็อก ระหว่างโฮสต์หลายตัว...
ดีอาร์บีดี
| ดีอาร์บีดี | |
|---|---|
ภาพรวมของแนวคิด DRBD | |
| ผู้เขียนต้นฉบับ | ฟิลิปป์ ไรส์เนอร์, ลาร์ส เอลเลนเบิร์ก |
| นักพัฒนา | บริษัท LINBIT HA-Solutions GmbH, เวียนนา และ บริษัท LINBIT USA LLC, โอเรกอน |
| เวอร์ชันเสถียร | |
| รุ่นทดลองใช้งาน | |
| เขียนเป็น | ซี |
| ระบบปฏิบัติการ | ลินุกซ์ |
| พิมพ์ | ระบบจัดเก็บข้อมูลแบบกระจาย |
| ใบอนุญาต | ใบอนุญาตสาธารณะทั่วไปของ GNUเวอร์ชัน 2 |
| เว็บไซต์ | linbit.com/drbd/ |
| ที่เก็บข้อมูล |
|
อุปกรณ์บล็อกจำลองแบบกระจาย ( DRBD ) [ 3 ]เป็นระบบจัดเก็บข้อมูลจำลองแบบกระจายสำหรับ แพลตฟอร์ม Linuxโดยจะจำลองอุปกรณ์บล็อกระหว่างโฮสต์หลายตัว ทำงานอย่างโปร่งใสต่อแอปพลิเคชันบนระบบโฮสต์ การจำลองนี้สามารถเกี่ยวข้องกับอุปกรณ์บล็อกประเภทใดก็ได้ เช่น ฮาร์ดไดรฟ์ พาร์ติชั่น การตั้งค่า RAID หรือวอลุ่มเชิงตรรกะ[ 4 ]
DRBD ถูกนำไปใช้เป็นไดรเวอร์เคอร์เนล แอปพลิเคชันการจัดการ พื้นที่ผู้ใช้ หลายตัว และสคริปต์เชลล์ บางส่วน DRBD มักใช้ในคลัสเตอร์คอมพิวเตอร์ที่มีความพร้อมใช้งานสูง (HA) แต่ตั้งแต่ DRBD เวอร์ชัน 9 เป็นต้นไป ยังสามารถใช้เพื่อสร้างพูลจัดเก็บข้อมูลที่กำหนดโดยซอฟต์แวร์ขนาดใหญ่ขึ้นโดยเน้นที่การบูรณาการกับคลาวด์ได้อีกด้วย[ 5 ]
ซอฟต์แวร์ DRBD เป็นซอฟต์แวร์ฟรีที่เผยแพร่ภายใต้เงื่อนไขของสัญญาอนุญาตสาธารณะทั่วไปของ GNUเวอร์ชัน 2
DRBD เป็นส่วนหนึ่งของโครงการโอเพนซอร์ส Lisog
โหมดการทำงาน
DRBD จะวางอุปกรณ์บล็อก เชิงตรรกะ (ตั้งชื่อตามธรรมเนียมโดยที่Xคือหมายเลขย่อยของอุปกรณ์) ทับซ้อนกับอุปกรณ์บล็อกภายในเครื่องที่มีอยู่บนโหนดคลัสเตอร์ที่เข้าร่วม การเขียนไปยัง โหนด หลักจะถูกถ่ายโอนไปยังอุปกรณ์บล็อกระดับล่างและส่งต่อไปยัง โหนด รอง พร้อมกัน โหนดรองจะถ่ายโอนข้อมูลไปยังอุปกรณ์บล็อกระดับล่างที่เกี่ยวข้อง การอ่าน I/O ทั้งหมดจะดำเนินการในพื้นที่เว้นแต่จะมีการกำหนดค่าการปรับสมดุลการอ่าน[ 6 ]/dev/drbdX
หากโหนดหลักล้มเหลวกระบวนการจัดการคลัสเตอร์จะเลื่อนสถานะโหนดรองเป็นโหนดหลัก[ 7 ]การเปลี่ยนสถานะนี้อาจต้องมีการตรวจสอบความสมบูรณ์ของระบบไฟล์ที่ซ้อนอยู่บน DRBD ในภายหลัง โดยผ่านการตรวจสอบระบบไฟล์หรือ การเล่นซ้ำ บันทึกเมื่อโหนดหลักที่ล้มเหลวกลับมาทำงาน ระบบอาจ (หรือไม่) เลื่อนสถานะโหนดนั้นกลับไปเป็นโหนดหลักอีกครั้ง หลังจากซิงโครไนซ์ข้อมูลอุปกรณ์ใหม่ อัลกอริทึมการซิงโครไนซ์ของ DRBD มีประสิทธิภาพในแง่ที่ว่าเฉพาะบล็อกที่เปลี่ยนแปลงระหว่างที่ระบบขัดข้องเท่านั้นที่จะต้องซิงโครไนซ์ใหม่ ไม่ใช่ทั้งอุปกรณ์
DRBD มักถูกใช้งานร่วมกับ ตัวจัดการทรัพยากรคลัสเตอร์ PacemakerหรือHeartbeatแม้ว่าจะสามารถผสานรวมกับเฟรมเวิร์กการจัดการคลัสเตอร์อื่นๆ ได้ เช่นกัน [ 8 ] [ 9 ] [ 10 ] มันสามารถผสานรวมกับ โซลูชัน เวอร์ชวลไลเซชันเช่นXenและสามารถใช้งานได้ทั้งด้านล่างและด้านบนของสแต็ก Linux LVM [ 11 ]
DRBD อนุญาตให้มี การกำหนดค่า การกระจายโหลดทำให้โหนดทั้งสองสามารถเข้าถึง DRBD เฉพาะในโหมดอ่าน/เขียนด้วยความหมาย ของ พื้นที่จัดเก็บข้อมูลร่วมกัน[ 12 ]การกำหนดค่าหลักหลายตัว (โหนดอ่าน/เขียนหลายตัว) ต้องใช้ตัวจัดการล็อกแบบกระจาย
ตั้งแต่ปี 2018 เป็นต้นมา DRBD ยังสามารถนำไปใช้ในซอฟต์แวร์การจัดการพื้นที่จัดเก็บข้อมูลแบบบล็อกLINSTORเพื่อการจำลองข้อมูลระหว่างโหนดต่างๆ และเพื่อจัดหาอุปกรณ์จัดเก็บข้อมูลแบบบล็อกให้กับผู้ใช้และแอปพลิเคชันได้อีกด้วย
การเปรียบเทียบพื้นที่จัดเก็บข้อมูลคลัสเตอร์แบบใช้ร่วมกัน
โดยทั่วไป ระบบคลัสเตอร์คอมพิวเตอร์แบบดั้งเดิมมักใช้พื้นที่จัดเก็บข้อมูลร่วมกันสำหรับข้อมูลที่ใช้โดยทรัพยากรคลัสเตอร์ วิธีการนี้มีข้อเสียหลายประการ ซึ่ง DRBD อาจช่วยชดเชยได้:
- โดยทั่วไปแล้ว ทรัพยากรพื้นที่จัดเก็บข้อมูลแบบใช้ร่วมกันจะต้องเข้าถึงผ่านเครือข่ายพื้นที่จัดเก็บข้อมูลหรือ เซิร์ฟเวอร์ จัดเก็บข้อมูลที่เชื่อมต่อกับเครือข่ายซึ่งทำให้เกิดภาระเพิ่มเติมในการอ่านข้อมูล (Read I/O ) แต่ใน DRBD ภาระเพิ่มเติมนี้จะลดลง เนื่องจากดำเนินการอ่านข้อมูลทั้งหมดในพื้นที่ (local)
- โดยทั่วไปแล้ว พื้นที่จัดเก็บข้อมูลแบบใช้ร่วมกันมักมีราคาแพงและใช้พื้นที่มาก (2U ขึ้นไป) และใช้พลังงานมากกว่า DRBD ช่วยให้สามารถตั้งค่าระบบ HA ได้โดยใช้เพียง 2 เครื่องเท่านั้น
- พื้นที่จัดเก็บข้อมูลแบบใช้ร่วมกันไม่ได้หมายความว่าจะมีความพร้อมใช้งานสูงเสมอไป ตัวอย่างเช่น เครือข่ายพื้นที่จัดเก็บข้อมูลเดียวที่เข้าถึงโดยโฮสต์เสมือนหลายตัว ถือเป็นพื้นที่จัดเก็บข้อมูลแบบใช้ร่วมกัน แต่ไม่ถือว่ามีความพร้อมใช้งานสูงในระดับการจัดเก็บข้อมูล หากเครือข่ายพื้นที่จัดเก็บข้อมูลเดียวนั้นล้มเหลว โฮสต์ใดๆ ในคลัสเตอร์ก็จะไม่สามารถเข้าถึงพื้นที่จัดเก็บข้อมูลแบบใช้ร่วมกันได้ DRBD ช่วยให้สามารถกำหนดเป้าหมายการจัดเก็บข้อมูลที่เป็นทั้งแบบใช้ร่วมกันและมีความพร้อมใช้งานสูงได้
ข้อเสียเปรียบคือ เวลาที่ใช้ในการเขียนข้อมูลลงอุปกรณ์จัดเก็บข้อมูลร่วมโดยตรงนั้นน้อยกว่าการเขียนข้อมูลผ่านโหนดอื่น
เปรียบเทียบกับ RAID-1
DRBD มีความคล้ายคลึงกับ RAID-1 ในแง่ที่ว่ามันเกี่ยวข้องกับการคัดลอกข้อมูลไปยังอุปกรณ์จัดเก็บข้อมูลสองตัว เพื่อให้หากตัวใดตัวหนึ่งเสียหาย ข้อมูลในอีกตัวหนึ่งยังคงสามารถใช้งานได้ อย่างไรก็ตาม มันทำงานในลักษณะที่แตกต่างจาก RAID และแม้แต่ Network RAID อย่างมาก
ในระบบ RAID ความซ้ำซ้อนจะเกิดขึ้นในเลเยอร์ที่โปร่งใสต่อแอปพลิเคชันที่ใช้งานพื้นที่จัดเก็บข้อมูล แม้ว่าจะมีอุปกรณ์จัดเก็บข้อมูลสองตัว แต่จะมีเพียงอินสแตนซ์เดียวของแอปพลิเคชัน และแอปพลิเคชันจะไม่รับรู้ถึงสำเนาหลายชุด เมื่อแอปพลิเคชันอ่านข้อมูล เลเยอร์ RAID จะเลือกอุปกรณ์จัดเก็บข้อมูลที่จะอ่าน เมื่ออุปกรณ์จัดเก็บข้อมูลตัวใดตัวหนึ่งล้มเหลว เลเยอร์ RAID จะเลือกอ่านจากอีกตัวหนึ่ง โดยที่อินสแตนซ์ของแอปพลิเคชันไม่รู้ถึงความล้มเหลวนั้น
ในทางตรงกันข้าม ในระบบ DRBD จะมีแอปพลิเคชันสองอินสแตนซ์ และแต่ละอินสแตนซ์สามารถอ่านข้อมูลจากอุปกรณ์จัดเก็บข้อมูลได้เพียงอุปกรณ์เดียวจากสองตัว หากอุปกรณ์จัดเก็บข้อมูลตัวใดตัวหนึ่งล้มเหลว อินสแตนซ์ของแอปพลิเคชันที่เชื่อมโยงกับอุปกรณ์นั้นจะไม่สามารถอ่านข้อมูลได้อีกต่อไป ดังนั้น อินสแตนซ์ของแอปพลิเคชันนั้นจะปิดตัวลง และอินสแตนซ์ของแอปพลิเคชันอีกตัวที่เชื่อมโยงกับสำเนาข้อมูลที่ยังใช้งานได้จะเข้ามาทำงานแทน
ในทางกลับกัน ในระบบ RAID หากอินสแตนซ์ของแอปพลิเคชันตัวใดตัวหนึ่งล้มเหลว ข้อมูลบนอุปกรณ์จัดเก็บข้อมูลทั้งสองตัวจะไม่สามารถใช้งานได้ แต่ในระบบ DRBD อินสแตนซ์ของแอปพลิเคชันอีกตัวสามารถทำงานแทนได้
แอปพลิเคชัน
DRBD ทำงานอยู่ภายในเลเยอร์บล็อกของเคอร์เนล Linux จึงไม่ขึ้นอยู่กับประเภทของภาระงานโดยพื้นฐาน DRBD สามารถใช้เป็นพื้นฐานสำหรับ:
- ระบบไฟล์แบบดั้งเดิม(นี่คือตัวอย่างมาตรฐาน)
- ระบบไฟล์ดิสก์ที่ใช้ร่วมกันเช่นGFS2หรือOCFS2 [ 13 ] [ 14 ]
- อุปกรณ์บล็อกเชิงตรรกะอีกตัวหนึ่ง (เช่นที่ใช้ในLVM )
- แอปพลิเคชันใดๆ ที่ต้องการเข้าถึงอุปกรณ์บล็อกโดยตรง
คลัสเตอร์ที่ใช้ DRBD มักถูกนำมาใช้เพื่อเพิ่มการจำลองแบบซิงโครนัสและความพร้อมใช้งานสูงให้กับเซิร์ฟเวอร์ไฟล์ฐานข้อมูลเชิงสัมพันธ์ (เช่นMySQL ) และเวิร์กโหลดอื่นๆ อีกมากมาย
การรวมอยู่ในเคอร์เนลลินุกซ์
ผู้เขียน DRBD ได้ส่งซอฟต์แวร์ไปยังชุมชนเคอร์เนล Linux ในเดือนกรกฎาคม พ.ศ. 2550 เพื่อพิจารณาการรวมเข้าในเวอร์ชัน kernel.org ของเคอร์เนล Linux [ 15 ]หลังจากการตรวจสอบอย่างละเอียดและการอภิปรายหลายครั้งLinus Torvaldsตกลงที่จะให้ DRBD เป็นส่วนหนึ่งของเคอร์เนล Linux อย่างเป็นทางการ DRBD ได้รับการรวมเข้าเมื่อวันที่ 8 ธันวาคม พ.ศ. 2552 ในช่วง "ช่วงเวลาการรวม" สำหรับเคอร์เนล Linux เวอร์ชัน 2.6.33 [ 16 ]
ดูเพิ่มเติม
ลิงก์ภายนอก
- เว็บไซต์อย่างเป็นทางการ
- ลินบิต
- เว็บไซต์โครงการ High-Availability Linux ถูกเก็บถาวรเมื่อวันที่ 5 กรกฎาคม 2008 ที่Wayback Machine
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ดีอาร์บีดี
อุปกรณ์บล็อกจำลองแบบกระจาย ( DRBD ) [ 3 ] เป็นระบบจัดเก็บข้อมูลจำลองแบบกระจายสำหรับ แพลตฟอร์ม Linux โดยจะจำลอง อุปกรณ์บล็อก ระหว่างโฮสต์หลายตัว...
โหมดการทำงาน
DRBD จะวาง อุปกรณ์บล็อก เชิงตรรกะ (ตั้งชื่อตามธรรมเนียมโดยที่ X คือหมายเลขย่อยของอุปกรณ์) ทับซ้อนกับอุปกรณ์บล็อกภายในเครื่องที่มีอยู่บนโหนดคลัสเตอร์ที่เข้าร่วม การเขียนไปยัง โหนด หลัก จะถูกถ่ายโอนไปยังอุปกรณ์บล็อกระดับล่างและส่งต่อไปยัง โหนด รอง พร้อมกัน...
การเปรียบเทียบพื้นที่จัดเก็บข้อมูลคลัสเตอร์แบบใช้ร่วมกัน
โดยทั่วไป ระบบคลัสเตอร์คอมพิวเตอร์แบบดั้งเดิมมักใช้พื้นที่จัดเก็บข้อมูลร่วมกันสำหรับข้อมูลที่ใช้โดยทรัพยากรคลัสเตอร์ วิธีการนี้มีข้อเสียหลายประการ ซึ่ง DRBD อาจช่วยชดเชยได้:
เปรียบเทียบกับ RAID-1
DRBD มีความคล้ายคลึงกับ RAID-1 ในแง่ที่ว่ามันเกี่ยวข้องกับการคัดลอกข้อมูลไปยังอุปกรณ์จัดเก็บข้อมูลสองตัว เพื่อให้หากตัวใดตัวหนึ่งเสียหาย ข้อมูลในอีกตัวหนึ่งยังคงสามารถใช้งานได้ อย่างไรก็ตาม มันทำงานในลักษณะที่แตกต่างจาก RAID และแม้แต่ Network RAID อย่างมาก