keepalived是vrrp協議的軟件實現,原生設計目的是爲了高可用ipvs服務。
vrrp:靜態網關虛擬協議,在兩個路由器之間虛擬出一個IP地址,當一個路由器損壞時,自動將虛擬出的IP地址移動到另一臺路由器上linux
用戶空間核心組件
vrrp stack 消息通告組件,用來廣播虛擬的ip地址在本身這裏
checkers 監測組件,監測後端服務器的存活狀態
system call 標記realserver權重
SMTP 郵件組件,vip發生遷移時能夠經過郵件進行通知。
ipvs wrapper 生成ipvs規則,在內核級別生成。
Netlink Reflector 網絡接口
WatchDog 監控進程,並記錄日誌。後端
虛擬路由器: Virtual Router
虛擬路由器標識: VRID(0-255),用於惟一標識虛擬路由器
物理路由器:物理路由器分爲master(主設備),backup(備用設備),其中主備之間還存在一個priority(優先級),當兩臺物理路由器設備都爲備時,就看誰的優先級高,優先級高的則成爲主
虛擬IP: VIP (Virtual IP)
虛擬MAC地址: VMC (Virtual MAC)
通告: 用來週期性的通告本身的優先級以及本身的心跳信息,證實本身存活
工做方式: 搶佔式和非搶佔式
當master設備發生故障時,vip將漂移值backup上,master修復後是否將vip進行奪回,若是奪回則爲搶佔式,不奪回則爲非搶佔式。
工做模式:有主備和主主模式
主備: 爲單虛擬路由器,兩臺服務器只有一臺工做,另外一臺只有當主的故障時才啓用
主主: 兩臺服務器互爲主備,即一臺爲主備,另外一臺爲備主,讓兩臺服務器並行運行。bash
使用yum安裝服務器
[root@localhost ~]# yum install keepalived -y
keepalived安裝的相關文件網絡
[root@localhost ~]# rpm -ql keepalived /etc/keepalived/keepalived.conf #keepalived主配置文件 /etc/sysconfig/keepalived #unit file環境配置文件 /usr/lib/systemd/system/keepalived.service #unit file /usr/sbin/keepalived #主程序文件
notification_email { #郵件通知機制,當keepalived發生故障時,進行發郵件通知 root@mylinuxops.com #能夠將其修改也能夠將其改成本機 } notification_email_from root@mylinuxops.com #郵件從哪裏發出去 smtp_server 127.0.0.1 #本機的smtp服務器地址 smtp_connect_timeout 30 #smtp的鏈接超時時長 router_id n1.mylinuxops.com #虛擬路由的表示符通常寫本機,確保每一個節點都不相同 vrrp_skip_check_adv_addr #跳過檢查數據報文,默認會檢查。 vrrp_strict #嚴格遵循vrrp協議,沒有vip,單播地址,ipv6地址將沒法啓動 vrrp_iptables #不生成iptables規則 vrrp_mcast_group4 224.0.0.18 #組播,默認狀況下向224.0.0.18發送組播消息 vrrp_garp_interval 0 #arp報文發送延遲 vrrp_gna_interval 0 #消息發送延遲 } vrrp_instance VI_1 { #配置實例的名稱 state BACKUP #服務器角色 nopreempt #關閉VIP的搶佔,state都爲BACKUP時生效。 interface ens33 #默認的接口 virtual_router_id 27 #虛擬路由ID priority 80 #優先級 advert_int 2 #探測時間 authentication { #認證方式 auth_type PASS auth_pass 1111 } virtual_ipaddress { #虛擬的IP地址,將地址綁定在哪一個網卡上,子接口是哪一個 172.20.27.100 dev ens33 label ens33:0 } }