LVS+Keepalived

 Lvs+keepalived能實現的功能: 利用lvs控制器主備模式避免單點故障以及自動刪除故障WEB服務器結點並當它恢復後再自動添加到羣集中。

 

拓撲圖:

 

IP規劃:

 

 

1、在LVS SRV上安裝lvskeepalived軟件(LVS-MASTER & LVS-BACKUP
lvs install--------------------------------

[root@LVS-MASTER ~]# wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz

[root@LVS-MASTER ~]# ln -s /usr/src/kernels/2.6.18-238.el5-i686/ /usr/src/linux/

[root@LVS-MASTER ~]# tar zxvf ipvsadm-1.24.tar.gz

[root@LVS-MASTER ~]# cd ipvsadm-1.24

[root@LVS-MASTER ipvsadm-1.24]# make && make install

Keepalived install------------------------------------

[root@LVS-MASTER ~]# wget http://www.keepalived.org/software/keepalived-1.1.15.tar.gz

[root@LVS-MASTER ~]# tar zxvf keepalived-1.1.15.tar.gz

[root@LVS-MASTER ~]# cd keepalived-1.1.15

[root@LVS-MASTER keepalived-1.1.15]# ./configure && make && make install

######### keepalived做成啓動服務,方便管理 ##########

[root@LVS-MASTER ~]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/

[root@LVS-MASTER ~]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

[root@LVS-MASTER ~]# mkdir /etc/keepalived/

[root@LVS-MASTER ~]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

[root@LVS-MASTER ~]# cp /usr/local/sbin/keepalived /usr/sbin/

[root@LVS-MASTER ~]# service keepalived start | stop

 

2keepalived的配置

============================================================================

###################              MASTER             ######################

============================================================================

! Configuration File for keepalived

global_defs {

   notification_email {

        [email protected]

   }

   notification_email_from [email protected]

   smtp_server 127.0.0.1

   router_id LVS_DEVEL

}

vrrp_instance VI_1 {

    state MASTER

    interface eth0

    virtual_router_id 51

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        172.16.201.188

    }

}

virtual_server 172.16.201.188 80 {

    delay_loop 6

    lb_algo rr

    lb_kind DR

    persistence_timeout 50

    protocol TCP

    real_server 172.16.201.211 80 {

        weight 3

        TCP_CHECK {

        connect_timeout 10

        nb_get_retry 3

        delay_before_retry 3

        connect_port 80

        }

    }

    real_server 172.16.201.212 80 {

        weight 3

        TCP_CHECK {

        connect_timeout 10

        nb_get_retry 3

        delay_before_retry 3

        connect_port 80

        }

    }

}

============================================================================

#########################            BACKUP          ######################

============================================================================

! Configuration File for keepalived

global_defs {

   notification_email {

        [email protected]

   }

   notification_email_from [email protected]

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}

vrrp_instance VI_1 {

    state BACKUP

    interface eth0

    virtual_router_id 51

    priority 99

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        172.16.201.188

    }

}

virtual_server 172.16.201.188 80 {

    delay_loop 6

    lb_algo rr

    lb_kind DR

    nat_mask 255.255.255.0

    persistence_timeout 50

    protocol TCP

 

    real_server 172.16.201.211 80 {

        weight 3

        TCP_CHECK {

        connect_timeout 10

        nb_get_retry 3

        delay_before_retry 3

        connect_port 80

        }

    }

    real_server 172.16.201.212 80 {

        weight 3

        TCP_CHECK {

        connect_timeout 10

        nb_get_retry 3

        delay_before_retry 3

        connect_port 80

        }

    }

}

3、在realserver SRV上執行realserver.sh腳本,爲lo:0綁定VIP地址172.16.201.188、抑制ARP廣播。

 

 

4、分別在LVS-MASTERLVS-BACKUP SRV上執行service keepalived start啓動keepalived就可實現負載均衡及高可用集羣了;

[root@LVS-MASTER ~]# service keepalived start

 

日誌信息:

 

 

 

――――――――――――――高可用性測試―――――――――――――――

(爲了模擬故障,將LVS-MASTER上的keepalived服務停掉,然後觀察LVS-BACKUP SRV上的日誌,信息如下

    (從日誌中可知,主機出現故障後,備機立刻檢測到,此時備機變爲MASTER角色,並且接管了主機的虛擬IP資源,最後將虛擬IP綁定在etho設備上。)

 

LVSMASTER 上的keepalived服務開啓後,LVS-BACKUP的日誌狀態。

 

 (從日誌可知,備機在檢測到主機重新恢復正常後,釋放了虛擬IP資源重新成爲BACKUP角色)

 

―――――――――――――故障切換測試――――――――――――――――――――

----故障切換是測試當某個節點出現故障後,Keepalived監製模塊是否能及時發現然後屏蔽故障節點,同時將服務器轉移到正常節點來執行。

REAL-SERVER2節點服務停掉,假設這個節點出現故障,然後主、備機日誌信息如下…….

 

 

 (從以上可以看出,Keepalived監控模塊檢測到172.16.201.212這臺主機出現故障後,將些節點2從集羣系統中剔除掉了。 此時訪問http://172.16.201.188 只能看到“This is realserver1 !!!”)

 

 

重新啓動REAL-SERVER2節點的服務,日誌信息如下:

 

Keepalived監控模塊檢測到172.16.201.212這臺主機恢復正常後,又將此節點加入集羣系統中,再次訪問就可以訪問到“This is realserver2 !!!”頁面了, 嘿嘿……..

 

 

 

 

 

 

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