您好,登錄后才能下訂單哦!
配置示例:https://blog.51cto.com/14227204/2438902
一、keepalived工作原理及作用:
keepalived最初是專門針對LVS設計的一款強大的輔助工具,主要用來提供故障切換和健康檢查功能——判斷LVS負載調度器、節點服務器的可用性,及時隔離并替換為新的服務器,當故障主機回復后將其重新加入群集。單獨部署LVS環境的話,調度器發生宕機的話,整個群集就失效了,某一個web節點宕機后,客戶端在訪問時,總會碰上訪問不到網頁的情況,所以,將keepalived和LVS結合起來,才可形成一個真正的高可用群集,當然,后端的共享存儲也必須搭建一個高可用的存儲服務器,三者其中有一個滿足不了,都不能稱之為一個高可用的群集環境。
keepalived官方網站: http://www.linuxvirtualserver.org/ ,在非LVS環境中,keepalived也可以作為熱備軟件
使用。
keepalived采用VRRP(虛擬路由冗余協議)熱備份協議,以軟件的方式實現Linux服務器的
多機熱備。VRRP是針對路由器的一種備份解決方案——由多臺路由器組成一個熱備組,通
過共用的虛擬IP(VIP)地址對外提供服務;每個熱備份組內同一時刻只有一臺主路由器提
供服務,其他路由器處于冗余狀態,若當前在線的路由器失效,則其他路由器會自動接替
(優先級決定接替順序)虛擬IP地址,以繼續提供服務。
熱備組內的每臺路由器都可能成為主路由器,虛擬路由器的IP地址(VIP)可以在熱備組內
路由器進行轉移,所以也稱為漂移IP地址。使用keepalived時,漂移地址的實現不需要手動
建立虛接口配置文件(如ens33:0),而是由keepalived根據配置文件自動管理。
基于VRRP的熱備方式,keepalived可以用作服務器的故障切換,每個熱備組可以有多臺服
務器——最常用的是多機熱備了。在這種多機熱備方案中,故障切換主要針對虛擬IP地址的
漂移來實現。因此能適用于各種應用服務器(不管是Web、FTP、Mail、還是SSH、DNS....)。
二、keepalived雙機熱備配置詳解:
.
通過下面簡易的環境圖,可以去全面的了解雙機熱備的配置及功能:
1、配置主服務器:
[root@lVS1 ~]# systemctl stop firewalld #關閉防火墻
[root@lVS1 ~]# yum -y install keepalived ipvsadm 安裝所需工具
[root@lVS1 ~]# systemctl enable keepalived #設置開機自啟動
[root@lVS1 ~]# cd /etc/keepalived/
[root@lVS1 keepalived]# cp keepalived.conf keepalived.conf.bak #備份配置文件
[root@lVS1 keepalived]# vim keepalived.conf #編輯配置文件
global_defs {
notification_email {
acassen@firewall.loc #啟用郵件通知功能,這里設置收件人地址,可以配置多個
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc #發件人姓名、地址
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL1 #本服務器的名稱(在群集中必須唯一)。
.............. #省略部分內容
}
vrrp_instance VI_1 { #定義VRRP熱備實例
state MASTER #熱備狀態,MASTER表示主服務器(注意大小寫)
interface ens33 #承載VIP地址的物理接口
virtual_router_id 51 #虛擬路由器的ID號,每個熱備組保持一致。
priority 100 #優先級0-100,數值越大越優先。
advert_int 1 #通告間隔秒數(心跳頻率)。
authentication { #認證信息,每個熱備組保持一致
auth_type PASS #認證類型
auth_pass 1111 #密碼字串
}
virtual_ipaddress { #指定漂移地址,可以有多個
192.168.1.100
}
}
......................... #省略部分內容
確認上面配置無誤后,然后啟動keepalived服務,實際狀態為MASTER的主服務器將為ens33接口自動添加VIP地址,通過ip命令可以查看(注意:ifconfig命令看不到)。
[root@lVS1 keepalived]# systemctl start keepalived #啟動該服務
[root@lVS1 keepalived]# ip a show dev ens33 #查看ens33接口
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UPUt qlen 1000
link/ether 00:0c:29:77:2c:03 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/24 brd 192.168.1.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.1.100/32 scope global ens33 #可以看到VIP已經配置在ens33上。
valid_lft forever preferred_lft forever
inet6 fe80::95f8:eeb7:2ed2:d13c/64 scope link noprefixroute
valid_lft forever preferred_lft forever
2、配置備份服務器(LVS2):
在同一keepalived熱備組內,所有服務器的keepalived配置文件基本相同,某些配置項也必
須相同,包括虛擬路由器的ID號、認證信息、漂移地址、心跳頻率等,不同之處主要在于路
由器名稱、熱備狀態、優先級。具體配置時需要注意以下幾點:
服務器名稱(route_id):建議為每個參與熱備的服務器指定不同的名稱。
熱備狀態(state):至少應有一臺主服務器,將狀態設置為MASTER;可以有多臺備用的服務器,將狀態設置為BACKUP。
[root@LVS2 ~]# systemctl stop firewalld #關閉防火墻
[root@LVS2 ~]# yum -y install keepalived ipvsadm #安裝相關工具
[root@LVS2 ~]# scp root@192.168.1.1:/etc/keepalived/keepalived.conf /etc/keepalived/
#使用主服務器root用戶將主服務器的keepalived配置文件復制過來。
root@192.168.1.1 s password: #輸入主服務器root用戶的密碼
keepalived.conf 100% 3549 3.5MB/s 00:00
[root@LVS2 ~]# vim /etc/keepalived/keepalived.conf
global_defs {
...............
router_id LVS_DEVEL2 #修改這里的服務器名稱
.....................
}
..............
vrrp_instance VI_1 {
state BACKUP #修改這里的狀態,改為BACKUP
interface ens33 #若該服務器承載VIP的物理接口有變,則這里也要修改
virtual_router_id 51
priority 90 #修改優先級,要比主服務器低。
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100
}
}
.................
#改動上述幾行后,保存退出即可。
[root@LVS2 ~]# systemctl start keepalived #啟動服務
[root@LVS2 ~]# systemctl enable keepalived #設置開機自啟動
此時主服務器仍然在線,VIP地址實際上仍然由主服務器控制,其他服務器處于備份狀態,因此在備用服務器中將不會為ens33接口添加VIP地址:
[root@LVS2 ~]# ip a show dev ens33 #查看ens33接口,不會看到VIP
2: ens33: <BROADCAST,MULTICAST,Udel state UP group default qlen 1000
link/ether 00:0c:29:9a:09:98 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.2/24 brd 192.168.1.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::3050:1a9b:5956:5297/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3、測試雙機熱備功能:
將主服務器關機,或停止keepalived服務,等待約15秒后,查看備份服務器的ens33網卡,會發現漂移地址已經轉移過來了,說明雙機熱備功能生效。待主服務器開機后,漂移地址會自動轉移回到主服務器上。
[root@localhost ~]# ip a show dev ens33 #主服務器關機后查看備份服務器的網卡信息
2: ens33: <BROADCAST,MULTICAST,UP state UP group default qlen 1000
link/ether 00:0c:29:9a:09:98 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.2/24 brd 192.168.1.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.1.100/32 scope global ens33 #漂移地址已經轉移過來了
valid_lft forever preferred_lft forever
inet6 fe80::3050:1a9b:5956:5297/64 scope link noprefixroute
valid_lft forever preferred_lft forever
再將主服務器開機,會發現VIP已經轉移回了主服務器,而備份服務器又查不到了VIP:
[root@LVS1 ~]# ip a show dev ens33 #在主服務器上進行查看
2: ens33: <BROADCAST,MULTICAST,UP,Lefault qlen 1000
link/ether 00:0c:29:77:2c:03 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/24 brd 192.168.1.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.1.100/32 scope global ens33 #VIP地址在這里了
valid_lft forever preferred_lft forever
inet6 fe80::95f8:eeb7:2ed2:d13c/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@LVS2 ~]# ip a show dev ens33 #在備份服務器上進行查看
2: ens33: <BROADCAST,MULTICAST,UP,P grou00
link/ether 00:0c:29:9a:09:98 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.2/24 brd 192.168.1.255 scope goute ens33
valid_lft forever preferred_lft forever
inet6 fe80::3050:1a9b:5956:5297/64 scope link noprefixroute
valid_lft forever preferred_lft forever
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。