ในบทความนี้ เราจะพิจารณาการกำหนดค่าเฟลโอเวอร์ที่มีความพร้อมใช้งานสูงของพร็อกซีเซิร์ฟเวอร์ squid (Linux) สองตัว เพื่อเข้าถึงอินเทอร์เน็ตจาก LAN ขององค์กร ในการสร้างการกำหนดค่าเฟลโอเวอร์ เราจะสร้างคลัสเตอร์ HA โดยใช้ keepalved .
คลัสเตอร์ HA คือกลุ่มของเซิร์ฟเวอร์ที่มีความซ้ำซ้อนในตัวเพื่อลดเวลาหยุดทำงานของแอปในกรณีที่มีปัญหาด้านฮาร์ดแวร์หรือซอฟต์แวร์ของเซิร์ฟเวอร์ใดๆ ในกลุ่ม ตามคำจำกัดความนี้ ต้องดำเนินการสิ่งต่อไปนี้เพื่อการทำงานที่ถูกต้องของคลัสเตอร์ HA:
- การตรวจสอบสถานะเซิร์ฟเวอร์
- การสลับทรัพยากรโดยอัตโนมัติในกรณีที่เซิร์ฟเวอร์ล้มเหลว
Keepalved เปิดใช้งานทั้งสองสิ่งนี้ เก็บไว้ เป็นภูตระบบในระบบ Linux ที่เปิดใช้งานการเฟลโอเวอร์ของบริการและการทำโหลดบาลานซ์ Failover มีให้โดยที่อยู่ IP แบบลอยซึ่งสลับไปยังเซิร์ฟเวอร์อื่นหากเซิร์ฟเวอร์หลักล้มเหลว ในการสลับที่อยู่ IP ระหว่างเซิร์ฟเวอร์โดยอัตโนมัติ Keepalved กำลังใช้ VRRP (Virtual Router Redundancy Protocol – https://www.ietf.org/rfc/rfc2338.txt)
หลักการของ VRRP
ก่อนอื่น มาพิจารณาทฤษฎีและคำจำกัดความ VRRP หลักกัน
- VIP — Virtual IP ที่อยู่ IP เสมือนที่สามารถสลับระหว่างเซิร์ฟเวอร์โดยอัตโนมัติในกรณีที่เกิดความล้มเหลว
- Master — เซิร์ฟเวอร์ที่ VIP กำลังใช้งานอยู่
- สำรองข้อมูล — เซิร์ฟเวอร์ที่ VIP จะเปลี่ยนไปใช้ในกรณีที่มาสเตอร์ล้มเหลว
- VRID — Virtual Router ID เซิร์ฟเวอร์ที่แชร์ IP เสมือน (VIP) ในรูปแบบที่เรียกว่าเราเตอร์เสมือนและตัวระบุที่ไม่ซ้ำกันอาจมีค่าระหว่าง 1 ถึง 255 เซิร์ฟเวอร์อาจเป็นของ VRID หลายตัวพร้อมกัน แต่ VRID ทุกตัวจะต้องมีที่อยู่ IP เสมือนที่ไม่ซ้ำกัน
อัลกอริธึมการทำงานพื้นฐาน:
- ในช่วงเวลาที่กำหนด เซิร์ฟเวอร์หลักจะส่งแพ็กเก็ต VRRP (ฮาร์ตบีต s) ไปยังที่อยู่มัลติคาสต์เฉพาะ 224.0.0.18 และเซิร์ฟเวอร์ทาสทั้งหมดฟังที่อยู่นี้ Multicasting หมายความว่ามีผู้ส่งหนึ่งรายและผู้รับหลายคนคำแนะนำ . เพื่อให้เซิร์ฟเวอร์ทำงานในโหมดมัลติคาสต์ อุปกรณ์เครือข่ายของคุณต้องรองรับการรับส่งข้อมูลแบบหลายผู้รับ
- ถ้าเซิร์ฟเวอร์ Slave ไม่ได้รับแพ็กเก็ตฮาร์ทบีต เซิร์ฟเวอร์จะเริ่มขั้นตอนการเลือกมาสเตอร์ หากเซิร์ฟเวอร์กลายเป็นมาสเตอร์ตามลำดับความสำคัญ เซิร์ฟเวอร์จะเปิดใช้งาน VIP และส่ง ARP ฟรี . ARP ที่ไม่เสียค่าใช้จ่ายเป็นการตอบสนอง ARP ชนิดพิเศษที่อัปเดตตาราง MAC บนสวิตช์เครือข่ายเพื่อแจ้งเกี่ยวกับการเปลี่ยนแปลงของเจ้าของที่อยู่ IP เสมือนและที่อยู่ MAC เพื่อเปลี่ยนเส้นทางการรับส่งข้อมูล
ติดตั้งและกำหนดค่า Keepalved บน CentOS
เราจะติดตั้งและกำหนดค่า Keepalved บนเซิร์ฟเวอร์ Linux สองเครื่อง (proxy-serv01 และ proxy-serv02) ที่ใช้ CentOS 7 โดยติดตั้ง Squid ในรูปแบบของเรา เราจะใช้วิธีการโหลดบาลานซ์ที่ง่ายที่สุด — Round Robin DNS . วิธีนี้แนะนำว่าชื่อ DNS เดียวมีที่อยู่ IP ที่ลงทะเบียนไว้หลายที่อยู่ และไคลเอนต์จะได้รับที่อยู่เหล่านี้ทีละรายการ ดังนั้น เราจะต้องลงทะเบียนที่อยู่ IP เสมือนสองแห่งสำหรับชื่อ DNS หนึ่งชื่อ (proxy-serv) นี่คือแผนภาพเครือข่าย:
เซิร์ฟเวอร์ Linux แต่ละเครื่องมีอินเทอร์เฟซเครือข่ายทางกายภาพสองแบบ:eth1 ด้วยที่อยู่ IP สาธารณะ (สีขาว) และ eth0 ในเครือข่ายท้องถิ่น
ใช้ที่อยู่ IP ของเซิร์ฟเวอร์ต่อไปนี้เป็นที่อยู่จริง:
192.168.2.251 — สำหรับ proxy-server01192.168.2.252 — สำหรับ proxy-server02
ที่อยู่ IP ต่อไปนี้จะใช้เป็นที่อยู่เสมือนที่สลับระหว่างเซิร์ฟเวอร์โดยอัตโนมัติในกรณีที่เกิดความล้มเหลว:
192.168.2.101192.168.2.102สำคัญ . เมื่อคุณกำหนดค่า VRRP อย่าใช้ที่อยู่ IP ของเซิร์ฟเวอร์จริงเป็นที่อยู่เสมือน เนื่องจากในกรณีที่เซิร์ฟเวอร์ล้มเหลว ที่อยู่ของเซิร์ฟเวอร์จะย้ายไปยังเซิร์ฟเวอร์ถัดไป และหลังจากความล้มเหลว เซิร์ฟเวอร์แรกอาจแยกออกจากเครือข่าย สิ่งสำคัญคือหากต้องการรับที่อยู่ IP กลับมา เซิร์ฟเวอร์จะต้องส่งแพ็กเก็ต VRRP ไปยังเครือข่าย แต่ไม่มีที่อยู่ IP ให้ทำ
คุณสามารถติดตั้ง Keepalved บนเซิร์ฟเวอร์ทั้งสองได้โดยใช้ yum package manager (หรือ dnf
บน CentOS 8):
# yum install keepalived
หลังจากการติดตั้งเสร็จสิ้นบนทั้งสองเซิร์ฟเวอร์ ให้เปลี่ยนไฟล์การกำหนดค่า Keepalved บนเซิร์ฟเวอร์ทั้งสอง:
# nano /etc/keepalived/keepalived.conf
บรรทัดที่มีพารามิเตอร์ต่างกันจะถูกเน้น:
proxy-serv01 | proxy-serv02 |
1 | 2 |
มาอธิบายตัวเลือกโดยละเอียดกันดีกว่า:
- vrrp_instance
— เป็นส่วนที่กำหนดอินสแตนซ์ VRRP - state
— คือสถานะของโหนดเริ่มต้นเมื่อเริ่มต้น - อินเทอร์เฟซ <ชื่ออินเทอร์เฟซ> — คืออินเทอร์เฟซ VRRP กำลังทำงานอยู่
- virtual_router_id
— เป็นตัวระบุอินสแตนซ์ VRRP ที่ไม่ซ้ำกัน ซึ่งจะต้องเหมือนกันในทุกเซิร์ฟเวอร์ - priority
— กำหนดลำดับความสำคัญของเซิร์ฟเวอร์ เซิร์ฟเวอร์ที่มีลำดับความสำคัญสูงกว่าจะกลายเป็น MASTER - virtual_ipaddress — คือบล็อกของที่อยู่ IP เสมือนที่ทำงานอยู่บนเซิร์ฟเวอร์ในสถานะ MASTER ต้องเหมือนกันในทุกเซิร์ฟเวอร์ภายในอินสแตนซ์ VRRP
หากการกำหนดค่าเครือข่ายปัจจุบันไม่อนุญาตให้ใช้มัลติคาสต์ Keepalived จะมีตัวเลือก unicast i อี แพ็กเก็ตฮาร์ทบีท VRRP จะถูกส่งไปยังเซิร์ฟเวอร์โดยตรงตามรายการ หากต้องการใช้ unicast คุณจะต้องมีตัวเลือกต่อไปนี้:
- unicast_src_ip — คือที่อยู่ต้นทางสำหรับแพ็คเกจ VRRP
- unicast_peer — คือบล็อกของที่อยู่ IP ของเซิร์ฟเวอร์ ซึ่งจะส่งแพ็กเก็ต VRRP ไปให้
ดังนั้น การกำหนดค่าของเราจึงกำหนดอินสแตนซ์ VRRP สองตัว ได้แก่ proxy_ip1 และ proxy_ip2 ในการดำเนินการปกติ proxy-serv01 จะเป็น MASTER สำหรับ IP เสมือน 192.168.2.101 และการสำรองข้อมูลสำหรับ 192.168.2.102 และในทางกลับกัน proxy-serv02 จะเป็น MASTER สำหรับ IP เสมือน 192.168.2.102 และการสำรองข้อมูลสำหรับ 192.168.2.101.
หากเปิดใช้งานไฟร์วอลล์บนเซิร์ฟเวอร์ คุณจะต้องเพิ่มกฎการอนุญาตสำหรับการรับส่งข้อมูลแบบหลายผู้รับและ VRRP โดยใช้ iptables:
# iptables -A INPUT -i eth0 -d 224.0.0.0/8 -j ACCEPT
# iptables -A INPUT -p vrrp -i eth0 -j ACCEPT
เปิดใช้บริการ Keepalved สำหรับการเริ่มต้นอัตโนมัติในการบูตระบบและเรียกใช้บนเซิร์ฟเวอร์ทั้งสอง
# systemctl enable keepalived
# systemctl start keepalived
หลังจาก Keepalived เริ่มต้นแล้ว ที่อยู่ IP เสมือนจะถูกกำหนดให้กับอินเทอร์เฟซจากไฟล์การกำหนดค่าของคุณ มาดูที่อยู่ IP eth0 ปัจจุบันของเซิร์ฟเวอร์:
# ip a show eth0
บน proxy-serv01:
บน proxy-serv02:
จะตรวจสอบสถานะแอปหรืออินเทอร์เฟซด้วย Keepalive ได้อย่างไร
โปรโตคอล VRRP จัดให้มีการตรวจสอบสถานะเซิร์ฟเวอร์ ตัวอย่างเช่น สิ่งนี้มีประโยชน์ในกรณีที่เซิร์ฟเวอร์ทางกายภาพล้มเหลวหรือพอร์ต NIC ของสวิตช์/เซิร์ฟเวอร์ อย่างไรก็ตาม ปัญหาอื่นๆ อาจเกิดขึ้นได้เช่นกัน:
- ข้อผิดพลาดของพร็อกซีเซิร์ฟเวอร์ (หรือแอปอื่นๆ) — ไคลเอ็นต์ที่เข้าถึงที่อยู่เสมือนของเซิร์ฟเวอร์จะได้รับข้อความแสดงข้อผิดพลาดในเบราว์เซอร์ว่าพร็อกซีเซิร์ฟเวอร์ไม่พร้อมใช้งาน
- การเข้าถึงอินเทอร์เน็ตล้มเหลวของอินเทอร์เฟซที่สอง — ไคลเอ็นต์ที่เข้าถึงที่อยู่เสมือนของเซิร์ฟเวอร์จะได้รับข้อความแสดงข้อผิดพลาดในเบราว์เซอร์ว่าไม่สามารถสร้างการเชื่อมต่อได้
เพื่อจัดการกับสถานการณ์ที่อธิบายไว้ข้างต้น ให้ใช้ตัวเลือกต่อไปนี้:
- track_interface — ตรวจสอบสถานะอินเทอร์เฟซ และตั้งค่าสถานะ FAULT สำหรับอินสแตนซ์ VRRP หากหนึ่งในอินเทอร์เฟซที่ระบุไว้ใน DOWN
- track_script — ดำเนินการตรวจสอบสภาพของแอป HA โดยใช้สคริปต์ที่ส่งคืน 0 ถ้าเช็คสำเร็จ หรือ 1 ถ้าเช็คไม่ผ่าน
อัปเดตการกำหนดค่าโดยเพิ่มการตรวจสอบอินเทอร์เฟซ eth1 (โดยค่าเริ่มต้น อินสแตนซ์ VRRP จะตรวจสอบอินเทอร์เฟซที่ผูกไว้:เป็น eth0 ในการกำหนดค่าปัจจุบัน)
track_interface { eth1}
คำสั่ง track_script รันสคริปต์ด้วยพารามิเตอร์ที่กำหนดโดยบล็อก vrrp_script ในรูปแบบต่อไปนี้:
vrrp_script{ script <"path to the executable file"> ช่วง - ระยะเวลาของการเรียกใช้สคริปต์ 1 วินาทีโดยค่าเริ่มต้น fall - จำนวนครั้งที่สคริปต์กลับมา ค่าที่แตกต่างจากศูนย์เพื่อเปลี่ยนเป็นสถานะ FAULT เพิ่มขึ้น - จำนวนครั้งที่สคริปต์คืนค่าศูนย์เพื่อออกจากสถานะ FAULT (failback) หมดเวลา - เวลาที่รอจนถึงสคริปต์ ส่งคืนผลลัพธ์ ( หากหมดเวลา สคริปต์จะส่งกลับค่าที่ไม่ใช่ศูนย์ _ น้ำหนัก - ค่าซึ่งลำดับความสำคัญของเซิร์ฟเวอร์จะลดลงในกรณีที่ได้รับสถานะ FAULT ค่าเริ่มต้นคือ 0 ซึ่งหมายความว่า เซิร์ฟเวอร์ได้รับสถานะ FAULT หลังจากที่สคริปต์ล้มเหลวหลายครั้งที่ตั้งไว้ในพารามิเตอร์ fall}
มากำหนดค่าการตรวจสอบความสมบูรณ์ของพร็อกซี Squid เมื่อใช้คำสั่งนี้ คุณจะตรวจสอบได้ว่ากระบวนการปลาหมึกทำงานอยู่หรือไม่:
# squid -k check
สร้าง vrrp_script ที่ทำงานทุก 3 วินาที บล็อกนี้ถูกกำหนดไว้ภายนอกบล็อก vrrp_instance
vrrp_script chk_squid_service { script "/usr/sbin/squid -k check" ช่วง 3}
เพิ่มสคริปต์นี้ในการมอนิเตอร์ลงในบล็อก vrrp_instance ทั้งสอง:
track_script { chk_squid_service}
หาก Squid ล้มเหลว ที่อยู่ IP เสมือนจะถูกเปลี่ยนเป็นเซิร์ฟเวอร์อื่น
คุณสามารถระบุการดำเนินการเพิ่มเติม ให้เสร็จสิ้นหากสถานะเซิร์ฟเวอร์เปลี่ยนแปลง
หาก Squid ได้รับการกำหนดค่าให้ยอมรับการเชื่อมต่อจากอินเทอร์เฟซใด ๆ i. อี http_port 0.0.0.0:3128
จะไม่มีปัญหาเกิดขึ้นเมื่อเปลี่ยนที่อยู่ IP เสมือน และ Squid จะยอมรับการเชื่อมต่อกับที่อยู่ใหม่ อย่างไรก็ตาม หากมีการกำหนดค่าที่อยู่ IP เฉพาะ e. ก.:
http_port 192.168.2.101:3128http_port 192.168.2.102:3128
Squid จะไม่ทราบว่ามีที่อยู่ใหม่ปรากฏในระบบเพื่อรับฟังคำขอของลูกค้า เพื่อจัดการกับสถานการณ์เมื่อจำเป็นต้องมีการดำเนินการเพิ่มเติมบางอย่างเมื่อเปลี่ยนที่อยู่ IP เสมือน Keepalive อนุญาตให้เรียกใช้สคริปต์หากสถานะของเซิร์ฟเวอร์เปลี่ยนแปลง เช่น จาก MASTER เป็น BACKUP หรือในทางกลับกัน มีการใช้งานโดยใช้ตัวเลือกนี้:
แจ้ง "เส้นทางไปยังไฟล์ปฏิบัติการ"
การทดสอบ Keepalived Failover ในกรณีที่เกิดความล้มเหลว
หลังจากที่คุณได้กำหนดค่า IP เสมือน ตรวจสอบให้แน่ใจว่าได้จัดการความล้มเหลวอย่างถูกต้อง การตรวจสอบครั้งแรกคือการจำลองความล้มเหลวของเซิร์ฟเวอร์ ปิดการใช้งาน eth0 บน proxy-serv01 และจะหยุดส่ง VRRP heartbeat packets proxy-serv02 ต้องเปิดใช้งานที่อยู่ IP เสมือน 192.168.2.101 ตรวจสอบด้วยคำสั่งนี้:
# ip a show eth0
บน proxy-serv01:
บน proxy-serv02:
ตามที่คาดไว้ proxy-serv02 เปิดใช้งานที่อยู่ IP เสมือน 192.168.2.101 มาดูกันว่ามีอะไรเขียนในบันทึกโดยใช้คำสั่งต่อไปนี้:
cat /var/log/messages | grep -i keepalived
บน proxy-serv01 | บน proxy-serv02 |
Keepalived_vrrp[xxxxx]:เคอร์เนลกำลังรายงาน:อินเทอร์เฟซ eth0 DOWNKeepalived_vrrp[xxxxx]:VRRP_Instance(proxy_ip1) การเข้าสู่ FAULT STATEKeepalived_vrrp[xxxxx]:VRRP_Instance(proxy_ip1) การลบโปรโตคอล VIPrp[Keepalived_] (proxy_ip1) ตอนนี้อยู่ในสถานะ FAULT | Keepalived_vrrp[xxxxx]:VRRP_Instance(proxy_ip1) การเปลี่ยนไปใช้ MASTER STATE |
Keepalived ได้รับสัญญาณว่า eth0 อยู่ในสถานะ DOWN และตั้งค่าสถานะ FAULT สำหรับอินสแตนซ์ proxy_ip1 VRRP ซึ่งจะทำให้ที่อยู่ IP เสมือนว่าง | Keepalived ตั้งค่าสถานะ MASTER สำหรับอินสแตนซ์ proxy_ip1 VRRP เปิดใช้งานที่อยู่ IP 192.168.2.101 บน eth0 และส่ง ARP ที่ไม่เสียค่าใช้จ่าย |
และตรวจสอบให้แน่ใจว่าเมื่อคุณเปิดใช้งาน eth0 บน proxy-serv01 อีกครั้ง ที่อยู่ IP เสมือน 192.168.2.101 จะถูกเปลี่ยนกลับ
บน proxy-serv01 | บน proxy-serv02 |
Keepalived_vrrp[xxxxx]:VRRP_Instance(proxy_ip1) บังคับให้มีการเลือกตั้ง MASTER ใหม่Keepalived_vrrp[xxxxx]:VRRP_Instance(proxy_ip1) การเปลี่ยนไปใช้ MASTER STATEKeepalived_vrrp[xxxxx]:KeepVRRP_Instance(proxy_ip1) การป้อน:VRRP_Instance(proxy_ip1) โปรโตคอลการตั้งค่า VIP Keepalived_vrrp[xxxxx]:กำลังส่ง ARP ฟรีบน eth0 สำหรับ 192.168.2.101 | Keepalived_vrrp[xxxxx]:VRRP_Instance(proxy_ip1) ได้รับโฆษณาที่มีลำดับความสำคัญสูงกว่า 255 ของเรา 100Keepalived_vrrp[xxxxx]:VRRP_Instance(proxy_ip1) กำลังเข้าสู่ BACKUP STATEKeepalived_vrrp[xxxxx]:VRRP_Instance (proxy_ip1) ที่นำโปรโตคอลออก> |
Keepalved รับสัญญาณว่า eth0 กลับมาแล้วและเริ่มเลือก MASTER สำหรับอินสแตนซ์ proxy_ip1 VRRP หลังจากที่ได้รับสถานะ MASTER เซิร์ฟเวอร์จะเปิดใช้งานที่อยู่ IP 192.168.2.101 ใน eth0 และส่ง ARP ที่ไม่เสียค่าใช้จ่าย | Keepalived รับแพ็กเก็ตที่มีลำดับความสำคัญสูงกว่าสำหรับอินสแตนซ์ proxy_ip1 VRRP สลับ proxy_ip1 เป็นสถานะ BACKUP และเพิ่มที่อยู่ IP |
การตรวจสอบที่สองคือการจำลองความล้มเหลวของอินเทอร์เฟซเครือข่ายภายนอก หากต้องการทำสิ่งนี้ ให้ปิดการใช้งานอินเทอร์เฟซเครือข่ายภายนอก eth1 บน proxy-serv01 ดูผลลัพธ์ในบันทึก
บน proxy-serv01 | บน proxy-serv02 |
Keepalived_vrrp[xxxxx]:เคอร์เนลกำลังรายงาน:อินเทอร์เฟซ eth1 DOWNKeepalived_vrrp[xxxxx]:VRRP_Instance(proxy_ip1) การเข้าสู่ FAULT STATEKeepalived_vrrp[xxxxx]:VRRP_Instance(proxy_ip1) การลบโปรโตคอล VIPrp[Keepalived_] (proxy_ip1) ตอนนี้อยู่ในสถานะ FAULT | Keepalived_vrrp[xxxxx]:VRRP_Instance(proxy_ip1) การเปลี่ยนไปใช้ MASTER STATEKeepalived_vrrp[xxxxx]:VRRP_Instance(proxy_ip1) การเข้าสู่ MASTER STATEKeepalived_vrrp[xxxxx]:VRRP_Instance(proxy_ipxxx) การตั้งค่าโปรโตคอล VIPr:บน eth0 สำหรับ 192.168.2.101 |
Keepalived ได้รับสัญญาณว่า eth1 ไม่ทำงานและตั้งค่าสถานะ FAULT สำหรับอินสแตนซ์ proxy_ip1 VRRP ซึ่งจะทำให้ที่อยู่ IP เสมือนว่าง | Keepalived ตั้งค่าสถานะ MASTER สำหรับอินสแตนซ์ proxy_ip1 VRRP เปิดใช้งานที่อยู่ IP 192.168.2.101 ใน eth0 และส่ง ARP ที่ไม่เสียค่าใช้จ่าย |
การตรวจสอบครั้งที่สามคือการจำลองความล้มเหลวของ Squid หากต้องการดำเนินการ ให้หยุดบริการด้วยตนเองโดยใช้คำสั่งนี้:
# systemctl stop squid
ดูผลลัพธ์ในบันทึก:
บน proxy-serv01 | บน proxy-serv02 |
Keepalived_vrrp[xxxxx]:VRRP_Script(chk_squid_service) ล้มเหลวKeepalived_vrrp[xxxxx]:VRRP_Instance(proxy_ip1) การเข้าสู่ FAULT STATEKeepalived_vrrp[xxxxx]:VRRP_Instance(proxy_ip1) การนำโปรโตคอล VIPs ออก ) ตอนนี้อยู่ในสถานะ FAULT | Keepalived_vrrp[xxxxx]:VRRP_Instance(proxy_ip1) การเปลี่ยนไปใช้ MASTER STATEKeepalived_vrrp[xxxxx]:VRRP_Instance(proxy_ip1) การเข้าสู่ MASTER STATEKeepalived_vrrp[xxxxx]:VRRP_Instance(proxy_ipxxx) การตั้งค่าโปรโตคอล VIPr:บน eth0 สำหรับ 192.168.2.101 |
สคริปต์ที่ตรวจสอบกิจกรรมของบริการพร็อกซี Squid ส่งกลับข้อผิดพลาด Keepalived ตั้งค่าสถานะ FAULT สำหรับอินสแตนซ์ proxy_ip1 VRRP ซึ่งจะทำให้ที่อยู่ IP เสมือนว่าง | Keepalived ตั้งค่าสถานะ MASTER สำหรับอินสแตนซ์ proxy_ip1 VRRP เปิดใช้งานที่อยู่ IP 192.168.2.101 ใน eth0 และส่ง ARP ที่ไม่เสียค่าใช้จ่าย |
ผ่านการตรวจสอบทั้งสามรายการเรียบร้อยแล้ว และ Keepalived ได้รับการกำหนดค่าอย่างถูกต้อง หลังจากนั้น เราจะกำหนดค่าคลัสเตอร์ HA โดยใช้ Pacemaker และอธิบายคุณลักษณะต่างๆ
ไฟล์การกำหนดค่าสุดท้าย /etc/keepalved/keepalved.conf สำหรับ proxy-serv01 :
vrrp_script chk_squid_service { script "/usr/sbin/squid -k check" interval 3} vrrp_instance proxy_ip1 { state MASTER interface eth0 virtual_router_id 1 priority 255 virtual_ipaddress { 2 10 10 192 . 10 track_script { chk_squid_service }}vrrp_instance proxy_ip2 { state BACKUP interface eth0 virtual_router_id 2 priority 100 virtual_ipaddress { 192.168.2.102/24 dev eth0 label eth0:2 _} script_interface { _ eth1 ไฟล์การกำหนดค่าสุดท้าย} /keepalved.conf สำหรับ proxy-serv02 :
vrrp_script chk_squid_service { script "/usr/sbin/squid -k check" interval 3}vrrp_instance proxy_ip1 { state BACKUP interface eth0 virtual_router_id 1 priority 100 virtual_ipaddress { 192.16. . . .10 1 1 track_script { chk_squid_service }}vrrp_instance proxy_ip2 { state MASTER อินเทอร์เฟซ eth0 virtual_router_id 2 priority 255 virtual_ipaddress { 192.168.2.102/24 dev eth0 label eth0:2} script_interface { _ eth1 s