กลับ
คุณสมบัติความพร้อมใช้งานสูง (HA)
ฟังก์ชันความพร้อมใช้งานสูง (High Availability) เป็นฟังก์ชันที่ “รีสตาร์ท” อัตโนมัติ (เรียกว่า failover) เครื่องเสมือนบนโฮสต์ที่ทำงานปกติอื่นเมื่อโฮสต์ทางกายภาพล้มเหลว ดังนั้น จำเป็นต้องเตรียมการล่วงหน้าภายในระบบปฏิบัติการของเครื่องเสมือนเพื่อให้ระบบสามารถกู้คืนได้โดยอัตโนมัติ
เงื่อนไขในการใช้ HA มีอะไรบ้าง?
เพื่อใช้ HA กับเวอร์ชัน HRPC KVM ต้องมีเงื่อนไขต่อไปนี้:
- ศูนย์ข้อมูลเสมือนที่ประกอบด้วยโหนดที่มีการกำหนดค่าเหมือนกันสามโหนดหรือมากกว่า
- ต้องเป็นประเภท HCI หรือประเภท 3-tier เนื่องจากต้องการที่เก็บข้อมูลแบบแชร์ (Ceph, ESF with ES)
- ต้องมีหน่วยความจำสำรองเพียงพอ (โดยเฉพาะหน่วยความจำ) บนอุปกรณ์ จำเป็นอย่างยิ่งที่หน่วยความจำอย่างน้อยหนึ่งโหนดต้องว่างทั้งหมด
*ตัวอย่างเช่น ในกรณีของศูนย์ข้อมูลเสมือนที่มีสามโหนด ควรใช้หน่วยความจำของสองโหนดเท่านั้นรวมกัน - ตรวจสอบให้แน่ใจว่าได้สำรองข้อมูลของเครื่องเสมือน
เราขอแนะนำอย่างยิ่งให้คุณทำสัญญากับ Backup Storage หรือบริการที่คล้ายกัน และตั้งค่าการสำรองข้อมูลเครื่องเสมือนเป็นประจำ
วิธีเปิดใช้งานฟังก์ชัน HA?
หากคุณต้องการเปิดใช้งานฟังก์ชัน HA ก่อนอื่นให้เลือก datacenter ในแผงด้านซ้าย เปิด HA ในแผงกลาง และคลิก Group
คลิกปุ่ม Create ในแผงด้านขวา สร้าง ID กลุ่ม HA และตรวจสอบโฮสต์ที่เกี่ยวข้องกับ HA เมื่อสร้างเครื่องเสมือนบนโฮสต์ที่เกี่ยวข้องกับ HA คุณต้องเตรียมหน่วยความจำสำรองอย่างน้อยเท่ากับโฮสต์กายภาพหนึ่งเครื่อง หากคุณเข้าร่วม HA ด้วย HRPC สี่เครื่องที่มีหน่วยความจำ 768GB เครื่องที่เหลือสามเครื่องจะต้องมีหน่วยความจำว่าง 768GB เพื่อให้อุปกรณ์อื่น ๆ สามารถทำงานต่อไปได้แม้ว่า HRPC หนึ่งเครื่องจะเกิดความล้มเหลวทางกายภาพ หากคุณไม่เลือกกลุ่ม HA มันจะถูกละเลยในฐานะเป้าหมาย HA แม้ว่าจะอยู่ในศูนย์ข้อมูลเดียวกัน
หากโฮสต์ถูกถอนออกจากกลุ่ม HA โดยเจตนา และตั้งค่ากลุ่ม HA เป็น “restricted” เครื่องเสมือนที่อยู่ในกลุ่ม HA นั้นจะไม่สามารถเริ่มต้นบนโฮสต์ที่ถูกถอนออกได้
หากเลือก nofailback เมื่อโหนดทางกายภาพที่ล้มเหลวรีบูตและกลับมา เครื่องเสมือนจะไม่ถูกกู้คืน แต่จะยังคงทำงานที่ปลายทางต่อไป หากไม่เลือก nofailback เครื่องเสมือนจะถูกส่งกลับไปยังโหนดดั้งเดิมโดยการย้ายแบบสด (live migration) ซึ่งช่วยให้สามารถจัดการตำแหน่งของโฮสต์โหนดและเครื่องเสมือนได้อย่างเข้มงวด อย่างไรก็ตาม หากโหนดทางกายภาพไม่เสถียรและถูกรีบูตซ้ำ ๆ HA จะถูกเปิดใช้งานอีกครั้งและเครื่องเสมือนจะถูกรีสตาร์ทซ้ำ ๆ ด้วยเหตุนี้ เราขอแนะนำให้เลือก nofailback
นอกจากนี้ แม้ว่าการย้ายแบบสด (live migration) จะเป็นฟีเจอร์ที่ล้มเหลวได้ยาก แต่จะมีการหยุดชะงักภายในชั่วขณะที่อาจก่อให้เกิดปัญหาในซอฟต์แวร์เรียลไทม์
วิธีเปิดใช้งาน HA สำหรับเครื่องเสมือน?
Proxmox HA จะไม่สามารถใช้งานได้เว้นแต่เครื่องเสมือนจะอยู่ภายใต้การจัดการ HA
เพื่อให้เครื่องเสมือนอยู่ภายใต้การจัดการ HA ให้เลือกเครื่องเสมือนและเลือก “Manage HA” จากเมนูแบบดึงลง “More▼” ที่มุมขวาบน เลือก ID ของกลุ่ม HA ที่คุณกำหนดค่าข้างต้นจากกลุ่ม ตั้งค่าสถานะที่ต้องการเป็น started แล้วคลิกปุ่ม Add
เครื่องเสมือนนี้อยู่ภายใต้การควบคุม HA แล้ว
ขอบเขตการทำงานของ HA จะแตกต่างกันไปตาม hypervisor ใน VMware เมื่อเปิดใช้งาน HA ในศูนย์ข้อมูลเสมือน มันจะมีผลต่อเครื่องเสมือนทั้งหมดในศูนย์ข้อมูลเสมือน ในขณะที่ใน XenOrchestra มันจะมีผลเฉพาะกับเครื่องเสมือนในพูลที่เปิดใช้งาน HA และตั้งค่าเป็น “restart”
ความสัมพันธ์ระหว่างการรีสตาร์ทเพื่อบำรุงรักษาของโหนด (โฮสต์) ในกลุ่ม HA และเครื่องเสมือน
เมื่อโหนดที่เป็นส่วนหนึ่งของกลุ่ม HA ถูกรีบูตเพื่อการบำรุงรักษา (ไม่ใช่เนื่องจากความล้มเหลวที่ไม่คาดคิด) พฤติกรรมของเครื่องเสมือนจะแตกต่างกันไปขึ้นอยู่กับว่าเครื่องเสมือนนั้นอยู่ภายใต้การจัดการ HA หรือไม่
เครื่องเสมือนที่อยู่ภายใต้การจัดการ HA | ย้ายแบบสด (Live migration) ไปยังเครื่องอื่น |
---|---|
เครื่องเสมือนที่ไม่ได้อยู่ภายใต้การจัดการ HA | ปิดเครื่องอัตโนมัติและยังคงปิดอยู่หลังจากรีบูต |
คอลัมน์
ข้อจำกัดของฟังก์ชัน HA
ฟังก์ชัน HA มีข้อจำกัด และมีปัญหาที่อาจเกิดขึ้นเมื่อใช้ HA
- การรีสตาร์ทเครื่องเสมือนโดยไม่คาดคิด
- ข้อมูลเครื่องเสมือนเสียหาย
พูดง่าย ๆ HA คือความสามารถในการเริ่มเครื่องเสมือนจากโหนดอื่นเมื่อโหนดล้มเหลว แต่นี่คือวิธีการทำงานจากมุมมองของผู้ดูแลระบบ และตรรกะของซอฟต์แวร์จริง ๆ จะต้องถูกนำไปใช้ในวิธีที่แตกต่างกันโดยสิ้นเชิง
ประการแรก ไม่สามารถกำหนดได้อย่างเข้มงวดว่า “ความล้มเหลว” ในโหนดใดโหนดหนึ่งจากทั้งสามโหนด (เช่น โหนด A, โหนด B และโหนด C) คืออะไร HA เกิดขึ้นได้โดยการให้แต่ละโหนดทำงานร่วมกัน
เมื่อโหนด A สูญเสียการสื่อสารกับโหนด B ไม่ชัดเจนว่าความล้มเหลวเกิดขึ้นในโหนด B หรือการสื่อสารระหว่างโหนด A และโหนด B สูญเสียไป หากโหนด A สามารถสื่อสารกับโหนด C ได้จากมุมมองของมัน เป็นไปได้ว่าความล้มเหลวอาจเกิดขึ้นในโหนด B
อย่างไรก็ตาม หากข้อมูลของเครื่องเสมือนที่โฮสต์บนโหนด B ถูกอัปเดตอย่างต่อเนื่องบนที่เก็บข้อมูลแบบแชร์ โหนด B อาจถูกแยกออกอย่างสมบูรณ์
ในตัวอย่างข้างต้น หากโหนด A และ C สามารถสื่อสารกันได้ มีความเป็นไปได้สูงว่าโหนด B ล้มเหลว ดังนั้น โหนด A และ C จะพยายามบูตเครื่องเสมือนที่โฮสต์บนโหนด B ด้วยตัวเอง
อย่างไรก็ตาม โหนด B อาจไม่ได้ล้มเหลว แต่อาจถูกแยกออกเท่านั้น หากโหนดตัดสินใจว่าตัวเองถูกแยกออก มันจะปิดเครื่องเสมือนที่โฮสต์ทันทีเพื่อเตรียมพร้อมสำหรับโหนด A และ C ที่อาจเริ่มต้นขึ้น ซึ่งเป็นสาเหตุของการรีบูตที่ไม่คาดคิดที่กล่าวถึงข้างต้น
แล้วจะเกิดอะไรขึ้นหากโหนด B ไม่ปิดเครื่อง?
หากเครื่องเสมือนเดียวกันทำงานในสองที่ คือโหนด B และโหนดอื่น ดิสก์เสมือนของเครื่องเสมือนจะเสียหายในทันที ซึ่งจะนำไปสู่การทำลายข้อมูลของเครื่องเสมือนที่กล่าวถึงข้างต้น
ดังนั้น ทางเลือกของคุณคือรีบูตหรือทำลายข้อมูลของคุณ
HA จำเป็นต้องประสานงานระหว่างแต่ละโหนดเพื่อตัดสินใจว่าโหนดนั้นล้มเหลว สูญเสียการสื่อสาร หรือช้า
หากความล้มเหลวทั้งสองข้างต้นไม่สามารถเกิดขึ้นพร้อมกันได้ สิ่งที่คุณต้องการหลีกเลี่ยงคือข้อมูลเสียหาย ดังนั้นให้ปิดเครื่องทันที
การตัดสินใจนี้เกิดขึ้นเป็นระยะ ๆ และ Proxmox ทำทุก 2 นาที หากไม่มีการตอบสนองเป็นเวลา 2 นาที จะถูกตัดสินว่า “โฮสต์ล้มเหลว” ดังนั้น อย่างน้อยที่สุด ระยะเวลาหยุดทำงานจะเป็น 2 นาที + เวลาที่เครื่องเสมือนใช้ในการบูต (ในความเป็นจริงจะนานกว่านั้น)
อย่างไรก็ตาม หากความเร็วของโหนดช้าลง หน่วยความจำถูกสลับออก การกู้คืนหน่วยความจำโดยไดรเวอร์ ballooning ทำให้เกิดการชะลอตัวชั่วคราว หรือการเขียนที่เก็บข้อมูลช้าลง สองนาทีอาจผ่านไปอย่างรวดเร็วและอาจไม่สามารถปิดเครื่องได้ทันเวลา เนื่องจากสิ่งที่ต้องปกป้องคือข้อมูล ระบบจะใช้ WatchDog Timer หรือสิ่งที่คล้ายกันโดยอัตโนมัติ และคลาวด์ส่วนตัวทำงานบนฮาร์ดแวร์ที่มีอุปกรณ์ที่สามารถรีสตาร์ทเคอร์เนลได้อัตโนมัติแม้ว่าเคอร์เนลของโฮสต์จะหยุดตอบสนอง