Date: มิถุนายน 23, 2022
“Split Brain” คืออะไรและจะหลีกเลี่ยงได้อย่างไร
ตามที่เราได้พูดคุยกันใน ความพร้อมใช้งานสูง สภาพแวดล้อมคลัสเตอร์ มีโหนดที่ใช้งานอยู่หนึ่งโหนดและโหนดสแตนด์บายอย่างน้อยหนึ่งโหนดที่จะเข้ารับบริการเมื่อโหนดที่ใช้งานอยู่ล้มเหลวหรือหยุดตอบสนอง
ฟังดูเหมือนเป็นข้อสันนิษฐานที่สมเหตุสมผลจนกว่าจะพิจารณาชั้นเครือข่ายระหว่างโหนด จะเกิดอะไรขึ้นหากเส้นทางเครือข่ายระหว่างโหนดหยุดทำงาน
ขณะนี้โหนดทั้งสองไม่สามารถสื่อสารกับโหนดอื่นได้ และในสถานการณ์นี้ เซิร์ฟเวอร์สำรองอาจเลื่อนระดับตัวเองให้เป็นเซิร์ฟเวอร์ที่ใช้งานอยู่บนพื้นฐานที่เชื่อว่าโหนดที่ใช้งานอยู่ล้มเหลว ส่งผลให้ทั้งสองโหนดกลายเป็น 'ใช้งาน' เนื่องจากแต่ละโหนดจะเห็นว่าโหนดอื่นตาย ด้วยเหตุนี้ ความสมบูรณ์ของข้อมูลและความสอดคล้องกันจึงถูกบุกรุก เนื่องจากข้อมูลบนโหนดทั้งสองจะมีการเปลี่ยนแปลง นี้เรียกว่า “แยกสมอง” .
เพื่อหลีกเลี่ยงสถานการณ์สมองแตก ควรติดตั้งโหนด Quorum (เรียกอีกอย่างว่า 'พยาน') ภายในคลัสเตอร์ การเพิ่มโหนดควอรัม (ไปยังคลัสเตอร์ที่ประกอบด้วยโหนดจำนวนคู่) จะสร้างโหนดจำนวนคี่ (3, 5, 7 ฯลฯ ) โดยโหนดลงคะแนนเพื่อตัดสินใจว่าควรทำหน้าที่เป็นโหนดที่ใช้งานอยู่ภายในคลัสเตอร์
ในตัวอย่างด้านล่าง ชั้นวางเซิร์ฟเวอร์ที่มีโหนด B หายไป LAN การเชื่อมต่อ ในสถานการณ์สมมตินี้ โดยการเพิ่มโหนดที่ 3 เข้ากับสภาพแวดล้อมคลัสเตอร์ ระบบยังสามารถระบุได้ว่าโหนดใดควรเป็นโหนดที่ทำงานอยู่
ฟังก์ชัน Quorum/Witness รวมอยู่ใน SIOS ชุดป้องกัน เมื่อทำการติดตั้ง Quorum / Witness จะถูกเลือกบนโหนดทั้งหมด (ไม่ใช่เฉพาะโหนดควอรัม) และกำหนดเส้นทางการสื่อสารระหว่างโหนดทั้งหมด (รวมถึงโหนดควอรัมด้วย)
โหนดควอรัมไม่ได้โฮสต์บริการใดๆ ที่ใช้งานอยู่ บทบาทเดียวของมันคือการมีส่วนร่วมในการสื่อสารโหนดเพื่อตรวจสอบว่ามีการใช้งานใดอยู่และเพื่อให้ 'การลงคะแนนแบบผูกขาด' ในกรณีที่การสื่อสารหยุดชะงัก
SIOS ยังรองรับ IO การฟันดาบและการจัดเก็บ เป็นอุปกรณ์ควอรัม และในการตั้งค่าคอนฟิกเหล่านี้ โหนดควอรัมเพิ่มเติมไม่จำเป็น