您好,登錄后才能下訂單哦!
keepalived官方網(wǎng)站: www.keepalived.org/ 在非LVS環(huán)境中keepalived也可以作為熱備軟件使用。
keepalived最初是專門(mén)針對(duì)LVS設(shè)計(jì)的一款強(qiáng)大的輔助工具,主要用來(lái)提供故障切換和健康檢查功能——判斷LVS負(fù)載調(diào)度器、節(jié)點(diǎn)服務(wù)器的可用性,及時(shí)隔離并替換為新的服務(wù)器,當(dāng)故障主機(jī)回復(fù)后將其重新加入群集。單獨(dú)部署LVS環(huán)境的話,調(diào)度器發(fā)生宕機(jī)的話,整個(gè)群集就失效了,某一個(gè)web節(jié)點(diǎn)宕機(jī)后,客戶端在訪問(wèn)時(shí),總會(huì)碰上訪問(wèn)不到網(wǎng)頁(yè)的情況,所以,將keepalived和LVS結(jié)合起來(lái),才可形成一個(gè)真正的高可用群集,當(dāng)然,后端的共享存儲(chǔ)也必須搭建一個(gè)高可用的存儲(chǔ)服務(wù)器,三者其中有一個(gè)滿足不了,都不能稱之為一個(gè)高可用的群集環(huán)境。
keepalived采用VRRP(虛擬路由冗余協(xié)議)熱備份協(xié)議,以軟件的方式實(shí)現(xiàn)Linux服務(wù)器的多機(jī)熱備功能。VRRP是針對(duì)路由器的一種備份解決方案——由多臺(tái)路由器組成一個(gè)熱備組,通過(guò)共用的虛擬IP(VIP)地址對(duì)外提供服務(wù);每個(gè)熱備份組內(nèi)同一時(shí)刻只有一臺(tái)主路由器提供服務(wù),其他路由器處于冗余狀態(tài),若當(dāng)前在線的路由器失效,則其他路由器會(huì)自動(dòng)接替(優(yōu)先級(jí)決定接替順序)虛擬IP地址,以繼續(xù)提供服務(wù)。
熱備組內(nèi)的每臺(tái)路由器都可能成為主路由器,虛擬路由器的IP地址(VIP)可以在熱備組內(nèi)路由器進(jìn)行轉(zhuǎn)移,所以也稱為漂移IP地址。使用keepalived時(shí),漂移地址的實(shí)現(xiàn)不需要手動(dòng)建立虛接口配置文件(如ens32:0),而是由keepalived根據(jù)配置文件自動(dòng)管理。
基于VRRP的熱備方式,keepalived可以用作服務(wù)器的故障切換,每個(gè)熱備組可以有多臺(tái)服務(wù)器——最常用的是多機(jī)熱備了。在這種多機(jī)熱備方案中,故障切換主要針對(duì)虛擬IP地址的漂移來(lái)實(shí)現(xiàn)。因此能適用于各種應(yīng)用服務(wù)器(不管是Web、FTP、Mail、還是SSH、DNS....)。
拓?fù)鋱D如下所示:
Keepalived服務(wù)的配置目錄位于/etc/keepalived/。其中,keepalived.conf是主配置文件;另外包括一個(gè)子目錄samples/,提供了許多配置樣例作為參考。在Keepalived的配置文件中,使用“global_defs {...}”區(qū)段指定全局參數(shù),使用“vrrp_instance實(shí)例名稱{...}”區(qū)段指定VRRP熱備參數(shù),注釋文字以“!”符號(hào)開(kāi)頭。
[root@centos04 ~]# systemctl stop firewalld <!--關(guān)閉防火墻-->
[root@centos04 ~]# yum -y install ipvsadm keepalived <!--安裝keeplived服務(wù)-->
[root@centos04 ~]# cp /etc/keepalived/keepalived.conf
/etc/keepalived/keepalived.conf.bak <!--備份keepalived主配置文件-->
[root@centos04 ~]# systemctl start keepalived <!--啟動(dòng)keepalived服務(wù)-->
[root@centos04 ~]# chkconfig --level 35 keepalived on <!--設(shè)置開(kāi)機(jī)自動(dòng)啟動(dòng)-->
[root@centos04 ~]# vim /etc/keepalived/keepalived.conf <!--編輯keepalived主配置文件-->
! Configuration File for keepalived
global_defs {
router_id LVS_HA_Master <!--修改這里的服務(wù)器名稱-->
}
vrrp_instance VI_1 { <!--定義VRRP熱備實(shí)例-->
state MASTER <!--熱備狀態(tài),MASTER表示主服務(wù)器(注意大小寫(xiě))-->
interface ens32 <!--承載VIP地址的物理接口-->
virtual_router_id 51 <!--虛擬路由器的ID號(hào),每個(gè)熱備組保持一致-->
priority 100 <!--優(yōu)先級(jí)0-100,數(shù)值越大越優(yōu)先-->
advert_int 1 <!--通告間隔秒數(shù)(心跳頻率)-->
authentication { <!--認(rèn)證信息,每個(gè)熱備組保持一致-->
auth_type PASS <!--認(rèn)證類型-->
auth_pass 1111 <!--密碼字串-->
}
virtual_ipaddress { <!--指定漂移地址,可以有多個(gè)-->
192.168.100.253
}
}
............ <!--此處省略部分內(nèi)容-->
確認(rèn)上面配置無(wú)誤后,然后啟動(dòng)keepalived服務(wù),實(shí)際狀態(tài)為MASTER的主服務(wù)器將為ens32接口自動(dòng)添加VIP地址,通過(guò)ip命令可以查看(注意:ifconfig命令看不到)。
[root@centos04 ~]# systemctl restart keepalived <!--重啟keepalived服務(wù)-->
[root@centos04 ~]# ip a show dev ens32 <!--查看ens32接口-->
ens32: <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.100.40/24 brd 192.168.1.255 scope global noprefixroute ens32
valid_lft forever preferred_lft forever
inet 192.168.100.253/32 scope global ens32 <!--可以看到VIP已經(jīng)配置在ens32上-->
valid_lft forever preferred_lft forever
inet6 fe80::95f8:eeb7:2ed2:d13c/64 scope link noprefixroute
valid_lft forever preferred_lft forever
在同一keepalived熱備組內(nèi),所有服務(wù)器的keepalived配置文件基本相同,包括虛擬路由器的ID號(hào)、認(rèn)證信息、漂移地址、心跳頻率等。不同之處主要在于路由器名稱、熱備狀態(tài)、優(yōu)先級(jí)。
路由器名稱(route_id):建議為每個(gè)參與熱備的服務(wù)器指定不同的名稱。
熱備狀態(tài)(state):至少應(yīng)有一臺(tái)主服務(wù)器,將狀態(tài)設(shè)置為MASTER;可以有多臺(tái)備用的服務(wù)器,將狀態(tài)設(shè)置為BACKUP。
- 優(yōu)先級(jí)(priority):數(shù)值越大則取得VIP控制權(quán)的優(yōu)先級(jí)就越高,因此主服務(wù)的優(yōu)先級(jí)應(yīng)設(shè)置為最高;其他備用服務(wù)器可依次遞減,但不能相同,以免在爭(zhēng)奪VIP控制權(quán)時(shí)發(fā)生沖突。
配置備用服務(wù)器時(shí)(可以有多臺(tái))時(shí),可以參考主服務(wù)器的keepa.conf文配置文件內(nèi)容,只要修改路由器名稱、熱備狀態(tài)、優(yōu)先級(jí)就可以了。
[root@centos05 ~]# systemctl stop firewalld <!--關(guān)閉防火墻-->
[root@centos05 ~]# yum -y install keepalived ipvsadm<!--安裝相關(guān)工具-->
[root@centos05 ~]# scp
root@192.168.100.40:/etc/keepalived/keepalived.conf
/etc/keepalived/
<!--使用從節(jié)點(diǎn)服務(wù)器root用戶將主節(jié)點(diǎn)服務(wù)器的keepalived配置文件復(fù)制過(guò)來(lái)-->
root@192.168.100.40 s password: <!--輸入主節(jié)點(diǎn)root用戶的密碼-->
keepalived.conf 100% 3549 3.5MB/s 00:00
[root@centos05 ~]# vim /etc/keepalived/keepalived.conf
<!--編輯keepalived主配置文件-->
global_defs {
...............
router_id LVS_DEVEL2 <!--修改這里的服務(wù)器名稱-->
.....................
}
..............
vrrp_instance VI_1 {
state BACKUP <!--修改這里的狀態(tài),改為BACKUP-->
interface ens32 <!--若該服務(wù)器承載VIP的物理接口有變,則這里也要修改-->
virtual_router_id 51
priority 90 <!--修改優(yōu)先級(jí),要比主服務(wù)器低-->
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.100.253
}
}
.................
<!--改動(dòng)上述幾行后,保存退出即可-->
[root@centos05 ~]# systemctl start keepalived <!--啟動(dòng)服務(wù)-->
[root@centos05 ~]# systemctl enable keepalived<!--設(shè)置開(kāi)機(jī)自啟動(dòng)-->
確認(rèn)配置無(wú)誤,一樣需要啟動(dòng)keepalived服務(wù)。此時(shí)主服務(wù)器仍然在線,VIP地址實(shí)際上仍然由主服務(wù)器控制,其他服務(wù)器處于備份狀態(tài),因此在備用服務(wù)器中將不會(huì)為ens32接口添加VIP地址。
[root@centos05 ~]# ip a show dev ens33 <!--查看ens33接口,不會(huì)看到VIP-->
ens32: <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.100.50/24 brd 192.168.1.255 scope global noprefixroute ens32
valid_lft forever preferred_lft forever
inet6 fe80::3050:1a9b:5956:5297/64 scope link noprefixroute
valid_lft forever preferred_lft forever
將主服務(wù)器關(guān)機(jī),或停止keepalived服務(wù),等待約15秒后,查看備份服務(wù)器的ens32網(wǎng)卡,會(huì)發(fā)現(xiàn)漂移地址已經(jīng)轉(zhuǎn)移過(guò)來(lái)了,說(shuō)明雙機(jī)熱備功能生效。待主服務(wù)器開(kāi)機(jī)后,漂移地址會(huì)自動(dòng)轉(zhuǎn)移回到主服務(wù)器上。
[root@centos05 ~]# ip a show dev ens32 <!--主服務(wù)器關(guān)機(jī)后查看備份服務(wù)器的網(wǎng)卡信息-->
ens32: <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.100.50/24 brd 192.168.1.255 scope global noprefixroute ens32
valid_lft forever preferred_lft forever
inet 192.168.100.253/32 scope global ens32 <!--漂移地址已經(jīng)轉(zhuǎn)移過(guò)來(lái)了-->
valid_lft forever preferred_lft forever
inet6 fe80::3050:1a9b:5956:5297/64 scope link noprefixroute
valid_lft forever preferred_lft forever
再將主服務(wù)器開(kāi)機(jī),會(huì)發(fā)現(xiàn)VIP已經(jīng)轉(zhuǎn)移回了主服務(wù)器,而備份服務(wù)器又查不到了VIP:
[root@centos04 ~]# ip a show dev ens32 <!--在主服務(wù)器上進(jìn)行查看-->
ens32: <BROADCAST,MULTICAST,UP,Lefault qlen 1000
link/ether 00:0c:29:77:2c:03 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.40/24 brd 192.168.1.255 scope global noprefixroute ens32
valid_lft forever preferred_lft forever
inet 192.168.100.253/32 scope global ens32 <!--VIP地址在這里了-->
valid_lft forever preferred_lft forever
inet6 fe80::95f8:eeb7:2ed2:d13c/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@centos05 ~]# ip a show dev ens32 <!--在備份服務(wù)器上進(jìn)行查看-->
ens32: <BROADCAST,MULTICAST,UP,P grou00
link/ether 00:0c:29:9a:09:98 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.50/24 brd 192.168.1.255 scope goute ens32
valid_lft forever preferred_lft forever
inet6 fe80::3050:1a9b:5956:5297/64 scope link noprefixroute
valid_lft forever preferred_lft forever
—————— 本文至此結(jié)束,感謝閱讀 ——————
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。