簡介:c#
keepalived設計之初是專爲LVS負載均衡軟件設計的,用來管理和監控LVS集羣系統中的各個服務節點狀態,,後來加入實現高可用的VRRP功能。經過vrrp協議實現高可用功能的服務器
經常使用的功能網絡
管理LVS負載均衡軟件負載均衡
對LVS集羣節點健康檢查功能ide
系統網絡服務的高可用功能加密
原理:keepalived是經過vrrp來實現服務器之間的故障切換轉移的,keepalived在正常服務時,主master節點會不斷的向備backup節點發送心跳信息(多播的形式),告訴備節點本身還活着,當主節點發生故障時,就沒法向備節點發送心跳信息,當備節點沒法接收到主節點的心跳信息時,調用自身的接管程序,接管主節點的ip服務資源,當主節點恢復時,備節點會釋放主節點故障時自身接管的ip服務資源,回覆到備用角色。spa
vrrp:虛擬路由冗餘協議;主要是解決靜態路由的單點故障問題,其是經過競選機制來肯定將路由的任務交給某臺vrrp路由器的。設計
vrrp是經過ip多播的方式實現高可用之間的通訊;router
vrrp經過加密協議對數據進行加密,keepalived使用的是明文方式配置認證類型和密碼server
vrrp在正常工做時,是主節點發包,備節點接包,當備節點沒有接受到包時,經過競選,啓動接管機制,接管主節點的資源,通常而言,備節點能夠有多個,在使用keepalived時,通常是一主一備。
裂腦:
何爲裂腦:
因爲某種緣由,致使兩臺高可用服務器在指定是時間內,沒法檢測到對方的心跳信息,各自取得資源及服務特權,此時兩臺高可用服務器都還正常運行,致使ip或者服務在兩端同時存在而發生衝突。
緣由
高可用服務器之間心跳線鏈路故障
心跳線壞了
網卡及相關驅動壞了
心跳線間鏈接設備故障
開啓iptables,阻擋了心跳信息的傳輸
心跳網卡地址等信息不正確,致使發送心跳信息失敗
預防:
同時使用串行電纜和以太網電纜鏈接,同時使用兩條心跳線
作好監控報警
當有腦裂時,強行關閉一個心跳節點
有關網絡高可用的配置(單實例主備):
採用yum安裝,配置文件爲/etc/keepalived/keepalived.conf
global_defs { global_defs { notification_email { notification_email { acassen@firewall.loc acassen@firewall.loc failover@firewall.loc failover@firewall.loc sysadmin@firewall.loc sysadmin@firewall.loc } } notification_email_from Alexandre.Cassen@firewall.loc notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_server 192.168.200.1 smtp_connect_timeout 30 smtp_connect_timeout 30 router_id LVS_DEVEL router_id LVS_DEVEL1 vrrp_skip_check_adv_addr vrrp_skip_check_adv_addr #vrrp_strict #vrrp_strict vrrp_garp_interval 0 vrrp_garp_interval 0 vrrp_gna_interval 0 vrrp_gna_interval 0 } } vrrp_instance VI_1 { vrrp_instance VI_1 { state MASTER state BACKUP interface ens33 interface ens33 virtual_router_id 51 virtual_router_id 51 priority 100 priority 90 advert_int 1 advert_int 1 authentication { authentication { auth_type PASS auth_type PASS auth_pass 1111 auth_pass 1111 } } virtual_ipaddress { virtual_ipaddress { 10.0.0.3/24 dev ens33 label ens33:0 10.0.0.3/24 dev ens33 label ens33:0 } } } }
router_id LVS_DEVEL router_id LVS_DEVEL1
state MASTER state BACKUP
priority 100 priority 90
#vrrp_strict‘’
systemctl start keepalived
注意: c d e注意區別,f改行要註釋掉,原配置文件中沒有註釋,不註釋可能存在問題。這樣就能夠實現高可用了。