Date: ธันวาคม 5, 2025
การจัดคลัสเตอร์แอปพลิเคชันที่ไม่รู้จักคลัสเตอร์ด้วย SIOS LifeKeeper
ไม่ใช่ทุกแอปพลิเคชันจะถูกสร้างขึ้นด้วยการรวมกลุ่มในใจ อันที่จริงแล้ว ส่วนใหญ่ไม่ได้เป็นเช่นนั้น แต่นั่นไม่ได้หมายความว่าพวกเขาไม่สามารถรับประโยชน์จากความพร้อมใช้งานสูงการคุ้มครองที่ให้โดยSIOS ไลฟ์คีปเปอร์หากแอปพลิเคชันของคุณสามารถหยุด เริ่มต้น และรันบนเซิร์ฟเวอร์อื่นได้ มีโอกาสดีที่คุณจะคลัสเตอร์แอปพลิเคชันนั้นได้
ก่อนจะตัดสินใจ มีข้อควรพิจารณาสำคัญบางประการที่จะสร้างความแตกต่างระหว่างการใช้งานคลัสเตอร์ที่ประสบความสำเร็จกับประสบการณ์การลองผิดลองถูกที่น่าหงุดหงิด
-
ย้ายข้อมูลไดนามิกไปยังที่เก็บข้อมูลแบบแชร์หรือจำลอง
โดยทั่วไปแอปพลิเคชันจะจัดเก็บข้อมูลแบบไดนามิก เช่น บันทึก ฐานข้อมูล แคช และข้อมูลแอปพลิเคชันอื่นๆ ไว้บนพื้นที่จัดเก็บข้อมูลภายในเครื่อง อย่างไรก็ตาม เมื่อทำคลัสเตอร์ วิธีนี้จะไม่ทำงาน ระหว่างเฟลโอเวอร์โหนดสแตนด์บายจะต้องสามารถเข้าถึงข้อมูลเดียวกันได้เพื่อให้แอปพลิเคชันสามารถดำเนินการต่อจากจุดที่ค้างไว้ได้อย่างแม่นยำ
วิธีแก้ปัญหาคือการย้ายข้อมูลไดนามิกทั้งหมดไปยังดิสก์ที่ใช้ร่วมกันในสภาพแวดล้อม SAN หรือไปยังไดรฟ์ที่จำลองเมื่อใช้SIOS DataKeeperไฟล์คงที่ เช่น ไฟล์ปฏิบัติการ สามารถคงอยู่ในเครื่องภายในเครื่องได้ แต่สิ่งใดก็ตามที่เปลี่ยนแปลงในระหว่างการรันไทม์ควรอยู่ในพื้นที่จัดเก็บที่สามารถเข้าถึงได้จากโหนดคลัสเตอร์ทั้งหมด
-
อัปเดตการอ้างอิงโฮสต์แอปพลิเคชันสำหรับสภาพแวดล้อมแบบคลัสเตอร์
แอปพลิเคชันจำนวนมากอ้างอิงถึงระบบโลคัลโดยใช้ชื่อ FQDN หรือที่อยู่ IP ซึ่งสามารถทำได้ในการกำหนดค่าแบบสแตนด์อโลน แต่ในคลัสเตอร์ แอปพลิเคชันจำเป็นต้องเชื่อมโยงหรือสื่อสารผ่าน Virtual IP (VIP) ของคลัสเตอร์
หากแอปพลิเคชันหรือไฟล์การกำหนดค่าอ้างอิง:
- โฮสต์ท้องถิ่น
- ชื่อโฮสต์ของโหนดหรือ FQDN
- ที่อยู่ IP แบบคงที่ของโหนด
คุณอาจจำเป็นต้องเปลี่ยนการอ้างอิงเหล่านั้นเป็น VIP หรือชื่อโฮสต์ที่แก้ไขเป็น VIP ตำแหน่งทั่วไปที่ควรตรวจสอบ ได้แก่ คีย์รีจิสทรี ไฟล์กำหนดค่า และสตริงการเชื่อมต่อใดๆ ที่แอปพลิเคชันใช้เพื่อเข้าถึงตัวเองหรือบริการอื่นๆ
-
เขียนสคริปต์เริ่มต้น หยุด และตรวจสอบแบบกำหนดเอง
แอปพลิเคชันที่รู้จักคลัสเตอร์จะมีตรรกะที่บอกคลัสเตอร์ว่าจะเริ่ม หยุด และตรวจสอบบริการอย่างไร แต่แอปพลิเคชันที่ไม่รู้จักคลัสเตอร์จะไม่เป็นเช่นนั้น นี่คือที่มาของ SIOS LifeKeeper Application Recovery Kits (ARK)
หากไม่มีสำหรับแอปพลิเคชันของคุณ คุณสามารถสร้างสคริปต์ที่กำหนดเองได้ดังนี้:
- เริ่มการบริการหรือกระบวนการ
- หยุดมันสะอาดหมดจดก่อนเปลี่ยน
- เฝ้าสังเกตสุขภาพของมัน เช่น โดยการตรวจสอบพอร์ต ไฟล์บันทึก หรือกระบวนการ
ในบางกรณี การปกป้องแอปพลิเคชันก็ง่ายพอๆ กับการเริ่มและหยุดการทำงานของเซอร์วิส ในกรณีเช่นนี้ LifeKeeper มีชุดกู้คืน Quick Service Protection (QSP) ไว้ให้บริการ ด้วย QSP คุณสามารถเลือกเซอร์วิสที่ต้องการปกป้องได้อย่างง่ายดาย โดยไม่ต้องเขียนโค้ดใดๆ LifeKeeper จะจัดการการเริ่ม หยุด และการตรวจสอบการทำงานของเซอร์วิสนั้นโดยอัตโนมัติ
ตัวเลือกเหล่านี้ทำให้การปกป้องแอพพลิเคชั่นที่หลากหลายเป็นเรื่องง่าย ตั้งแต่แบบง่าย ๆหน้าต่างหรือลินุกซ์บริการสำหรับระบบที่มีส่วนประกอบหลายส่วนที่ซับซ้อน ทั้งหมดอยู่ในกรอบการทำงานคลัสเตอร์เดียวกัน
-
จัดการคีย์การเข้ารหัสอย่างถูกต้องในโหนดคลัสเตอร์ทั้งหมด
หากแอปพลิเคชันของคุณเข้ารหัสข้อมูลที่ไม่ได้ใช้งาน แต่ละโหนดคลัสเตอร์ต้องสามารถถอดรหัสได้ ซึ่งหมายความว่าคีย์การเข้ารหัสจะต้องสามารถเข้าถึงได้และสอดคล้องกันในทุกโหนด ซึ่งอาจรวมถึงการซิงโครไนซ์ที่เก็บคีย์ภายในเครื่องหรือการใช้โซลูชันการจัดการคีย์แบบรวมศูนย์ ขึ้นอยู่กับการตั้งค่าของคุณ
ประเด็นสำคัญคือทุกโหนดต้องสามารถเข้าถึงคีย์การเข้ารหัสได้อย่างปลอดภัยและสม่ำเสมอเมื่อเปิดใช้งาน มิฉะนั้น แอปพลิเคชันอาจเริ่มทำงานแต่ไม่สามารถเข้าถึงข้อมูลได้หลังจากเกิด Failover
-
พิจารณาว่าไคลเอนต์จะเชื่อมต่อใหม่อีกครั้งหลังจากเกิดความล้มเหลวอย่างไร
เมื่อแอปพลิเคชันเกิดการล้มเหลวจากโหนดหนึ่งไปยังอีกโหนดหนึ่ง จะเกิดการขัดจังหวะชั่วครู่ขณะที่โหนดใหม่ที่ทำงานอยู่เข้ายึดครองที่อยู่ IP และเริ่มต้นแอปพลิเคชัน สำหรับไคลเอ็นต์ที่เชื่อมต่อกับบริการนั้น พฤติกรรมจะขึ้นอยู่กับวิธีการจัดการกับการสูญเสียการเชื่อมต่อ
หากมีการสร้างตรรกะการลองซ้ำของไคลเอนต์ไว้ ผู้ใช้อาจไม่สังเกตเห็นการขัดจังหวะใดๆ เลย ไคลเอนต์จะเชื่อมต่อใหม่โดยอัตโนมัติเมื่อ VIP และบริการพร้อมใช้งานอีกครั้ง
หากไคลเอนต์ไม่รวมตรรกะการลองใหม่ ผู้ใช้จะต้องรีเฟรชหรือรีสตาร์ทการเชื่อมต่อด้วยตนเองหลังจากเกิดความล้มเหลว
สิ่งสำคัญคือต้องเข้าใจพฤติกรรมของไคลเอ็นต์และทดสอบการตอบสนองระหว่าง Failover บางครั้งการเพิ่มลูปการเชื่อมต่อซ้ำแบบง่ายๆ หรือการปรับการตั้งค่าการหมดเวลาการเชื่อมต่อก็เพียงพอแล้วสำหรับประสบการณ์ผู้ใช้ที่ราบรื่น
-
ตรวจสอบข้อกำหนดการออกใบอนุญาตแอปพลิเคชันสำหรับการปรับใช้คลัสเตอร์
ขั้นตอนหนึ่งที่มักถูกมองข้ามคือการกำหนดสิทธิ์การใช้งาน เมื่อคุณทำคลัสเตอร์แอปพลิเคชัน แอปพลิเคชันนั้นจะถูกติดตั้งบนทุกโหนดในคลัสเตอร์ แต่จะมีอินสแตนซ์ที่ใช้งานอยู่เพียงตัวเดียวเท่านั้นที่ทำงานในแต่ละครั้ง ผู้จำหน่ายบางรายมีใบอนุญาตคลัสเตอร์แบบแอ็คทีฟ/พาสซีฟพิเศษ ในขณะที่บางรายกำหนดให้ต้องมีใบอนุญาตสำหรับทุกอินสแตนซ์ที่ติดตั้ง
ตรวจสอบกับผู้จำหน่ายแอปพลิเคชันของคุณเสมอก่อนนำไปใช้งาน การพูดคุยสั้นๆ ก่อนล่วงหน้าจะช่วยประหยัดเวลาปัญหาเรื่องลิขสิทธิ์ได้หลายชั่วโมงในภายหลัง
-
ทดสอบส่วนประกอบแอปพลิเคชันและคลัสเตอร์ทั้งหมดอย่างละเอียด
การทดสอบเป็นหนึ่งในส่วนที่สำคัญที่สุดและมักถูกมองข้ามมากที่สุดในโครงการคลัสเตอร์ใดๆ
อย่าทดสอบเฉพาะ Failover เท่านั้น แต่ควรทดสอบทุกฟังก์ชันของแอปพลิเคชันในขณะที่ได้รับการปกป้อง ซึ่งรวมถึง:
- ลำดับการเริ่มต้นและปิดเครื่อง
- บริการที่จำเป็นทั้งหมดและงานเบื้องหลัง
- ส่วนประกอบใดๆ ที่อ่าน เขียน หรือแคชข้อมูล
- กระบวนการใดๆ ที่ต้องอาศัยการพึ่งพาบริการ
- พฤติกรรมของลูกค้าก่อน ระหว่าง และหลังการล้มเหลว
หากแอปพลิเคชันใช้สคริปต์หรือ QSP ที่กำหนดเอง โปรดตรวจสอบให้แน่ใจว่าแต่ละขั้นตอนทำงานได้อย่างถูกต้องภายใต้ภาระงาน วิธีนี้ไม่เพียงแต่จะตรวจพบปัญหาได้ตั้งแต่เนิ่นๆ แต่ยังช่วยให้มั่นใจได้ว่าโซลูชันจะทำงานได้อย่างถูกต้องแม้ในเหตุการณ์จริง
การบรรลุ HA สำหรับแอปพลิเคชันที่ไม่รู้จักคลัสเตอร์
การทำคลัสเตอร์แอปพลิเคชันที่ไม่รู้จักคลัสเตอร์ด้วย SIOS LifeKeeper นั้นไม่ใช่เรื่องยาก แต่จำเป็นต้องมีการวางแผน ย้ายข้อมูลของคุณไปยังพื้นที่จัดเก็บข้อมูลที่ใช้ร่วมกันหรือจำลองแบบ เชื่อมโยงทุกอย่างไปยัง VIP ของคลัสเตอร์ เขียนสคริปต์ตรรกะเริ่มต้น หยุด และมอนิเตอร์ (หรือใช้ QSP เมื่อเหมาะสม) ตรวจสอบให้แน่ใจว่าทุกโหนดมีคีย์การเข้ารหัส และยืนยันข้อกำหนดสิทธิ์การใช้งาน
อย่าลืมทดสอบว่าไคลเอนต์ของคุณตอบสนองต่อการสำรองข้อมูลอย่างไร เนื่องจากความพร้อมใช้งานสูงที่แท้จริงหมายถึงทั้งเซิร์ฟเวอร์และผู้ใช้ของคุณยังคงเชื่อมต่ออยู่
ปฏิบัติตามขั้นตอนเหล่านี้แล้วคุณจะพบว่าแม้แต่แอปพลิเคชันที่ “แยกเดี่ยว” ที่สุดก็สามารถบรรลุความพร้อมใช้งานสูงระดับองค์กรได้ขอสาธิตวันนี้เพื่อดูว่า SIOS LifeKeeper นำ HA ที่เชื่อถือได้มาสู่แอปพลิเคชันที่ไม่รู้จักคลัสเตอร์ได้อย่างไร
ผู้เขียน: David Bermingham ผู้เผยแพร่ทางเทคนิคอาวุโสที่ SIOS
พิมพ์ซ้ำโดยได้รับอนุญาตจากSIOS
