HA集羣-keepalived+LVS\DR部署

 一 . keepalived簡介html


keepalived是什麼?

node

keepalived是集羣管理中保證集羣高可用的一個服務軟件,其功能相似於heartbeat,用來防止單點故障

keepalived工做原理mysql


keepalived是以VRRP協議爲實現基礎的,VRRP全稱Virtual Router Redundancy Protocol,即虛擬路由冗餘協議。

       虛擬路由冗餘協議,能夠認爲是實現路由器高可用的協議,即將N臺提供相同功能的路由器組成一個路由器組,這個組裏面有一個master(主)和多個backup(備份),master上面有一個對外提供服務的vip(該路由器所在局域網內其餘機器的默認路由爲該vip),master會發組播(224.0.0.18),當backup收不到vrrp包時就認爲master宕掉了,這時就須要根據VRRP的優先級(priority)來選舉一個backup當master。這樣的話就能夠保證路由器的高可用了。

       keepalived主要有三個模塊,分別是core(核心)、check(檢測)和vrrp(虛擬路由冗餘協議)。core模塊爲keepalived的核心,負責主進程的啓動、維護以及全局配置文件(keepalived.conf)的加載和解析。check負責健康檢查,包括常見的各類檢查方式(TCP、腳本檢測進程狀態等)。vrrp模塊是來實現VRRP協議的。


keepalived的常見組合
keepalived+LVS
keepalived+nginx
keepalived+mysql-proxy
keepalived+mycat

keepalived+LVS
       Keepalived 是一個基於VRRP協議來實現的LVS服務高可用方案,能夠利用其來避免單點故障。一個LVS服務會有2臺服務器運行Keepalived,一臺爲主服務器(MASTER),一臺爲備份服務器(BACKUP),可是對外表現爲一個虛擬IP,主服務器會發送特定的消息給備份服務器,當備份服務器收不到這個消息的時候,即主服務器宕機的時候, 備份服務器就會接管虛擬IP,繼續提供服務,從而保證了高可用性。linux


 二 . keepalived+LVS\DR的搭建nginx


實驗拓撲圖
web


image.png


實驗準備
算法


客戶端/服務器  IP地址
Client 192.168.11.1
Director master (node11)
192.168.11.11/24
Director Backup (node12) 192.168.11.12/24
Real  Server (node13) 192.168.11.13/24
Real  Server (node14) 192.168.11.14/24



四臺服務器均關閉防火牆和selinuxsql

systemctl  stop  firewalld                  #關閉防火牆apache

systemctl  status  firrewalld              #查看防火牆vim

setenforce  0                                   #關閉selinux

getenforce                                      #查看selinux是否關閉


服務部署流程


首先簡單部署後端服務器(real  server) , 後端web服務器能夠是apache , nginx 等服務


在node13和node14上部署apache服務 , 並設置主頁


node13(192.168.11.13)上的操做

yum  install  -y  httpd               #用yum安裝httpd軟件
echo  'www.node13.com' > /var/www/html/index.html   #設置apache主頁 , node13上作
systemctl  start  httpd                #重啓服務
curl  192.168.11.13                   #內測httpd服務
vim  lo.sh                       #編輯腳本,內容以下
#!/bin/bash
ifconfig lo:1 192.168.11.100  netmask 255.255.255.255
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
chmod  +x  lo.sh                    #給腳本執行權限
bash  lo.sh                        #運行腳本,出現下圖片中的IP則表示正確
scp  lo.sh  root@192.168.11.14:/root/           #把lo.sh上傳到192.168.11.14的root家目錄中


image.png

image.png


node14(192.168.11.14)上的操做

yum  install  -y  httpd                                   #用yum安裝httpd軟件
echo  'www.node14.com' > /var/www/html/index.html         #設置apache主頁 , node13上作
systemctl  start  httpd                                   #重啓服務
curl  192.168.11.13                                       #內測httpd服務
bash  lo.sh


image.png

image.png

部署Master  Director  Server 服務(192.168.11.11)

yum  install  -y  keepalived  ipvsadm          #安裝keepalived軟件和ipvsadm命令
cd  /etc/keepalived
cp  -av  keepalived.conf{,.bak}                #備份keepalived主配置文件

image.png

vim  keepalived.conf       #編輯keepalived配置文件 , 以下圖

配置文件詳解:

image.png

image.png

配置好keepalived文件定義集羣后 , 重啓服務 , 查看IP和ipvsadm集羣信息

systemctl  restart  keepalived    #重啓服務
ip  a                             #此處查看ip信息 , 會多出一個vrrp的虛擬IP(VIP地址)

image.png

ipvsadm  -Ln                      #查看ipvsadm集羣VIP所對應的後端web服務器IP信息

image.png

把配置文件keepalived.conf配置文件傳到192.168.11.12備服務器上

[root@node11 keepalived]# scp keepalived.conf  root@192.168.11.12:/etc/keepalived/

image.png

部署Backup  Director  Server 服務(192.168.11.12)

yum  install  -y  keepalived  ipvsadm
vim  /etc/keepalived/keepalived.conf

image.png


systemctl  restart  keepalived        #重啓keepalived服務

修改好配置文件重啓服務後 , 此時ip  a 查看ip地址信息 , 發現VIP地址併爲出現 , 緣由是主服務器未down掉

image.png


配置好主備服務後 , 進行測試:

image.png

測試結果每訪問3次192.168.11.14 , 再訪問一次192.168.11.13 ,(LVS調度算法權重)成功負載均衡進行輪詢

此時僞裝把主服務器192.168.11.11down掉 , 查看192.168.11.12的IP狀態 ,並再次執行測試


關閉node11的keepalived服務

image.png

查看192.168.11.12上的IP信息 , 發現成功繼承VIP:192.168.11.100,並繼續承當起負載均衡器 , 實現高可用

image.png

再次測試:

image.png


抓包分析:

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


當master和backup都在運行keepalived服務時:在備服務器node12抓取vrrp包 , 發現是192.168.11.11在不間斷髮送vrrp組播node11(master)發送的組播信息:
node12(backup)接收的組播信息
src:192.168.11.11
dest:224.0.0.18

keepalived集羣中其餘主機接收的組播信息
src:192.168.11.11
dest:224.0.0.18

image.png

image.png


當192.168.11.11down掉後 , 192.168.11.12競選 ,開始由192.168.11.11不間斷髮送vrrp包變成192.168.11.12開始不間斷髮送vrrp組播

node12發送的組播信息
src:192.168.11.12
dest:224.0.0.18
keepalived集羣中其餘主機接收的組播信息:
src:192.168.11.12
dest:224.0.0.18

image.png

image.png

相關文章
相關標籤/搜索