1. 程式人生 > >Keepalived+Lvs-DR高可用

Keepalived+Lvs-DR高可用

time keepal tar ++ 網卡 p地址 host 誰的 oot

Keepalived高可用
keepalived+LVS-DR模式拓撲圖:
LVS:是中間件軟件(即代理服務器軟件),是用來實現集群的負載均衡。

                                                         +++++++++  
         +--------------------------->            +  Client      +      192.168.11.1      win7/10
         |                                               +++++++++   
         |                               ________________|_________________                                             
         |                              |             VIP eth0:1 192.168.10.100        |                   
         |         +++++++++++++++++++++               +++++++++++++++++++++                    
         |         +  Director master主    node11    +               +    Director backup備   node12   +
         |         +++++++++++++++++++++               +++++++++++++++++++++
         |          DIP 192.168.11.11  ens33網卡                     DIP  192.168.11.12  ens33網卡
         |                               |________
         |                 _________________|________________
         |                 |                                                           | 
         |           +++++++++++++++++              ++++++++++++++++++
         +--------+ RealServer A     node13  +             +   Real Server B    node14  +
                     +++++++++++++++++              ++++++++++++++++++
                          192.168.11.13/24                                192.168.11.14/24

分別在Director master、Director backup 上部署浮動資源(VIP IPVS策略)
測試2個Director在DR模式下都工作正常。測試完成後都撤掉浮動資源。

首先:在node11、node12上分別安裝keepalived和ipvsadm軟件包,並做keepalived相關配置。
在Director master上安裝配置Keepalived

yum install keepalived ipvsadm -y

cp -av /etc/keepalived/keepalived.conf{,.bak} 備份原始配置文件

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs { 全局定義,說明:在實驗測試環境中,以下內容可以隨便寫,但是master和backup的router_id必須相同
notification_email { 設置通知郵箱
root@localhost 管理員的郵箱地址
}
notification_email_from keepalived@localhost 通知郵件的發件人郵箱
smtp_server 127.0.0.1 郵箱服務器IP地址
smtp_connect_timeout 30 郵件服務器連接超時時間為30秒
router_id dr1 路由器ID名稱,同一個keepalived高可用集群中master和backup的ID名稱必須相同

#vrrp_strict 一定要註釋掉此行,否則無法通過VIP地址訪問調度器
}

vrrp_instance VI_1 { vrrp虛擬路由冗余協議的實例設置 ,實例名稱為VI_1
state MASTER 狀態,主為MASTER,備為BACKUP狀態
interface ens33 //心跳檢測網卡接口,要根據實際情況寫網卡接口名,用ip a查網卡接口名
virtual_router_id 51 //master主和backup備兩邊必須一樣,此處是集群的群號
priority 100 //優先級,MASTER的值必須高於BACKUP的值,類似於現實生活中的競選的票數
advert_int 1 //檢查間隔,單位秒。vrrp的組播地址是224.0.0.18
authentication { 身份認證配置
auth_type PASS //認證類型為密碼方式,主備要一致
auth_pass 1111 //認證密碼為1111,主備要一致
}
virtual_ipaddress {
192.168.11.100 //VIP,可多個IP,每行一個IP地址
192.168.11.111
}
}

virtual_server 192.168.11.100 80 { //LVS 配置(即調度器的配置),此行等同於ipvsadm -At 192.168.11.100:80 -s wrr命令
delay_loop 3 //服務論詢的時間間隔
lb_algo wrr //LVS 調度算法
lb_kind DR // LVS 集群模式
protocol TCP //指定協議為TCP協議
real_server 192.168.11.13 80 { //RS後端真實服務器的IP及端口號,等同於ipvsadm -at 192.168.11.100:80 -r 192.168.11.13:80 -g -w 1命令
weight 1
TCP_CHECK { //RS健康檢查,如果RS主機上的80端口業務異常關閉了,用ipvsadm -Ln查不到此RS的IP信息
connect_timeout 3 //連接超時時間為3秒
}
}
real_server 192.168.11.14 80 {
weight 1
TCP_CHECK {
connect_timeout 3
}
}
}

cd /etc/keepalived

scp keepalived.conf 192.168.11.12:/etc/keepalived/ 將配置文件發送給node12的主機

拷貝後,修改配置文件
state BACKUP
priority 90

兩個Director(調度器)上啟動服務,並查看vip地址:

systemctl restart keepalived [centos 7專用命令]

service keepalived restart [centos 6和7通用命令]

ip a 在master上可以看到ens33網卡有192.168.11.100和192.168.11.111這兩個VIP地址。而backup備主機上是沒有VIP的。當在master上用systemctl stop keepalived後,備主機上就會有這兩個VIP。

ipvsadm -Ln 查ipvs的集群配置信息

=============================
抓包:

yum install -y tcpdump

tcpdump -i ens33 -nv vrrp

-i 指定網卡
-n 以數字的方式顯示(ip,port)
-v 顯示詳細信息
-vv 顯示更詳細的信息
-w 保存到文件

----
keepalived通過vrrp協議進行組播的作用:
是為了競選出由哪臺keepalived主機接管業務(使用VIP的)。誰的priority優先級高(即票數多),誰就有VIP地址。

當master和backup都在運行keepalived服務時:
node11(master)發送的組播信息:
src:192.168.11.11
dest:224.0.0.18

node12(backup)接收的組播信息:
src:192.168.11.11
dest:224.0.0.18

----
當node11這臺master停止了keepalived服務:
node12發送的組播信息:
src:192.168.11.12
dest:224.0.0.18

keepalived集群中其他主機接收的組播信息:
src:192.168.11.12
dest:224.0.0.18

Keepalived+Lvs-DR高可用