linux Cluster 使用keepalived搭建高可用LVS 一般比較常用于搭建高可用集群的有:heartbeat、keepalived、piranha。 常見的高可用集群有:高可用LVS集群、高可用web集群(keepalived+nginx)、高可用MySQL集群。 keepalived是一個類似于layer3, 4 & 7交換機制的軟件,也就是我們平時說的第3層、第4層和第7層交換。只需要簡單配置keepalived的配置文件即可實現自動生成ipvsadm規則,還可以監控后端realserver主機的健康狀態,出現故障時自動剔除集群,恢復后自動添加,以及MASTER與BACKUP之間的故障切換。 本次實驗使用keepalived+Apache,搭建高可用LVS集群。 DIP=director IP RIP=realserverIP VIP=virtual server IP realserver=rs ha=director
配置檢測結束后會出現如下結果,為三個yes,其中IPVS use libnl: No,對后續的安裝配置運行無影響。
Keepalived version : 1.2.7 Compiler : gcc Compiler flags : -g -O2 -DETHERTYPE_IPV6=0x86dd Extra Lib : -lpopt -lssl -lcrypto Use IPVS Framework : Yes IPVS sync daemon support : Yes IPVS use libnl : No Use VRRP Framework : Yes Use VRRP VMAC : No SNMP support : No Use Debug flags : No
make make install ln -s /usr/local/sbin/keepalived /sbin
至此keepalived安裝完成
5).配置keepalived keepalived的配置文件在 /etc/keepalived/keepalived.conf cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.confbk #先備份一下 vim /etc/keepalived/keepalived.conf 以下為題主自己的配置文件,后端服務器健康狀態使用HTTP! Configuration File for keepalivedglobal_defs { notification_email { root@localhost #用于接受郵件報警,當服務異常時發郵件到郵箱提醒 } notification_email_from admin@localhost #郵件發送地址 smtp_server 127.0.0.1 #郵件服務器本機 smtp_connect_timeout 30 #smtp sever 超時時間 router_id LVS_DEVEL #服務標識,郵件主題}vrrp_instance VI_1 { state MASTER #指定本服務器為主服務器 interface eth0 virtual_router_id 51 #虛擬路由標識,MASTER與BACKUP需一致 PRiority 100 #定義優先級,需大于BACKUP的priority值 advert_int 1 authentication { #設置驗證類型與驗證密碼 auth_type PASS auth_pass abcd #驗證密碼MASTER與BACKUP需一致 } virtual_ipaddress { 192.168.8.30 #設置VIP,既配置在MASTER調度器上由于接受用戶請求的地址 }}virtual_server 192.168.8.30 80 { #虛擬服務器定義部分既MASTER調度器 delay_loop 6 #運行情況監測時間6s一次 lb_algo wlc #設置調度算法為wlc lb_kind DR #設置LVS的工作模式為DR模式 nat_mask 255.255.255.0 #虛擬服務器子網掩碼 persistence_timeout 50 #session保持時間 protocol TCP #指定轉發的協議類型 real_server 192.168.8.33 80 { #后端真實服務器節點配置realserver1 weight 3 #該節點服務器權重 HTTP_GET { #后端服務器情況檢查方式HTTP_GET,向后端服務器發送http請求,無回應即為該節點服務器異常,剔除ipvsadm規則 url { path / status_code 200 } connect_timeout 3 #3秒無響應超時 nb_get_retry 3 #重試次數 delay_before_retry 3 #重試時間間隔 } } real_server 192.168.8.34 80 { weight 1 HTTP_GET { url { path / status_code 200 } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } }}6).將改配置文件復制到BACKUP主機scp /etc/keepalived/keepalived.conf 192.168.8.32:/etc/keepalived/7).啟動keepalived服務service keepalived start 至此MASTER的配置完成virtual_server 192.168.8.30 80 { delay_loop 6 lb_algo wlc lb_kind DR nat_mask 255.255.255.0 persistence_timeout 50 protocol TCP sorry_server 127.0.0.1 80 real_server 192.168.8.33 80 { weight 3 HTTP_GET { url { path / status_code 200 } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } }
4).重啟keepalived服務service keepalived restart5).手動將兩臺realserver的httpd服務stop,再訪問http://192.168.8.30進行測試 測試
新聞熱點
疑難解答