ขอแนะนำชุดโหลดบาลานเซอร์ทั่วไปสำหรับ SIOS LifeKeeper และ Microsoft Azure
ในบล็อกนี้ฉันจะพูดถึง ชุดกู้คืนแอปพลิเคชัน Load-Balancer ทั่วไป (ARK) สำหรับ SIOS Lifekeeper for Linux และวิธีกำหนดค่าบน Microsoft Azure โดยเฉพาะ ฉันจะใช้คลัสเตอร์ NFS สองโหนด และการส่งออก NFS ที่พวกเขาให้ไว้จะเข้าถึงได้ผ่านตัวโหลดบาลานเซอร์ในท้ายที่สุด
SIOS ได้สร้าง ARK นี้เพื่ออำนวยความสะดวกในการเปลี่ยนเส้นทางไคลเอ็นต์ในคลัสเตอร์ LifeKeeper ที่ทำงานใน Azure
เนื่องจาก Azure ไม่รองรับ ARP ที่ไม่มีค่าใช้จ่าย ไคลเอ็นต์จึงไม่สามารถเชื่อมต่อโดยตรงกับที่อยู่ IP เสมือนของคลัสเตอร์แบบเดิมได้ แต่ไคลเอ็นต์ต้องเชื่อมต่อกับตัวโหลดบาลานซ์และตัวโหลดบาลานซ์จะเปลี่ยนเส้นทางการรับส่งข้อมูลไปยังโหนดคลัสเตอร์ที่ใช้งานอยู่ . Azure ใช้โซลูชันตัวโหลดบาลานซ์ที่ทำงานบนเลเยอร์ 4 (TCP, UDP) ตัวโหลดบาลานเซอร์สามารถกำหนดค่าให้มี IP ฟรอนต์เอนด์ส่วนตัวหรือสาธารณะ ซึ่งเป็นโพรบสุขภาพที่สามารถระบุได้ว่าโหนดใดทำงานอยู่ ชุดหนึ่ง ของที่อยู่ IP แบ็กเอนด์ (สำหรับแต่ละโหนดในคลัสเตอร์) และกฎการรับส่งข้อมูลเครือข่ายขาเข้า/ขาออก
ตามเนื้อผ้าโพรบสุขภาพจะตรวจสอบพอร์ตที่ใช้งานอยู่บนแอปพลิเคชันและกำหนดโหนดที่แอปพลิเคชันทำงานอยู่ ARK โหลดบาลานซ์ทั่วไปของ SIOS ได้รับการกำหนดค่าเพื่อให้โหนดที่ใช้งานอยู่ฟังบนพอร์ตที่ผู้ใช้กำหนด พอร์ตนี้ได้รับการกำหนดค่าในตัวโหลดบาลานซ์ Azure เป็นพอร์ต Health Probe ซึ่งช่วยให้โหนดคลัสเตอร์ที่แอ็คทีฟตอบสนองต่อโพรบตรวจสอบสภาพ TCP ทำให้สามารถเปลี่ยนเส้นทางไคลเอ็นต์อัตโนมัติได้
การติดตั้งและการกำหนดค่าใน Azure นั้นตรงไปตรงมาและมีรายละเอียดด้านล่าง:
ภายในพอร์ทัล Azure ให้เลือกการทำโหลดบาลานซ์ สร้างตัวโหลดบาลานซ์ คุณจะเลือกกลุ่มทรัพยากรที่คุณต้องการปรับใช้สิ่งนี้พร้อมกับชื่อ ฉันชอบใช้ชื่อที่สอดคล้องกับประเภทคลัสเตอร์ที่ฉันใช้ตัวโหลดบาลานซ์ด้วย เช่น IMA -NFS-LB จะนั่งอยู่หน้าโหนด IMA-NFS ทั้งสองโหนด
คุณสามารถกำหนดได้ว่าจะเป็น LB สาธารณะหรือส่วนตัว ในกรณีนี้ ฉันกำลังกำหนดค่า Load-Balancer ส่วนตัวให้อยู่หน้าเซิร์ฟเวอร์ NFS ของฉันเพื่อใช้ภายในกลุ่มทรัพยากรนี้เท่านั้น
เมื่อคุณกำหนดชื่อ กลุ่มทรัพยากร ฯลฯ แล้ว คุณจะถูกขอให้กำหนดชื่อ เครือข่ายเสมือน ซับเน็ต และ IP สำหรับตัวโหลดบาลานซ์ ที่อยู่ IP ควรเป็นที่อยู่ IP เดียวกับที่คุณจะสร้างใน LifeKeeper เป็นที่อยู่ IP เสมือน
เมื่อป้อนข้อมูลพื้นฐานสำหรับโหลดบาลานเซอร์แล้ว คุณจะต้องกำหนดว่าเครื่องใดที่จะกำหนดค่าในส่วนหลังเพื่อให้บริการโหลดบาลานซ์ ในกรณีของฉัน แบ็คเอนด์พูลนี้จะประกอบด้วยสองโหนดที่ฉันใช้ เซิร์ฟเวอร์ NFS ของฉัน
คุณจะต้องใช้กฎการปรับสมดุลโหลด นี่คือวิธีที่ตัวโหลดบาลานซ์จะกำหนดว่าการรับส่งข้อมูลใดที่จะกำหนดเส้นทางไปยังโหนดที่ทำงานอยู่ – หมายเลขพอร์ตที่กำหนดค่าไว้ที่นี่จะถูกใช้ใน SPS-L เมื่อคุณกำหนดค่าแอปพลิเคชันทั่วไปเพื่อรองรับตัวโหลดบาลานซ์ ในตัวอย่างนี้ เราใช้ "HA Ports" ซึ่งจะกำหนดเส้นทางการรับส่งข้อมูลทั้งหมดไปยังโหนดที่ใช้งานอยู่ หากคุณต้องการจำกัดปริมาณการใช้ข้อมูลในการกำหนดเส้นทาง คุณสามารถระบุพอร์ตของแอปพลิเคชันเฉพาะได้
IP ฟรอนท์เอนด์ควรเป็น IP ของตัวจัดสรรภาระงาน พูลส่วนหลังควรเป็นโหนดที่คุณกำหนดค่าให้เป็นทรัพยากรที่ใช้โดยตัวจัดสรรภาระงาน ตรวจสอบให้แน่ใจว่าได้เลือกปุ่ม "HA Ports" และเปิดใช้งาน "Floated IP" “การรีเซ็ต TCP” สามารถปิดได้
เมื่อคุณสร้างโพรบสถานภาพ ตรวจสอบให้แน่ใจว่าคุณได้จดบันทึกพอร์ตที่คุณกำหนดค่าที่นี่ เนื่องจากจะใช้เมื่อเราสร้างแอปพลิเคชันทั่วไปภายใน SIOS Protection Suite คุณสามารถใช้ค่ามาตรฐานสำหรับ "ช่วง" และ "เกณฑ์ที่ไม่แข็งแรง" สิ่งเหล่านี้สามารถเปลี่ยนแปลงได้ในภายหลังหากคุณมีข้อกำหนดเฉพาะของแอปพลิเคชัน
ตอนนี้กฎการจัดสรรภาระงานควรจะสมบูรณ์ด้วยโพรบสุขภาพ เลือก “เพิ่ม” เมื่อเราเลือก "เพิ่ม" แล้ว Azure จะเริ่มปรับใช้ Load Balancer ซึ่งอาจใช้เวลาหลายนาที และเมื่อเสร็จสิ้นแล้ว การกำหนดค่าจะย้ายไปที่ SIOS Protection Suite
หมายเหตุ: เมื่อเครื่องแบ็กเอนด์ได้รับการกำหนดค่าหลังโหลดบาลานเซอร์ พวกเขาจะสูญเสียการเข้าถึงอินเทอร์เน็ตเกตเวย์ ดังนั้นสิ่งต่างๆ เช่น การอัปเดตระบบจะไม่ทำงาน คุณสามารถลบเครื่องออกจากกลุ่มทรัพยากรแบ็กเอนด์เพื่ออนุญาตการเข้าถึงอินเทอร์เน็ตอีกครั้ง
การกำหนดค่าด้วย SIOS Protection Suite
สำหรับบล็อกนี้ ฉันได้กำหนดค่าการส่งออก NFS สามรายการเพื่อป้องกันโดยใช้ SPS-L การส่งออกทั้งสามรายการได้รับการกำหนดค่าให้ใช้ IP เดียวกันกับ IP ส่วนหน้าของตัวจัดสรรภาระงาน Azure ฉันใช้ Datakeeper เพื่อทำซ้ำข้อมูลที่เก็บไว้ในการส่งออก
ขั้นตอนแรกคือการรับสคริปต์ วิธีที่ง่ายที่สุดคือการใช้ wget แต่คุณยังสามารถดาวน์โหลดแพ็คเกจทั้งหมดและอัปโหลด rpm ไปยังโหนดโดยตรงโดยใช้ winscp หรือเครื่องมือที่คล้ายกัน คุณต้องติดตั้ง Hotfix บนโหนดทั้งหมดในคลัสเตอร์ Lifekeeper
สามารถรับชุดการกู้คืนทั้งหมดได้ที่นี่: http://ftp.us.sios.com/pickup/LifeKeeper_Linux_Core_en_9.5.1/patches/Gen-LB-PL-7172-9.5.1 ชิ้นส่วนต่างๆ สามารถพบได้ที่นี่ด้วย wget: wget http://ftp.us.sios.com/pickup/Gen-LB-PL-7172-9.5.1/steeleye-lkHOTFIX-Gen-LB-PL-7172-9.5.1-7154.x86_64.rpm wget http://ftp.us.sios.com/pickup/Gen-LB-PL-7172-9.5.1/steeleye-lkHOTFIX-Gen-LB-PL-7172-9.5.1-7154.x86_64.rpm.md5sum wget http://ftp.us.sios.com/pickup/Gen-LB-PL-7172-9.5.1/Gen-LB-readme.txt เมื่อดาวน์โหลดแล้ว ให้ตรวจสอบผลรวม MD5 กับค่าที่บันทึกไว้ในไซต์ FTP
ติดตั้ง RPM ดังต่อไปนี้: rpm -ivh steeleye-lkHOTFIX-Gen-LB-PL-7172-9.5.1-7154.x86_64.rpm ตรวจสอบว่าการติดตั้งสำเร็จโดยการรัน: rpm -qa | grep steeleye-lkHOTFIX-Gen-LB-PL-7172 หากคุณต้องการลบ RPM ด้วยเหตุผลบางประการ สามารถทำได้โดยการรัน: rpm -e steeleye-lkHOTFIX-Gen-LB-PL-7172-9.5.1-7154 .x86_64 ด้านล่างนี้คือ GUI ที่แสดงการส่งออก NFS สามรายการที่ฉันกำหนดค่าไว้แล้ว: สิ่งที่เราต้องทำภายใน SIOS Protection Suite คือกำหนด Load Balancer โดยใช้สคริปต์ Hotfix ที่ SIOS ให้มา
ขั้นแรก เราสร้างลำดับชั้นของทรัพยากรใหม่ เราเลือก Generic Application จากดรอปดาวน์ กำหนดสคริปต์ restore.pl ที่อยู่ใน /opt/Lifekeeper/SIOS_Hotfixes/Gen-LB-PL-7172/ กำหนดสคริปต์ remove.pl ที่อยู่ใน /opt/Lifekeeper/SIOS_Hotfixes/Gen-LB-PL-7172/ กำหนดสคริปต์ quickCheck ที่อยู่ใน /opt/Lifekeeper/SIOS_Hotfixes/Gen-LB-PL-7172/ ไม่มีสคริปต์การกู้คืนในเครื่อง ดังนั้นโปรดล้างอินพุตนี้ เมื่อถามถึง Application Info เราต้องการป้อนหมายเลขพอร์ตเดียวกันกับที่เรากำหนดค่าในการกำหนดค่า Health Probe เช่น 54321 เราจะเลือกนำบริการมาให้บริการทันทีที่ถูกสร้างขึ้น
Resource Tag เป็นชื่อที่เราจะเห็นแสดงใน SPS-L GUI ผมชอบใช้บางอย่างที่ทำให้ง่ายต่อการระบุ
หากทุกอย่างได้รับการกำหนดค่าอย่างถูกต้อง คุณจะเห็น "END การคืนค่าสำเร็จ" เราสามารถขยายไปยังโหนดอื่นเพื่อให้สามารถโฮสต์ทรัพยากรบนโหนดใดโหนดหนึ่งได้
นี่แสดงการกำหนดค่า Load Balancer ที่เสร็จสมบูรณ์ตามส่วนขยายของโหนดทั้งสอง
ขั้นตอนสุดท้ายสำหรับคลัสเตอร์นี้คือการสร้างการพึ่งพาลูกสำหรับการส่งออก NFS สามรายการ ซึ่งหมายความว่าการส่งออก NFS ทั้งหมดที่มีมิเรอร์ Datakeeper และ IP จะใช้โหลดบาลานเซอร์ หากเกิดปัญหาร้ายแรงบนโหนดที่ทำงานอยู่ ทรัพยากรเหล่านี้ทั้งหมดจะล้มเหลวไปยังโหนดที่ทำงานอยู่อื่น
ด้านบน ลำดับชั้นที่สมบูรณ์ใน Lifekeeper GUI ด้านล่างแสดงมุมมอง GUI ที่ขยายซึ่งแสดงการส่งออก NFS, IP, ระบบไฟล์ และ DataKeeper ที่จำลองแบบโวลุ่มเป็นลูกของทรัพยากรตัวจัดสรรภาระงาน
นี่เป็นเพียงตัวอย่างหนึ่งของวิธีการใช้ SIOS LifeKeeper ใน Azure เพื่อป้องกันคลัสเตอร์ NFS อย่างง่าย แนวคิดเดียวกันนี้ใช้กับแอปพลิเคชันที่สำคัญทางธุรกิจใดๆ ที่คุณต้องการปกป้อง คุณเพียงแค่ต้องใช้ Load Balancer ARK ที่จัดทำโดย SIOS เพื่อให้ Azure Load Balancer (ภายในหรือภายนอก) กำหนดว่าโหนดใดกำลังโฮสต์แอปพลิเคชันอยู่