LVS + Keepalived 高可用羣集部署

簡介:
keepalived是專門針對LVS設計的一款強大的輔助工具,主要用來提供故障切換(Failover)和健康檢查(Health Checking)功能——判斷LVS負載調度器、節點服務器的可用性,及時隔離並替換爲新的服務器,當故障主機修復後將其重新加入羣集。
Keepalived採用VRRP(Virtual Router Redundancy Protocl,虛擬路由冗餘協議)熱備份協議,以軟件的方式實現Linux服務器的多機熱備功能。

實驗拓撲:
LVS + Keepalived 高可用羣集部署

實驗環境:

序號 名稱 類型 IP地址
1 keepalived 主 centos7 192.168.10.10
2 keepalived 從 centos7 192.168.10.20
3 節點服務器 web1 centos7 192.168.10.100
4 節點服務器 web2 centos7 192.168.10.200
5 客戶機 client centos7 192.168.10.15

實驗過程:
一、調度服務器
1、安裝環境部署、關閉防火牆、安全功能,兩臺調度服務器相同操作

[root@localhost ~]#yum install keepalived ipvsadm -y
[root@localhost ~]#systemctl stop firewalld.service 
[root@localhost ~]#setenforce 0

2、修改網卡爲僅主機模式,配置靜態IP,兩臺調度服務器相同操作,DR 1:192.168.10.10 DR 2:192.168.10.20

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost ~]#service network restart

LVS + Keepalived 高可用羣集部署
3、開啓路由功能、關閉重定向功能,兩臺調度服務器相同操作

[root@localhost ~]#vi /etc/sysctl.conf
[root@localhost ~]#sysctl -p

LVS + Keepalived 高可用羣集部署
4、配置虛擬IP,並開啓。注意:如果DR開啓虛擬網卡時報錯,可用 service network restart 重啓網卡,再次開啓即可成功。

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]#cp ifcfg-ens33 ifcfg-ens33:0
[root@localhost network-scripts]#vim ifcfg-ens33:0
      DEVICE=ens33:0
      ONBOOT=yes
      IPADDR=192.168.10.2
      NETMASK=255.255.255.0
[root@localhost ~]#ifup ens33:0

DR 1:
LVS + Keepalived 高可用羣集部署
DR 2:
LVS + Keepalived 高可用羣集部署
5、編輯服務腳本,並執行,兩臺調度服務器相同操作

[root@localhost ~]# cd /etc/init.d/
[root@localhost ~]#vim dr.sh

LVS + Keepalived 高可用羣集部署

[root@localhost ~]#chmod +x dr.sh  
[root@localhost ~]#service dr.sh start

二、節點服務器
1、安裝環境部署,關閉防火牆、安全功能,兩臺節點服務器同樣操作

[root@localhost ~]#yum install httpd -y
[root@localhost ~]#systemctl stop firewalld.service 
[root@localhost ~]#setenforce 0

2、開啓網頁服務,並設置測試頁面,web1和web2測試頁面加以區分

[root@localhost ~]#systemctl start httpd.service
[root@localhost ~]#cd /var/www/html/
[root@localhost html]#echo "this is aaa" > index.html      #web1
[root@localhost html]#echo "this is bbb" > index.htm       #web2

3、修改網卡爲僅主機模式,web1配置靜態IP爲192.168.10.100,web2:192.168.10.200,並配置迴環網卡的虛擬IP

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost ~]#service network restart
[root@localhost ~]#cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]#cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]#vim ifcfg-lo:0
      DEVICE=lo:0
      IPADDR=192.168.10.2
      NETMASK=255.255.255.0
      ONBOOT=yes

web1:
LVS + Keepalived 高可用羣集部署
web2:
LVS + Keepalived 高可用羣集部署

4、編輯服務腳本,並執行,兩臺節點服務器相同操作

[root@localhost ~]#cd /etc/init.d/
[root@localhost ~]#vim web.sh

LVS + Keepalived 高可用羣集部署

[root@localhost ~]#chmod +x web.sh
[root@localhost ~]#service web.sh start
[root@localhost ~]#ifup lo:0

5、用火狐瀏覽器進行自測:firefox "http://127.0.0.1/" & ,訪問後重啓腳本服務
web1:
LVS + Keepalived 高可用羣集部署
web2:
LVS + Keepalived 高可用羣集部署
*到此部分,節點服務器服務部署完成,DR調度服務器配置完成,便可用客戶機檢測:通過訪問調度服務器虛擬IP,可以訪問到web1、web2的測試頁面
LVS + Keepalived 高可用羣集部署
LVS + Keepalived 高可用羣集部署
三、在兩臺調度服務器上配置keepalived服務
1、在192.168.10.10上配置主服務器

[root@localhost ~]#cd /etc/keepalived/
[root@localhost ~]#vim keepalived.conf

LVS + Keepalived 高可用羣集部署
2、開啓服務,並查看狀態

[root@localhost ~]#systemctl start keepalived
[root@localhost ~]#systemctl status keepalived

LVS + Keepalived 高可用羣集部署
3、在192.168.10.20上配置備用服務器

[root@localhost ~]#cd /etc/keepalived/
[root@localhost ~]#vim keepalived.conf

LVS + Keepalived 高可用羣集部署
4、開啓服務,並查看狀態
LVS + Keepalived 高可用羣集部署
5、測試,如果客戶機無法訪問,此時只需要將其防火牆重新關閉,並重啓相關服務即可。
LVS + Keepalived 高可用羣集部署
訪問到網頁後,down掉keepalived的主服務器,再次訪問,如果成功,說明熱備冗餘設置成功。
LVS + Keepalived 高可用羣集部署

到此實驗已全部完成,其中報錯較多,可以試着用重啓服務等方式進行調整,並注意是否是虛擬網卡的問題!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章