結合keepalived實現lvs的高可用羣集故障自動轉移

wKioL1NYv73gECSrAAEb5uB9sDc275.jpg

直上幹活

dr1上keepalived的配置:

/etc/keepalived/keepalived.conf


global_defs {
                router_id LVS1          # 設置lvs的id,在一個網絡內應該是唯一的
}
vrrp_sync_group test {           #設置vrrp組
        group {
        loadbalance
        }
}
vrrp_instance loadbalance {
        state MASTER       #設置lvs的狀態,報錯MASTER和BACKUP兩種,必須大寫
        interface eth0     #設置對外服務的接口
        lvs_sync_daemon_inteface eth0   #設置lvs監聽的接口
        virtual_router_id 51                     #設置虛擬路由表示
        priority 180            #設置優先級,數值越大,優先級越高
        advert_int 1           #設置同步時間間隔
        authentication {                    #設置驗證類型和密碼
                auth_type PASS
                auth_pass 1111
                }
        virtual_ipaddress {
                192.168.56.200
        }
}
virtual_server 192.168.56.200 80 {
        delay_loop 6          #健康檢查時間間隔
        lb_algo rr               #負載均衡調度算法
        lb_kind DR            #負載均衡轉發規則
        #persistence_timeout 20  #設置會話保持時間,對bbs等很有用
        protocol TCP                #協議
        real_server 192.168.56.105 80 {
        weight 3                #設置權重
                TCP_CHECK {
                        connect_timeout 3
                        nb_get_retry 3
                        delay_before_retry 3
                        connect_port 80
                        }
                }
        real_server 192.168.56.106 80 {
                weight 3
                TCP_CHECK {
                        connect_timeout 3
                        nb_get_retry 3
                        delay_before_retry 3
                        connect_port 80
                }
        }
}


dr2上keepalived的配置

/etc/keepalived/keepalived.conf

global_defs {
        router_id LVS2
}
vrrp_sync_group test {
        group {
                loadbalance
        }
}
vrrp_instance loadbalance {
        state BACKUP
        interface eth0
        lvs_sync_daemon_inteface eth0
        virtual_router_id 51
        priority 150
        advert_int 1
        authentication {
                auth_type PASS
                        auth_pass 1111
                }
        virtual_ipaddress {
                192.168.56.200
        }
}
virtual_server 192.168.56.200 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        #persistence_timeout 20
        protocol TCP
        real_server 192.168.56.105 80 {
                weight 3
                TCP_CHECK {
                        connect_timeout 3
                        nb_get_retry 3
                        delay_before_retry 3
                        connect_port 80
                }
        }
        real_server 192.168.56.106 80 {
                weight 3
                TCP_CHECK {
                        connect_timeout 3
                        nb_get_retry 3
                        delay_before_retry 3
                        connect_port 80
                }
        }
}}



啓動dr1上的keepalived

keepalived -f /etc/keepalived/keepalived.conf

查看信息


wKiom1NYxvOCmHcMAAMoNVxBFyc582.jpg


然後啓動dr2上keepalived

keepalived -f /etc/keepalived/keepalived.conf

查看信息

wKiom1NYx8nhl4n1AAKaKoioS3c510.jpg



在realserver1與realserver2上分別執行下面的腳本

/home/lhb/sh/rs.sh


#!/bin/bash
vip=192.168.56.200
ifconfig lo:0 $vip netmask 255.255.255.255
route add -host $vip dev lo:0
route -n
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  #查看sysctl的配置變化,可不執行


wKiom1NYyDXTImz2AAHTkozDMno067.jpg



然後我們開一個客戶端方位vip:

wKioL1NYyHXA8U9yAAHUq-ZWgvc199.jpg


在dr1上執行ipvsadm -ln

wKioL1NYyNfy7pCqAAEA0Z0Mlx0814.jpg



然後我們在dr1上關閉keepalived

wKioL1NYydfA9cLFAAXOgO94ZwQ400.jpg


這是我們繼續訪問vip,訪問正常如圖所示:

wKiom1NYynOAM32jAAJeU8RHV4Q819.jpg


訪問正常,說明web業務沒有停止:

由此推斷我們的dr2已經開始接管業務了.然後到dr2上看一下信息:

wKiom1NYyzzws4yBAALlXvAOuwE270.jpg


說明故障發生時,業務服務已經自動從dr1轉移到dr2上了。

然後當我們的dr1修復好後,我們執行keepalived -f /etc/keepalived/keepalived.conf


wKioL1NYzDTz3s0PAANmoNF-YaQ951.jpg

此時訪問vip,業務仍然正常訪問.

回到dr2上看信息

wKioL1NYzLCgcPMsAAGgGIJqWv8612.jpg


到此爲止,keepalived實現lvs的故障在主備機自動切換已經展示完畢。



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