Gluster ทำอะไรกันแน่?


12

ฉันได้เล่นกับ gluster ในช่วง 2 วันที่ผ่านมาและถามคำถามที่นี่และในระบบคำถามของพวกเขา ฉันไม่เข้าใจบางสิ่งจริงๆ ฉันเห็นคนพูดสิ่งที่ชอบ

ตั้งค่า bricks ที่จำลองแบบระหว่างเซิร์ฟเวอร์ (เนื่องจากคุณใช้เพียง 3, การจำลองแบบจะปลอดภัยยิ่งขึ้น) และแต่ละเซิร์ฟเวอร์จะเห็นไฟล์ของเซิร์ฟเวอร์อื่น ๆ ทั้งหมดว่าเป็น 'ภายใน' - แม้ว่าเซิร์ฟเวอร์หนึ่งล้มเหลวไฟล์จะถูกทำซ้ำไป เซิร์ฟเวอร์อื่น ๆ

หรือ

Gluster จะรักษาการซิงโครไนซ์ไฟล์ข้ามวอลุ่ม (Bricks) และมีความสามารถ 'การรักษาตัวเอง' ที่จะจัดการกับความไม่สอดคล้องใด ๆ เนื่องจากเซิร์ฟเวอร์หนึ่งออฟไลน์อยู่

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

นี่คือสิ่งที่ฉันไม่เห็นในคำอธิบายใด ๆ : สิ่งที่เกิดขึ้นเมื่อโหนดเซิร์ฟเวอร์ล้มเหลวและเป็นไปได้หรือไม่ที่จะทำซ้ำเนื้อหาจริง ๆ เช่นเดียวกับที่พร้อมเพรียงหรือ rsync

คำตอบ:


8

เราเพิ่งเริ่มค้นคว้า GlusterFS สำหรับการใช้งานของเราเองดังนั้นคำถามนี้น่าสนใจสำหรับฉัน Gluster ใช้สิ่งที่เรียกว่า 'นักแปล' ในไคลเอนต์ FUSE เพื่อจัดการวิธีการจัดเก็บข้อมูลของคุณ มีนักแปลหลายประเภทที่อธิบายไว้ที่นี่:

http://www.gluster.com/community/documentation/index.php/GlusterFS_Translators_v1.3

คนที่คุณถามเกี่ยวกับเฉพาะเรียกว่า Automatic File Replication Translator หรือ AFR และครอบคลุมในรายละเอียดที่นี่:

http://www.gluster.com/community/documentation/index.php/Understanding_AFR_Translator

ดูซอร์สโค้ดปรากฏว่าข้อมูลถูกเขียนไปยังโหนดพร้อมกันดีกว่า rsync มาก!

เกี่ยวกับการกู้คืนจากสถานการณ์ความล้มเหลวมีบันทึกย่อที่น่าสนใจอย่างหนึ่งที่ฉันพบ ระบบ Gluster นั้นแตกต่างจาก Ceph เนื่องจากไม่ได้ตระหนักถึงการเปลี่ยนแปลงสถานะของการจำลองแบบและจะต้องถูก 'ทริกเกอร์' ดังนั้นหากคุณสูญเสียโหนดในคลัสเตอร์ของคุณคุณจะต้องค้นหาแต่ละไฟล์เพื่อให้ Gluster ทำการตรวจสอบว่ามีการจำลองแบบ:

http://www.gluster.com/community/documentation/index.php/Gluster_3.2:_Triggering_Self-Heal_on_Replicate

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


ฉันพบเกี่ยวกับ AFR ด้วยตัวเอง แต่เมื่อใช้งานฉันไม่สามารถเขียนลงไคลเอนต์ได้เฉพาะบนเซิร์ฟเวอร์ นี่เป็นผลสืบเนื่องจากตรรกะที่อยู่เบื้องหลังหรือเป็นสิ่งที่ฉันต้องพิจารณาหรือไม่
cbaltatescu

2
นั่นเป็นปัญหาการกำหนดค่าส่วนใหญ่ (ไม่ใช่โดยการออกแบบ)
พหุนาม

3

ด้วยการจำลองเพียง 2 โหนด gluster จึงไม่แตกต่างจากสคริปต์ rsync แบบอัตโนมัติมากนัก สิ่งต่าง ๆ เริ่มน่าสนใจเมื่อคุณมีโหนดหน่วยเก็บข้อมูล 4 โหนดขึ้นไป - เครื่องไคลเอนต์ของคุณเห็นกลุ่มของพื้นที่ แต่ไฟล์องค์ประกอบจะกระจายไปทั่วโหนดหน่วยเก็บข้อมูลทั้งหมด (อิฐ) ซึ่งหมายความว่าหากเซิร์ฟเวอร์ 4 เครื่องของคุณมีพื้นที่ 10TB เครื่องไคลเอ็นต์ของคุณสามารถเห็นเนมสเปซเดียวที่ 20 TB (จำลองแบบหรือ 40TB ของพื้นที่เก็บข้อมูลที่ไม่มีการป้องกัน)

ฉันเห็นอาการสะอึกสั้น ๆ - อาจจะเป็น 30 วินาทีหรือประมาณนั้น - บนเครื่องไคลเอ็นต์เมื่อลองใช้ IO หลังจากอิฐหน่วยความจำไม่พร้อมใช้งาน แม้ว่าจะมีอาการสะอึกอยู่ก็ตาม IO จะดำเนินการต่อไปตามปกติตราบใดที่มีเซิร์ฟเวอร์ออนไลน์ที่ยังคงเก็บข้อมูลปริมาณเต็ม


slideshare.net/Gluster/…การนำเสนอโดย CTO ของ Gluster เกี่ยวกับวิธีการทำงาน
พหุนาม

1
สิ่งนี้ไม่ได้ทำในสิ่งที่ rsync ทำ Rsync ให้สำเนาของข้อมูลในเครื่องอื่น Gluster เมื่อต้นแบบ (ในการตั้งค่าเซิร์ฟเวอร์ - ไคลเอ็นต์ 2 โหนด) ล้มเหลวไม่มีอะไรเหลืออยู่เลยหรือฉันไม่สามารถเข้าใจได้ดังนั้นคำถาม
cbaltatescu

2
หากคุณมีเพียง 2 โหนดและหนึ่งในโหนดนั้นเป็นไคลเอนต์ (ไม่ได้เก็บข้อมูลใด ๆ ไว้ในเครื่อง) การสูญเสีย 'ต้นแบบ' ที่มีข้อมูลจะส่งผลให้ไม่สามารถใช้งานได้และปิดกั้น IO บนไคลเอนต์ คุณต้องการอย่างน้อย 2 เซิร์ฟเวอร์ที่มีไดรฟ์ข้อมูลที่กำหนดค่าสำหรับการจำลองแบบรวมถึงไคลเอนต์
techieb0y


0

เมื่อไคลเอนต์หันหน้าไปทางเซิร์ฟเวอร์ล้มเหลว (เช่นเซิร์ฟเวอร์ที่มี IP / DNS ถูกใช้โดยไคลเอนต์เพื่อติดตั้งระบบไฟล์) จากนั้นปริมาณทั้งหมดกลายเป็นออฟไลน์ไปยังไคลเอนต์นั่นคือมันไม่สามารถอ่าน / เขียนบนไดรฟ์

อย่างไรก็ตามหากลูกค้าติดตั้งโดยใช้ IP / DNS ของเซิร์ฟเวอร์อื่นปริมาณจะยังคงออนไลน์สำหรับลูกค้าที่ อย่างไรก็ตามการอ่าน / เขียนจะไม่ไปที่อินสแตนซ์ที่ล้มเหลว / ล้มเหลว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.