LVS+Keepalived高可用羣集

LVS+Keepalived高可用羣集

 

目錄

一部分  環境準備

第二部分  使用Keepalived搭建雙機熱備

三部分  配置Web節點服務器

四部分  測試LVS+Keepalived可用羣集

 

 

一部分  環境準備

調度器兩臺(雙機熱

    系統LinuxCentOS 7.4

IP址:192.168.80.10主)

IP址:192.168.80.20備)

二:Web服務器兩臺

    系統LinuxCentOS 7.4

IP址:192.168.80.30SERVER AA

IP址:192.168.80.40SERVER BB

 blob.png

三:客戶電腦一臺:以win7例,測試用

IP址:192.168.80.2

 

 

第二部分  使用Keepalived搭建雙機熱

一步:配置主調度器

[root@dd01 ~]# modprobe ip_vs      //加載ip_vs模塊

[root@dd01 ~]# rpm -ivh /mnt/Packages/ipvsadm-1.27-7.el7.x86_64.rpm    //安裝管理軟件ipvsadm

[root@dd01 ~]# yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel

//安裝編譯工具與插件

[root@dd01 ~]# tar xzvf keepalived-1.4.2.tar.gz      //解壓keepalived安裝

[root@dd01 ~]# cd keepalived-1.4.2/

[root@dd01 keepalived-1.4.2]# ./configure --prefix=/       //配置

[root@dd01 keepalived-1.4.2]# make && make install      //編譯與安裝

[root@dd01 keepalived-1.4.2]# cp keepalived/etc/init.d/keepalived /etc/init.d/     

//加入系統管理服務

[root@dd01 keepalived-1.4.2]# systemctl enable keepalived     //設置開機自啓

[root@dd01 keepalived-1.4.2]# vi /etc/keepalived/keepalived.conf    //編輯配置文件

! Configuration File for keepalived

global_defs {

   router_id LVS_01            //服務器的名稱

}

vrrp_instance VI_1 {            //定義VRRP熱備實例

    state MASTER             //熱備狀態,MASTER表示主服務器,BACKUP表示從服務器

    interface ens33            //承載VIP址的物理接口

    virtual_router_id 51        //虛擬路由器ID,每個熱備組保持

    priority 110               //優先級,數值越大優先越高

    advert_int 1               //通告間隔秒數心跳頻率)

    authentication {            //熱備認證信息,每個熱備組保持一致

        auth_type PASS        //認證類型

        auth_pass 6666        //密碼字符串

    }

    virtual_ipaddress {          //指定漂移地址(VIP,可以有多個

        192.168.80.100

    }

}

virtual_server 192.168.80.100 80 {      //虛擬服務器地址(VIP、端口

        delay_loop 6               //健康檢查的間隔時間(秒)

        lb_algo rr                  //詢(rr)調度算法

        lb_kind DR                 //直接路由(DR)羣集工作模式

        persistence_timeout 60       //連接保持時間(秒)

        protocol TCP                //應用服務器採用的是TCP協議

real_server 192.168.80.30 80 {         //一個Web服務器節點的地址、端口

        weight 1                   //節點的權重

        TCP_CHECK {                //健康檢查方式

        connect_port 80             //檢查的目標端口

        connect_timeout 3           //連接超時(秒)

        nb_get_retry 3              //試次數

        delay_before_retry 3          //試間隔

        }

}

real_server 192.168.80.40 80 {           //二個Web服務器節點的地址、端口

        weight 1

        TCP_CHECK {

             connect_port 80

             connect_timeout 3

             nb_get_retry 3

             delay_before_retry 3

     }

  }

}

保存退出

[root@dd01 keepalived-1.4.2]# service keepalived start

[root@dd01 keepalived-1.4.2]# ip addr show dev ens33    //驗證綁定了虛擬地址

blob.png

[root@dd01 keepalived-1.4.2]# ipvsadm –L        //查看LVS虛擬服務器

blob.png

[root@dd01 keepalived-1.4.2]# tail -f /var/log/messages

blob.png

 

 

第二步:配置從調度器

[root@dd02 ~]# modprobe ip_vs      //加載ip_vs模塊

[root@dd02 ~]# rpm -ivh /mnt/Packages/ipvsadm-1.27-7.el7.x86_64.rpm    //安裝管理軟件ipvsadm

[root@dd02 ~]# yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel

[root@dd02 ~]# tar xzvf keepalived-1.4.2.tar.gz

[root@dd02 ~]cd keepalived-1.4.2/

[root@dd02 keepalived-1.4.2]# ./configure --prefix=/

[root@dd02 keepalived-1.4.2]# make && make install

[root@dd02 keepalived-1.4.2]# cp keepalived/etc/init.d/keepalived /etc/init.d/

[root@dd02 keepalived-1.4.2]# systemctl enable keepalived

[root@dd02 keepalived-1.4.2]# vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

   router_id LVS_02

}

vrrp_instance VI_1 {

    state BACKUP

    interface ens33

    virtual_router_id 51

    priority 105

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 6666

    }

    virtual_ipaddress {

        192.168.80.100

    }

}

virtual_server 192.168.80.100 80 {

        delay_loop 6

        lb_algo rr

        lb_kind DR

        persistence_timeout 60

        protocol TCP

real_server 192.168.80.30 80 {

        weight 1

        TCP_CHECK {

        connect_port 80

        connect_timeout 3

        nb_get_retry 3

        delay_before_retry 3

        }

}

real_server 192.168.80.40 80 {

        weight 1

        TCP_CHECK {

             connect_port 80

             connect_timeout 3

             nb_get_retry 3

             delay_before_retry 3

     }

  }

}

保存退出

[root@dd02 keepalived-1.4.2]# service keepalived start

[root@dd02 keepalived-1.4.2]# ipvsadm –L       

blob.png

 

三步:驗證結果

1. dd01主服務器keepalived服務開啓狀態,驗證dd02從服務器狀態

[root@dd02 keepalived-1.4.2]# ip addr show dev ens33    

blob.png

[root@dd02 keepalived-1.4.2]# tail -f /var/log/messages

blob.png

blob.png

 

//機狀態

2. 模擬主服務器故障dd01服務器keepalived服務關閉,驗證dd02服務器狀態

[root@dd01 keepalived-1.4.2]# systemctl stop keepalived

blob.png

//自己切換到主機狀態

blob.png

//熱備搭建完成

 

 

第三部分  配置Web節點服務器

一步:配置SERVER AA服務192.168.80.30

1. 配置http服務

//安裝http服務

[root@aa ~]# yum install -y httpd

//編輯主配置文件

[root@aa ~]# vi /etc/httpd/conf/httpd.conf

ServerName aa       //“#”去掉,修改主機名

保存退出

//配置默認顯示網頁

[root@aa ~]# cd /var/www/html/

[root@aa html]# echo "<h1>SERVER AA</h1>" > index.html

blob.png

[root@aa html]# service httpd start       //重啓http服務

//win7驗證http服務

訪問http://192.168.80.30

blob.png

2. 配置DR模式

[root@aa ~]# vi web.sh

#!/bin/bash

#haha

ifconfig lo:0 192.168.80.100 broadcast 192.168.80.100 netmask 255.255.255.255 up

route add -host 192.168.80.100 dev lo:0

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

sysctl -p &>/dev/null

保存退出

[root@aa ~]# sh web.sh     //執行腳本

[root@aa ~]# ifconfig       //查看虛擬接口

blob.png

 

二步:配置SERVER BB服務器192.168.80.40

1. 配置http服務

//安裝http服務

[root@bb ~]# yum install -y httpd

//編輯主配置文件

[root@bb ~]# vi /etc/httpd/conf/httpd.conf

ServerName bb       //“#”去掉,修改主機名

保存退出

//配置默認顯示網頁

[root@bb ~]# cd /var/www/html/

[root@bb html]# echo "<h1>SERVER BB</h1>" > index.html

blob.png

[root@bb html]# service httpd start      //重啓http服務

//win7驗證http服務

訪問http://192.168.80.40

blob.png 

----------配置DR模式---------

[root@bb ~]# vi web.sh

#!/bin/bash

#hehe

ifconfig lo:0 192.168.80.100 broadcast 192.168.80.100 netmask 255.255.255.255 up

route add -host 192.168.80.100 dev lo:0

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

sysctl -p &>/dev/null

保存退出

[root@bb ~]# sh web.sh      //執行腳本

[root@bb ~]# ifconfig        //查看接口

blob.png

 

 

第四部分  測試LVS+Keepalived可用羣集

在客戶端的瀏覽器中,能夠通過LVS+Keepalived羣集的漂移地址(192.168.80.100)正常訪問web頁面內容,則驗證羣集構建成功。

1. 驗證兩臺Web服務器輪詢工作

Win7訪問http://192.168.80.100

blob.png

//由於設置了連接保持時間爲60,一分鐘後重新訪問該地址

 blob.png

//自動輪詢交給一臺Web服務

 

2. 模擬主調度器故障驗證結果

[root@dd01 keepalived-1.4.2]# systemctl stop keepalived

//主調度器keepalived停止工作

 blob.png

//從調度器自動切換繼續工作

blob.png

 

//win7訪問http://192.168.80.100查看結果

 blob.png

//分鐘後,重新訪問http://192.168.80.100查看結果

 blob.png

//雙機熱備已經作用

 

3. 模擬Web服務aa故障

[root@bb ~]# service httpd stop     //bb服務器停止工作

[root@dd01 keepalived-1.4.2]# tail -f /var/log/messages

 blob.png

訪問http://192.168.80.40

blob.png

分鐘後,重新訪問http://192.168.80.40

 blob.png

//法訪問,驗證成功

[root@bb ~]# service httpd start    //恢復啓動bb服務

//查看調度器日誌

 blob.png

//成功將bb服務器加入到服務器池

 

//LVS+Keepalived成功搭建測試完成


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