雙主模型的lvs-dr高可用負載均衡集群

雙主模型的lvs-dr高可用負載均衡集群

實驗目的:使用keepalived實現lvs-dr模型雙主高可用集群

實驗環境:兩臺virtual server(實現lvs的雙主)、兩臺real server(安裝web service,用于負載均衡)、一臺clietn用于驗證結果

注意:為了不影響實驗結果,在實驗開始前先關閉iptablesselinux

操作步驟:

一、配置IP

1.配置A主機的IP

# ip addr add dev eth0 192.168.10.2/24

2.配置B主機的IP

# ip addr add dev eth0 192.168.10.23/24

3.配置C主機的IP,修改內核參數和回環的IP

# ip addr add dev eth0 192.168.10.3/24

# 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

# ip addr add dev lo 192.168.10.200/32 label lo:0 broadcast 192.168.10.200

# ip addr add dev lo 192.168.10.201/32 label lo:1 broadcast 192.168.10.201

4.配置D主機的IP,修改內核參數和回環的IP

# ip addr add dev eth0 192.168.10.33/24

# 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

# ip addr add dev lo 192.168.10.200/32 label lo:0 broadcast 192.168.10.200

# ip addr add dev lo 192.168.10.201/32 label lo:1 broadcast 192.168.10.201

二、配置web
service
CD主機做同樣配置,默認主頁的內容中的IP地址改為D主機的IP即可)

1.安裝apache

# yum -y install httpd

2.創建默認主頁

# vim /var/www/html/index.html

    <h1>R1:192.168.10.3</h1>

3.啟動服務

# service httpd start

三、配置keepalived,實現雙主高可用

1.安裝keepalived

# yum -y install keepalived

2.編輯A主機的配置文件/etc/keepalived/keepalived.conf,作如下配置:

! Configuration File for keepalived

    global_defs {

    notification_email {

        root@localhost

    }

    notification_email_from keepalived@localhost

    smtp_server 127.0.0.1

    smtp_connect_timeout 30

    router_id centos6

    vrrp_mcast_group4 224.0.100.39

    }

    vrrp_instance lvs {

        state MASTER

        interface eth0

        virtual_router_id 14

        priority 100

        advert_int 1

        authentication {

            auth_type PASS

            auth_pass MDQ41fTp

        }

        virtual_ipaddress {

            192.168.10.200/24 dev eth0

        }

    }

    vrrp_instance lvs2 {

        state BACKUP

        interface eth0    

        virtual_router_id 15

        priority 98

        advert_int 1

        authentication {

            auth_type PASS

            auth_pass XYZ41fTp

        }

        virtual_ipaddress {

            192.168.10.201/24 dev eth0

        }

    }

    virtual_server 192.168.10.200 80 {

        delay_loop 6

        lb_algo rr

        lb_kind DR

        protocol TCP

        sorry_server 127.0.0.1 80

        real_server 192.168.10.3 80 {

        weight 1

        HTTP_GET {

            url {

                path /

                status_code 200

            }

            connect_timeout 1

            nb_get_retry 3

            delay_before_retry 1    

        }

    }

    real_server 192.168.10.33 80 {

        weight 1

        HTTP_GET {

            url {

                path /

                status_code 200

            }

                connect_timeout 1

                nb_get_retry 3

                delay_before_retry 1

            }

        }

    }

    virtual_server 192.168.10.201 80 {

        delay_loop 6

        lb_algo rr

        lb_kind DR

        protocol TCP

        sorry_server 127.0.0.1 80

        real_server 192.168.10.3 80 {

            weight 1

            HTTP_GET {

                url {

                    path /

                    status_code 200

                }

                connect_timeout 1

                nb_get_retry 3

                delay_before_retry 1

            }

    }

    real_server 192.168.10.33 80 {

        weight 1

        HTTP_GET {

            url {

                path /

                status_code 200

            }

                connect_timeout 1

                nb_get_retry 3

                delay_before_retry 1

            }

        }

   }

B主機也作同樣配置,稍作修改即可,需要修改的地方如下:

    vrrp_instance lvs {

        state BACKUP

        priority 98

    }

    vrrp_instance lvs2 {

        state MASTER

        priority 100

    }

四、配置sorry_server(在兩臺RS都不能正常提供服務且有用戶訪問時,sorry主機可顯示告知信息),sorry_server需要配置在virtual server(兩臺RS都做同樣配置,默認主頁中的IP地址改為本機的IP以示區分。)

1.安裝apache

# yum -y install httpd

2.創建默認主頁

# vim /var/www/html/index.html

<h1>sorry_server:192.168.10.2</h1>

3.啟動服務

# service httpd start

五、模擬故障,驗證結果(由于沒有配置路由,因此client主機并不能訪問,可在服務器網段中選擇任意一臺主機測試)

1.啟動兩臺VSkeepalived服務

# service keepalived start

2.查看生成的lvs規則,如圖有兩組規則

# ipvsadm -ln

雙主模型的lvs-dr高可用負載均衡集群

3.訪問192.168.10.200,結果應是后端的RS輪詢響應請求

雙主模型的lvs-dr高可用負載均衡集群

4.訪問192.168.10.201,結果應是后端的RS輪詢響應請求

雙主模型的lvs-dr高可用負載均衡集群

5.將后端RSweb服務關閉一臺,此時訪問192.168.10.200192.168.10.201,響應請求的將只是另一臺web服務正常運行的RS

雙主模型的lvs-dr高可用負載均衡集群

6.將后端RSweb服務都關閉,此時訪問192.168.10.200192.168.10.201,響應請求的將只是各自的主server中定義的sorry_server

雙主模型的lvs-dr高可用負載均衡集群

雙主模型的lvs-dr高可用負載均衡集群

7.關閉一臺VSkeepalived服務,此時訪問192.168.10.200192.168.10.201,響應的請求的將只是另一臺正常運行keepalived服務的VS

雙主模型的lvs-dr高可用負載均衡集群

原創文章,作者:人字拖,如若轉載,請注明出處:http://www.www58058.com/75455

(1)
人字拖人字拖
上一篇 2017-05-13 21:43
下一篇 2017-05-13 22:10

相關推薦

  • lvs-keepalived

    keepalived: vrrp協議:Virtual Redundant Routing Protocol        術語:        虛擬路由器:Virtual Router &n…

    Linux干貨 2017-05-13
  • 第三周博客作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@localhost ~]# who (unknown) :0           2016-12-15 2…

    Linux干貨 2016-12-20
  • 馬哥教育網絡班第21期+第三周課程作業

    1. 列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 who | awk  '{print $1}'|uniq 2.列出最后登錄到當前系統的用戶的相關信息 last | head -1   3. 讀取當前系統上被用戶當做其默認shell最多的那個shell cat /etc/pa…

    Linux干貨 2016-07-26
  • 馬哥教育網絡班21期+第三周課程練習

    列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登陸多次,只顯示一次即可。 ~]# who|cut -d" " -f1|sort -u 2  取出最后登錄當前系統的用戶的相關信息。    ~]# id `last|head&nbs…

    Linux干貨 2016-07-29
  • 如何學好C語言

    有人在酷殼的留言版上詢問下面的問題 keep_walker : 今天晚上我看到這篇文章。 http://programmers.stackexchange.com/questions/62502/small-c-projects 我也遇到了和提問的老外一樣的問題。。能給像遇到這樣煩惱的程序員一點建議嘛?謝謝! 我相信,這可能是很多朋友的問題,我以前…

    Linux干貨 2016-08-15
欧美性久久久久