溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

centos 7之keepalived雙機熱備理論+配置文

發(fā)布時間:2020-07-03 02:34:25 來源:網(wǎng)絡(luò) 閱讀:1203 作者:warrent 欄目:建站服務(wù)器

一、keepalived工作原理及作用:

keepalived最初是專門針對LVS設(shè)計的一款強大的輔助工具,主要用來提供故障切換和健康檢

查功能——判斷LVS負載調(diào)度器、節(jié)點服務(wù)器的可用性,及時隔離并替換為新的服務(wù)器,當(dāng)故

障主機回復(fù)后將其重新加入群集。單獨部署LVS環(huán)境的話,調(diào)度器發(fā)生宕機的話,整個群集就

失效了,某一個web節(jié)點宕機后,客戶端在訪問時,總會碰上訪問不到網(wǎng)頁的情況,所以,將

keepalived和LVS結(jié)合起來,才可形成一個真正的高可用群集,當(dāng)然,后端的共享存儲也必須

搭建一個高可用的存儲服務(wù)器,三者其中有一個滿足不了,都不能稱之為一個高可用的群集環(huán)

境。

keepalived官方網(wǎng)站: keepalived官網(wǎng),在非LVS環(huán)境中,keepalived也可以作為熱備軟件

使用。

keepalived采用VRRP(虛擬路由冗余協(xié)議)熱備份協(xié)議,以軟件的方式實現(xiàn)Linux服務(wù)器的

多機熱備。VRRP是針對路由器的一種備份解決方案——由多臺路由器組成一個熱備組,通

過共用的虛擬IP(VIP)地址對外提供服務(wù);每個熱備份組內(nèi)同一時刻只有一臺主路由器提

供服務(wù),其他路由器處于冗余狀態(tài),若當(dāng)前在線的路由器失效,則其他路由器會自動接替

(優(yōu)先級決定接替順序)虛擬IP地址,以繼續(xù)提供服務(wù)。

熱備組內(nèi)的每臺路由器都可能成為主路由器,虛擬路由器的IP地址(VIP)可以在熱備組內(nèi)

路由器進行轉(zhuǎn)移,所以也稱為漂移IP地址。使用keepalived時,漂移地址的實現(xiàn)不需要手動

建立虛接口配置文件(如ens33:0),而是由keepalived根據(jù)配置文件自動管理。

基于VRRP的熱備方式,keepalived可以用作服務(wù)器的故障切換,每個熱備組可以有多臺服

務(wù)器——最常用的是多機熱備了。在這種多機熱備方案中,故障切換主要針對虛擬IP地址的

漂移來實現(xiàn)。因此能適用于各種應(yīng)用服務(wù)器(不管是Web、FTP、Mail、還是SSH、DNS....)。

二、keepalived雙機熱備配置詳解:

通過下面簡易的環(huán)境圖,可以去全面的了解雙機熱備的配置及功能:

centos  7之keepalived雙機熱備理論+配置文

1、配置主服務(wù)器:

[root@lVS1 ~]# systemctl stop firewalld            #關(guān)閉防火墻
[root@lVS1 ~]# yum -y install keepalived ipvsadm      安裝所需工具
[root@lVS1 ~]# systemctl enable keepalived        #設(shè)置開機自啟動
[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     #啟用郵件通知功能,這里設(shè)置收件人地址,可以配置多個
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc            #發(fā)件人姓名、地址
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL1           #本服務(wù)器的名稱(在群集中必須唯一)。
            ..............    #省略部分內(nèi)容
}
vrrp_instance VI_1 {                     #定義VRRP熱備實例
    state MASTER              #熱備狀態(tài),MASTER表示主服務(wù)器(注意大小寫)
    interface ens33             #承載VIP地址的物理接口
    virtual_router_id 51                 #虛擬路由器的ID號,每個熱備組保持一致。
    priority 100                           #優(yōu)先級0-100,數(shù)值越大越優(yōu)先。
    advert_int 1                   #通告間隔秒數(shù)(心跳頻率)。
    authentication {                     #認證信息,每個熱備組保持一致
        auth_type PASS                #認證類型
        auth_pass 1111                 #密碼字串
    }
    virtual_ipaddress {             #指定漂移地址,可以有多個
    192.168.1.100
    }
}

        .........................            #省略部分內(nèi)容

確認上面配置無誤后,然后啟動keepalived服務(wù),實際狀態(tài)為MASTER的主服務(wù)器將為ens33接口自動添加VIP地址,通過ip命令可以查看(注意:ifconfig命令看不到)。

[root@lVS1 keepalived]# systemctl start keepalived          #啟動該服務(wù)
[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已經(jīng)配置在ens33上。
       valid_lft forever preferred_lft forever
    inet6 fe80::95f8:eeb7:2ed2:d13c/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

2、配置備份服務(wù)器(LVS2):

在同一keepalived熱備組內(nèi),所有服務(wù)器的keepalived配置文件基本相同,某些配置項也必

須相同,包括虛擬路由器的ID號、認證信息、漂移地址、心跳頻率等,不同之處主要在于路

器名稱、熱備狀態(tài)、優(yōu)先級。具體配置時需要注意以下幾點:

  • 服務(wù)器名稱(route_id):建議為每個參與熱備的服務(wù)器指定不同的名稱。

  • 熱備狀態(tài)(state):至少應(yīng)有一臺主服務(wù)器,將狀態(tài)設(shè)置為MASTER;可以有多臺備用的服務(wù)器,將狀態(tài)設(shè)置為BACKUP。

  • 優(yōu)先級(priority):數(shù)值越大則取得VIP控制權(quán)的優(yōu)先級就越高,因此主服務(wù)的優(yōu)先級應(yīng)設(shè)置為最高;其他備用服務(wù)器可依次遞減,但不能相同,以免在爭奪VIP控制權(quán)時發(fā)生沖突。

配置備用服務(wù)器時(可以有多臺),可以直接將主服務(wù)器的keepa.conf文件復(fù)制過來,修改服務(wù)器名稱、熱備狀態(tài)、優(yōu)先級,這三項就可以了,哪怕是其中包含了一些web節(jié)點的配置,也不用修改,也不能修改。

[root@LVS2 ~]# systemctl stop firewalld            #關(guān)閉防火墻
[root@LVS2 ~]# yum -y install keepalived ipvsadm          #安裝相關(guān)工具
[root@LVS2 ~]# scp root@192.168.1.1:/etc/keepalived/keepalived.conf /etc/keepalived/
#使用主服務(wù)器root用戶將主服務(wù)器的keepalived配置文件復(fù)制過來。
root@192.168.1.1 s password:                    #輸入主服務(wù)器root用戶的密碼
keepalived.conf                             100% 3549     3.5MB/s   00:00   
[root@LVS2 ~]# vim /etc/keepalived/keepalived.conf 
global_defs {
   ...............
   router_id LVS_DEVEL2                    #修改這里的服務(wù)器名稱
  .....................

}
                ..............
vrrp_instance VI_1 {
    state BACKUP             #修改這里的狀態(tài),改為BACKUP
    interface ens33         #若該服務(wù)器承載VIP的物理接口有變,則這里也要修改
    virtual_router_id 51
    priority 90               #修改優(yōu)先級,要比主服務(wù)器低。
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }   
    virtual_ipaddress {
    192.168.1.100
    }
}   
              .................
#改動上述幾行后,保存退出即可。
[root@LVS2 ~]# systemctl start keepalived         #啟動服務(wù)
[root@LVS2 ~]# systemctl enable keepalived         #設(shè)置開機自啟動

此時主服務(wù)器仍然在線,VIP地址實際上仍然由主服務(wù)器控制,其他服務(wù)器處于備份狀態(tài),因此在備用服務(wù)器中將不會為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、測試雙機熱備功能:

將主服務(wù)器關(guān)機,或停止keepalived服務(wù),等待約15秒后,查看備份服務(wù)器的ens33網(wǎng)卡,會發(fā)現(xiàn)漂移地址已經(jīng)轉(zhuǎn)移過來了,說明雙機熱備功能生效。待主服務(wù)器開機后,漂移地址會自動轉(zhuǎn)移回到主服務(wù)器上。

[root@localhost ~]# ip a show dev ens33   #主服務(wù)器關(guān)機后查看備份服務(wù)器的網(wǎng)卡信息
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                   #漂移地址已經(jīng)轉(zhuǎn)移過來了
       valid_lft forever preferred_lft forever
    inet6 fe80::3050:1a9b:5956:5297/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

再將主服務(wù)器開機,會發(fā)現(xiàn)VIP已經(jīng)轉(zhuǎn)移回了主服務(wù)器,而備份服務(wù)器又查不到了VIP:

[root@LVS1 ~]# ip a show dev ens33              #在主服務(wù)器上進行查看
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               #在備份服務(wù)器上進行查看
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

最后,附上一個配置實例:搭建:LVS+Keepalived高可用Web服務(wù)群集環(huán)境。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI