主機環境:主機A和主機B使用的是CentOS7.2的系統:
主機A IP地址為:192.168.1.103
主機B IP地址為:192.168.1.106
向外界提供的服務的地址為:192.168.1.100
配置過程:
(1)基礎配置過程:
a.在主機B上同步主機A的時間:
vim /etc/chrony.conf
注釋掉以server開頭的行,添加下面的行;
server 192.168.1.103 iburst
systemctl restart chronyd.service
chronyc sources
b.關閉主機A和主機B的防火墻和SELinux
iptables -F
setenforce 0
c.各節點之間的root用戶可以基于密鑰認證的ssh服務完成互相通信(非必須)
主機A:ssh-keygen -t rsa -P ''
主機B:ssh-copy-id -i .ssh/id_rsa.pub root@192.168.1.106
用主機A測試連接主機B:ssh 'root@192.168.1.106'
(2)主機A配置為主主機:
yum -y install keepalived
mv /etc/keepalived/keepalived.conf{,.bak}
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost :設置主機的email的收件人為root,真實生產中用的是公司的管理員的郵箱賬號;
}
notification_email_from keepalived@localhost:設置報警服務的發件人為keepalived;
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id node1
vrrp_mcast_group4 224.0.100.19
}
vrrp_instance VI_1 {
state MASTER :設置主機A模式為MASTER
interface eno16777736
virtual_router_id 14 :給出一個指定的ID,應該和周圍所有的人的不一樣
priority 100:設置主機的優先級為100
advert_int 1
authentication {
auth_type PASS :設置認證機制為PASS
auth_pass 571f97b2 :設置密鑰,應該是一串隨機的密碼
}
virtual_ipaddress {
192.168.1.100/24 dev eno16777736
} 網絡響應的IP為192.168.1.100/24
}
systemctl start keepalived.service
(3)主機B配置為備用主機:(可以直接遠程復制主機A的配置文件,修改即可)
yum -y install keepalived
mv /etc/keepalived/keepalived.conf{,.bak}
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id node1
vrrp_mcast_group4 224.0.100.19
}
vrrp_instance VI_1 {
state BACKUP :設置主機B模式為BACKUP,備用主機
interface eno16777736
virtual_router_id 14 :給出一個指定的ID,應該和周圍所有的人的不一樣,但應該和MASTER主機的相同;
priority 98 :設置主機B的優先級應該小于主機A的優先級,以98為例;
advert_int 1
authentication {
auth_type PASS :設置認證機制為PASS
auth_pass 571f97b2 :設置密鑰,應該是一串隨機的密碼,應該和MASTER主機的PASS相同
}
virtual_ipaddress {
192.168.1.100/24 dev eno16777736
} 網絡響應的IP為192.168.1.100/24
}
systemctl start keepalived.service
測試過程:
(1)同時啟用主機A和主機B,然后觀察日志的輸出:
systemctl start keepalived.service
主機A的日志:(主機A已經監聽在192.168.1.100)
主機B的日志:(主機B由于是備用主機,所以顯示BACKUP模式)
(2)將主機A的keepalived的服務down掉,然后觀察主機A和主機B的日志信息
在主機A上面執行的命令:systemctl stop keepalived.service
主機A的日志信息:(發現主機A已經將192.168.1.100 IP地址已經移除)
主機B的日志信息:(主機B發現主機A已經down掉,自己接手192.168.1.100 IP地址)
(3)將主機A的keepalived服務啟動起來,觀察日志的輸出:
主機A執行的操作:systemctl start keepalived.service
主機A的日志信息:(由于主機A的優先級比主機B的優先級高,所以主機A應該取回192.168.1.100的IP)
主機B的日志信息:(主機B發現比自己級別高的主機A已經運行,所以將自己的IP交出,自己回到BACKUP模式)
(4)擴展,要是主機A和主機B的優先級同樣高,在主機Adown掉,主機B接手IP,之后,啟動主機A的keepalived的服務,主機B還會將自己的IP交出,將自己的恢復成BACKUP模式么?
實驗步驟:
修改主機B的/etc/keepalved/keepalived.conf配置文件中的:priority的值修改為100
實驗的現象:
a.將主機Adown掉之后的兩臺主機的日志:
主機A的日志信息:
主機B的日志信息:
b.將down掉的主機A重新啟動服務,觀察現象:
主機A的日志信息:
主機B的日志信息:
結果總結:雖然將主機A和主機B的優先級調到同樣高的級別,但是主機A因為是MASTER身份,所以還是在重新啟動的時候,請求主機B交出自己的IP,讓主機B恢復為BACKUP的模式;即使在同樣的級別下,MASTER的主機就是比BACKUP的主機的響應程度高。
原創文章,作者:sjsir,如若轉載,請注明出處:http://www.www58058.com/56639