配置LVS + Keepalived高可用負載均衡集羣

1、理論篇:html


  1. LVS簡介:前端

官網 http://www.linuxvirtualserver.orgnode

LVS 是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集羣系統。本項目在1998年5月由章文嵩博士成立,是中國國內最先出現的自由軟件項 目之一。章文嵩博士目前工做於阿里集團,主要從事集羣技術、操做系統、對象存儲與數據庫的研究。(摘自《BAIDU百科》)linux


2. LVS集羣的組成:c++

LVS服務器系統由三部分組成:算法

1)負載均衡層:shell

位於整個集羣系統的最前端,避免單點故障通常最少由2臺或2臺以上負載調度器組成。數據庫


2)服務器羣組層:vim

是 一組真正運行應用服務器的機器組成,Real Server能夠是Web、FTP、DNS、Mail 、視頻等服務器中的一個或N個,每一個Real Server之間經過高速的LAN/WAN相鏈接。爲了節省寶貴的資源,在生產環境中,Director Server同時身兼Real Server的角色!windows


3)共享存儲層:

爲Real Server提供共享存儲空間和內容一致性的存儲區域。能夠爲磁盤陣列、Red Hat的GFS文件系統、Oracle的OCFS2文件系統等。

Director Server是整個LVS的核心!到目前爲止,Director server只能安裝在Linux、FreeBSD上,若是Linux內核是2.6及以上時,則已經內置了LVS的各個模塊,不用做任何的設置就支持LVS功能。

Real Server服務器幾乎爲全部有系統平臺,如:Windows、Linux、Solaris、AIX、BSD等系統平臺。


3. LVS集羣的特色:

(1) IP負載均衡和負載調度算法;

(2) 高可用性;

(3) 高可靠性;

(4) 適用環境;

(5) 開源軟件。


4. LVS集羣系統的優缺點:

LVS集羣系統的優勢:

(1) 抗負載能力強

工做在第4層僅做分發之用,沒有流量的產生,這個特色也決定了它在負載均衡軟件裏的性能最強的;無流量,同時保證了均衡器I/O的性能不會受到大流量的影響;

(2) 工做穩定

自身有完整的雙機熱備方案,如LVS+Keepalived和LVS+Heartbeat;    

(3) 應用範圍比較廣

能夠對全部應用作負載均衡;    

(4) 配置性比較低

既是優勢,也是缺點,由於沒有太多配置,因此並不須要太多接觸,大大減小了人爲出錯的概率;    


LVS集羣系統的缺點:

(1) 軟件自己不支持正則處理,不能作動靜分離,這就凸顯了Nginx/HAProxy+Keepalived的優點。     

(2) 若是網站應用比較龐大,LVS/DR+Keepalived就比較複雜了,特別是後面有Windows Server應用的機器,

實施及配置還有維護過程就比較麻煩,相對而言,Nginx/HAProxy+Keepalived就簡單多了。

集羣根據業務目標而分爲如下幾種:

(1) High Availability (高可用): 目的是保持業務的持續性。

(2) Load Balancing(負載均衡): 將請求一個個分擔到不一樣一計算機上去,每臺計算機獨立完成一個用戶的請求的。

(3) High Performance (高性能): 須要一組計算機共同完成一件事情。


5. 實現集羣產品:

*HA

(1)RHCS: 企業內用得比較多

(2)heartbeat:

(3)keepalived:


(*)黃金組合: LVS + Keepalived (重點)

*LB(負載均衡)

(1)HAProxy;

(2)LVS;

(3)Nginx;

(4)硬件F5;

(5)Piranha :紅帽光盤自帶的,但在Linux 6.0中又去掉了


*HPC


6. LVS負載均衡技術:

(1)LVS-DR模式(Direct routing):直接路由模式。用得最多!能夠跟100個以上Real Server

(2)LVS-NAT模式(Network Address Translaton): 只能跟3~5個Real Server;

(3)LVS-TUN模式(IP Tunneling): 應用於遠程,尤爲是外網等


7. LVS-NAT特性:

(1)Real Server必須與Director在同一網絡,僅用於與Director服務器通信;

(2)Director接收全部的數據包通信(包括客戶端與Director、Director和real server直接的通信);

(3)Real Server的默認網關指向Director的真實IP地址;

(4)Director支持端口映射,能夠將客戶端的請求映射到Real Server的另外一個端口;(與DR模式的區別)

(5)支持任意操做系統; 如:Windows、Linux、FreeBSD、AIX等

(6)單一的Director是整個集羣的瓶頸(故通常都是2臺或2臺以上的Director機器)


8. LVS負載均衡的調度算法(靜態)

(1)輪循調度(Round Robin)(rr)(最笨的調度算法)

調度器經過「輪循」調度算法將外部請求按順序輪流分配到集羣中的Real Server上,均等每一臺Server,而無論Server上實際的鏈接和系統負載。

(2)加權輪循(Weighted Round Robin)(wrr)

調度器經過」加權輪循」調度算法根據真實服務器的不一樣處理能力來調訪問請求。如此保證處理能力強的服務器能處理更多的訪問流量。調度器能夠自動問詢真實服務器的負載狀況,並動態地調整其權值。

(3)目標地址散列(Destination Hashing)(DH)(有緩存,目標不變,則不變)

它的調度算法根據請求的目標IP地址,做爲散列(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,則將請求發送到該服務器,不然返回空。

(4)源地址散列(Source Hashing)(SH) (有緩存,源不變,則不變)

是根據請求的源IP地址,做爲散列鍵(Hash key)從靜態分配的散列表找出對應的服務器,若該 服務器是可用的且未超載,將請求發送到該服務器,不然返回空。


9. LVS負載均衡的調度算法(動態)

(5)最少連接(Least Connections)(LC)

調度器經過」最少鏈接」調度算法動態地將網絡請求調度到已創建的連接數最少的服務器上。若集羣系統的真實服務器具備相近的系統性能,採用「最少鏈接」調度算法能夠較好地均衡負載。

公式:LC = 活動鏈接數*256 + 非活動鏈接數


例如:


配置LVS + Keepalived高可用負載均衡集羣之圖文教程

(6)加權最少連接(Weighted Least Connections)(WLC) 注:目前最優秀的調度算法!

適應:在集羣系統中的服務器性能差別較大的狀況下,調度器採用」加權最少連接」調算法優化負載均衡性能。具備較高權值的服務器將承受較大比例的活動鏈接負載。調度器能夠自動問詢真實服務器的負載狀況,並動態地調整其權值。


例如:在上表加入Real Server1權值 爲3,Real Server2權值爲1時,則

公式:WLC = (活動鏈接數*256 + 非活動鏈接數)/權重

(7)最短的指望的延時(Shortest Expected Delay)(SED)

sed只是在WLC上作了些微調而已。只計算活動鏈接數!

公式:LC = (活動鏈接數+1)*256 ÷權重

(8)最少隊列調度(Never Queue Scheduling)(NQS)

無需隊列。若Real Server的鏈接數=0,就直接分配過去,不須要再進行sed運算。只計算活動鏈接數!

(9)基於局部性的最少鏈接(Locality-Based Least Connections)(LBLC)

它 的調度算法針對目標IP地址的負載均衡,目前主要用於Cache集羣系統。該算法根據請求的目標IP地址找出該目標IP地址最近使用的服務器,若該服務器 是可用的且沒有超載,將請求發送到該服務器;若服務器不存在,或者該服務器超載且有服務器處於一半的工做負載,則用「最少鏈接」的原則選出一個可用的服務 器,將請求發送到該服務器。(HD動態算法)

(10)帶複製的基於局部最少連接(Locality-Based Leat Connections Witch Replication)(LBLCR)

此 調算法也是針對目標IP地址的負載均衡,目前主要用於Cache集羣系統。它與LBLC算法的不一樣之處是它要維護從一個目標IP地址到一組服務器的映射, 而LBLC算法維護從一個目標IP地址到一臺服務器的映射。該算法根據請求的目標IP地址找出該目標IP地址對應的服務器組,按「最小鏈接」原則從服務器 組中選出一臺服務器,若服務器沒有超載,將請求發送到該服務器,若服務器超載,則按「按最少鏈接」原則從這個集羣中選出一臺服務器,將該服務器加入到服務 器組中,將請求發送到該服務器。同時,當該服務器組有一段時間沒有被修改,將最忙的服務器從服務器組中刪除,以下降複製的程度。


keepalived 的介紹 

官網 http://www.keepalived.org

1  keepalived是lvs 的擴展項目,所以keepalived 和lvs 之間具有良好的兼容性

2  keepalived經過對服務器池中的對象進行健康檢查,同時實現了對失效機器和服務的故障隔離,並把其從服務池中刪除(固然咱們在 keepalived 的主配置文件中一樣可以定義讓其不刪除,而是把其的權重設置成0)若是失效的機器或者服務,正常恢復時,keepalived 可以自動把其加入服務池。

3  keepalived 經過VRRPv2虛擬路由協議(Virtual Router Redundancy Protocol實現了負載均衡之間的失敗切換

4  keepalived是一個高度模塊化設計的軟件,並且keepalived 工做TCP/IP  3,4,5層。 

keepalived 體系架構 以下圖

wKiom1gVXdOhr-cVAAGB8zyBLUM696.jpg

一、keepalvied總體上分爲用戶空間和內核空間. 

二、處於下端的內核空間,包含ipvs 和NETLINKK ,LVS 的縮寫LINUX  Virture Service 的縮寫,是一個虛擬的服務器集羣系統。netlink 提供高級路由及其餘相關的網絡服務器功能

三、watchdog 是負責監控checkers和VRRP進程

四、Checkers 是負責真實服務器的健康檢查healthchecking,是keepalived的最重要的功能

五、VRRP starck 負責負載均衡器之間的失敗切換FailOver

六、IPVS wrapper 用來發送設定的規則到內核IPVS 代碼

七、Netlink Reflector用來設定Vrrp的虛擬地址VIP

八、keepalived 採用的是多進程的設計模式,每一個進程負責不一樣的功能


2、實戰篇:

負載均衡系統能夠選用LVS方案,而爲避免Director Server單點故障引發系統崩潰,咱們能夠選用LVS+Keepalived組合保證高可用性。

重點:每一個節點時間都同步哈!

ntpdate time.windows.com && hwclock -w 


一、環境簡介:

1)虛擬機:VMware ESXi 5.5 (CentOS 6.4 x86-64安裝在其中,最小化安裝)

2)操做系統: CentOS 6.5 x86-64

3)Keepalived版本:keepalived-1.2.9   (1.2.13也一樣適用)

4)IPVS管理工具IPVSadm-1.26

5) Linux/Unix工具Xmanager 4.0 (Xshell)


wKioL1gVXgSQw77cAADBEAY8gvM077.jpg

wKiom1gVXg×××46pAAKYaKx1TNQ517.jpg


二、禁掉防火牆和Selinux

(1) 禁掉防火牆

service iptables stop; chkconfig iptables off

若是開啓防火牆則須要開放 vrrp協議

iptables -A INPUT -p vrrp  -j ACCEPT

iptables -A OUTPUT -p vrrp  -j ACCEPT


cat /etc/sysconfig/iptables

-A INPUT -p vrrp -j ACCEPT

-A OUTPUT -p vrrp -j ACCEPT


(2) 禁掉Selinux

vim /etc/selinux/config   ;# 設置 SELINUX=disabled  

setenforce 0              ;# 臨時關閉 selinux

因爲都是最小化安裝建議每臺都安裝些基本軟件

yum install -y bind-utils traceroute wget man sudo ntp ntpdate screen patch make gcc gcc-c++ flex bison zip unzip ftp --skip-broken


重點: DR二、Real Server1和Real Server2以下圖所述完成!

wKioL1gVXq7hrGY7AACi2SZ1ZpE720.jpg

三、檢查DR1與DR2的連通性:

//在DR1上分別ping DR2的public IP和private IP

//在DR2上分別ping DR1的public IP和private IP


四、安裝LVS軟件:(分別在DR1和DR2中)

LVS軟件包括二部分:

① IPVS模塊,LVS已是Linux標準內核的一部分,直接被編譯在內核中!

② IPVS管理工具IPVSadm ,如:IPVSadm-1.26

1)檢查是否安裝了IPVS模塊: 注:LVS已是Linux標準內核的一部分,直接被編譯在內核中!

方法1: 查看IPVS模塊是否真的編譯到內核中去了,以下圖所示:

wKioL1gVXs-QmF5LAABVc3t-f8I584.jpg

由上可知,有3個項,說明這個功能已經編譯到內核中了!

方法2: 使用modprobe命令查看,以下圖所示:

wKiom1gVXuzx0i-FAAC2_biykbU681.jpg

由上可知,明顯安裝了支持LVS的IPVS模塊!

也可用  lsmod  |grep ip_vs  查看

2)在DR1上安裝IPVS管理軟件:

方法1:源碼安裝

make; make install
//make時,出現以下所示:

wKiom1gVXziBPSWrAAB98oN_Ky8590.jpg

wKioL1gVXzizBOKJAAB9NEYyblY407.jpg

wKiom1gVXznC4sAbAAA-Sy8mpkY442.jpg


解決方法:
yum -y install popt popt-devel libnl libnl-devel popt-static



方法2: yum安裝

yum -y install ipvsadm
//檢查ipvsadm安裝是否成功:
ipvsadm --help
若是顯示了ipvsadm的各類用法,則說明ipvsadm安裝成功了!


五、安裝Keepalived (分別在DR1和DR2中)

用源碼包安裝,在編譯安裝時可能報錯, 解決方法 (一 ) 能夠選擇編譯內核,(二)作一個內核鏈接文件

yum -y  kernel-devel openssl openssl-devel gcc gcc-c++ popt popt-devel libnl libnl-devel popt-static

kernelpath=`uname -r`
ln -s /usr/src/kernels/$kernelpath usr/src/linux


[root@DR1 src]# cd keepalived-1.2.9 
[root@DR1 keepalived-1.2.9]#./configure --prefix=/usr/local/keepalived \

> --with-kernel-dir=/usr/src/kernels/$kernelpath 

重點: 確保下面3行是 yes !以下圖所示:

wKioL1gVaavCfzxYAADTIpImNkM723.jpg

編譯安裝

make; make install

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d  

cp /usr/local/keepalived/etc/sysconfig/keepalived /usr/local/keepalived/etc/sysconfig/keepalived_bak 

ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ 

cp /usr/local/keepalived/etc/keepalived/keepalived.conf /usr/local/keepalived/etc/keepalived/keepalived.conf_bak

mkdir /etc/keepalived

ln -s /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived

chkconfig keepalived on 


CentOS 7

/usr/lib/systemd/system/keepalived.service

###

[Unit]

Description=LVS and VRRP High Availability Monitor

After=syslog.target network.target


[Service]

Type=forking

KillMode=process

EnvironmentFile=-/etc/sysconfig/keepalived

ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS

ExecReload=/bin/kill -HUP $MAINPID


[Install]

WantedBy=multi-user.target

###


//添加 keepalived 二進制可執行文件到系統變量中,作個軟連接

[root@DR1 keepalived-1.2.9]# ln -s /usr/local/sbin/keepalived /sbin/

//檢驗安裝是否成功:輸入

keepalived --help

若是顯示了Keepalived的各類用法,則說明Keepalived安裝成功了!


六、配置keepalived

(1)在DR1上配置keepalived:

配置文件都是以塊的形式組織的,每一個模塊的配置都須要用 {  } 的範圍以內

在keepalived 的主配置文件中主要分爲三個文本模塊分別是:  

全局模塊(Global Configuration),VRRPD配置模塊(VRRP 實例模塊),LVS模塊(虛擬服務模塊);

 一、全局配置(Global Configuration)包括兩個部分:即全局定義(global definition)和靜態地址路由(Static ipaddress /routes)

 二、VRRPD 配置包括三個部分: 分別是VRRP腳本(VRRP scripts)   . VRRP同步組(syncgriuzation group) 和VRRP 實例(VRRP Instance

 三、LVS  配置一樣也是包括兩個部分:虛擬主機組(Virtual server group ) 和虛擬主機(virtual server)


//手工建立keepalived.conf文件(vim /etc/keepalived/keepalived.conf)

! Configuration File for keepalived  

global_defs {  

   notification_email {  

     acassen@firewall.loc   #設置報警郵件地址,能夠設置多個,每行1個,  

     failover@firewall.loc  #需開啓郵件報警及本機的Sendmail服務。  

     sysadmin@firewall.loc  

   }  

   notification_email_from Alexandre.Cassen@firewall.loc  

   smtp_server 192.168.200.1  #設置SMTP Server地址;  

   smtp_connect_timeout 30  

   router_id LVS_DEVEL  

}  

           ########VRRP Instance########  

vrrp_instance VI_1 {  

    state MASTER    #指定Keepalived的角色,MASTER爲主機服務器,BACKUP爲備用服務器  

    interface eth0  #實例綁定的網卡

    lvs_sync_daemon_interface eth0  #注:負載均衡器之間監聽的接口,和Heartbeat 的心跳線相似,可是不會出現腦裂問題,該處與服務接口interface 使用同一網絡接口

    virtual_router_id 51  #注VRID 標記(0…255)該處必定要與BACKUP 的相同

    priority 100    #定義優先級,數字越大,優先級越高,主DR必須大於備用DR。  

    advert_int 1    #同步通知間隔 MASTER與BACKUP 負載均衡器之間的同步檢查時間間隔單位秒
    #sorry_server 127.0.0.1 80  # 注: 備用機,全部的real server 失效後啓用,若是設置的是本地機器,一樣也須要在本機上進行arp隱藏

    authentication {  

        auth_type PASS  #設置驗證類型,主要有PASS和AH兩種  

        auth_pass 1111  #設置驗證密碼  

    }  

    virtual_ipaddress {  

        192.168.1.200  #設置主DR的虛擬IP地址(virtual IP),可多設,但必須每行1個  

    }  

}  

           ########Virtual Server########  

virtual_server 192.168.1.200 80 {  #注意IP地址與端口號之間用空格隔開  

    delay_loop 6        #設置健康檢查時間,單位是秒  

    lb_algo rr          #設置負載調度算法,默認爲rr,即輪詢算法,最優秀是wlc算法  

    lb_kind DR          #設置LVS實現LB機制,有NAT、TUNN和DR三個模式可選  

    nat_mask 255.255.255.0  

    persistence_timeout 50  #會話保持時間,單位爲秒  

    protocol TCP        #指定轉發協議類型,有TCP和UDP兩種  

    real_server 192.168.1.132 80 {  

        weight 1          #配置節點權值,數字越大權值越高  

        TCP_CHECK {    #

            connect_timeout 3     #表示3秒無響應,則超時  

            nb_get_retry 3        #表示重試次數  

            delay_before_retry 3  #表示重試間隔  

        }  

    }  

    real_server 192.168.1.133 80 {  #配置服務器節點,即Real Server2的public IP  

        weight 3            #配置節點權值,數字越大權值越高  

        TCP_CHECK {  #擬主機健康監查方式:HTTP_GET|SSL_GET|TCP_CHECK|SMTP-CHECK|MISC_CHECK

            connect_timeout 3       #表示3秒無響應,則超時  

            nb_get_retry 3          #表示重試次數  

            delay_before_retry 3    #表示重試間隔  

        }  

    }  

}  


//啓動keepalived、設置keepalived服務自動啓動、檢查是否生效,以下圖所示:

wKiom1gVadrhTKWaAACiLhMeWDw433.jpg


(2)在DR2上配置keepalived:

先將上面記事本中的keepalived.conf配置文件,僅僅修改2處,以下圖所示:

No.1處:把「stateMASTER」修改成「stateBACKUP」 #即備用服務器;

No.2處:把「priority 100」修改成「priority 90」 #優先級爲90。

修改好後,複製到DR2的/etc/keepalived/keepalived.conf中,保存便可!

//啓動keepalived、設置keepalived服務自動啓動、檢查是否生效,以下圖所示:

wKiom1gVagGTEtvHAACkv8lYz-Y994.jpg


七、配置Real Server節點:

1)yum –y install httpd

2)啓動httpd服務時,出錯:

wKioL1gVaiShHv_ZAACftojCwWU988.jpg

//vim /etc/httpd/conf/httpd.conf中,依以下操做:

#265 ServerName www.example.com:80 //去掉前面的#號便可!


3)在RealServer1和RealServer2上的腳本 realserver.sh ,在每臺真實服務器上添加虛擬IP地址(以即可接收LVS轉發過來的包,因其轉發過來的包目標IP爲VIP)並設置arp 隱藏(原理見http://zh.linuxvirtualserver.org/node/2585 http://hi.baidu.com/hanxiao2100/item/874fc4fec95363c1a935a214

vi /etc/init.d/realserver.sh

#!/bin/bash
#
# Add for chkconfig
# chkconfig: 2345 70 30
# description: RealServer's script
# processname: realserver.sh

VIP=192.168.1.200

# Source function library.
. /etc/init.d/functions


case "$1" in
start)
       ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
       /sbin/route add -host $VIP 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
       echo "RealServer Start OK"
       ;;

stop)
       ifconfig lo:0 down
       route del $VIP >/dev/null 2>&1
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
       echo "RealServer Stoped"
       ;;
       *)
       echo "Usage: $0 {start|stop}"

       exit 1
esac
exit 0

##################################################

//爲realserver.sh添加權限,並設置隨機啓動  chkconfig realserver.sh on

wKioL1gVao3gg0toAACtXbba6U4996.jpg

wKiom1gVatGQUKrXAABuafpojlc641.jpg

wKioL1gVavOCgUH5AADiaZLK_2Y857.jpg

wKiom1gVayiBdtG5AADKkhw6cRo227.jpg


八、啓動keepalived + LVS集羣系統:

wKioL1gVa2rT3pX7AAB6fqS78Tg740.jpg

wKiom1gVa2uCk4ahAAESF4RUHTY081.jpg



九、測試分爲三個部分:

啓動keepalived + LVS集羣系統:

1)高可用×××測試:

高可用性是經過LVS的兩個DR1和DR2完成的。爲了模擬故障,先將DR1上的Keepalived服務中止或者乾脆關掉節點DR1,而後觀察備用DR2上Keepalived是否得到虛擬IP地址,即VIP 192.168.1.200

//在DR1查看哈,信息以下圖所示:

wKiom1gVbBTz3ENuAAD7JAHy10s864.jpg

由上可知,虛擬IP地址在DR1節點上,即VIP 192.168.1.200


//在DR2查看哈,信息以下圖所示:

wKioL1gVbDDQrTz4AADCSIBQCAQ214.jpg


方法1:命令檢驗法

使用命令ipvsadm –Ln和ip addr list/show查看虛擬IP漂移狀況來判斷。

//關閉DR1,模擬宕機,以下圖所示:

wKioL1gVbE6BmWHJAAGd4JGo_zo405.jpg

由上圖可知,DR1確實宕機了,而DR2獲得了虛擬IP地址(上圖紅框中的192.168.1.200)

且訪問依然正常,再次證實了高可用性,以下圖所示:

wKiom1gVbHbDA6RwAACvpQH-Rl8839.jpg


方法2:查看日誌法

//關閉DR1/中止DR1的keepalived服務,模擬宕機,在DR2中查看日誌,以下圖日誌所示:

wKioL1gVbKORzSqcAAHo9emRjBg816.jpg

//再查看DR2是否馬上檢測到DR1出現故障,確實很是快就檢測到DR1的故障,並立刻接管主機的虛擬IP地址(192.168.1.200),注意觀察上圖和下圖!

wKiom1gVbM-BUnZVAAHoGpM42Y8889.jpg


2)負載均衡測試:

爲了便於測試,咱們在Real Server1和Real Server2分別配置www服務的網頁且內容也好識別,以下圖所示:

方法1:客戶端瀏覽器中測試

wKiom1gVbPWwhz15AAC7BlCvHkE203.jpg

由上可知,咱們在VMWare中的XP操做系統和物理機器win 7的瀏覽器中分別輸入http://192.168.1.200且不斷地刷新之均可訪問!


方法2:用壓力測試法

[root@CentOS6 ~]# ab –c 100 –n 10000 http://192.168.1.200/index.html


3)故障切換測試

故障切換是測試在某個節點出現故障後,keepalived監控模塊可否及時發現,而後屏蔽故障節點,同時將服務轉移到正常節點上執行之。

停掉節點Real Server2服務,模擬該節點出現故障,而後查查看主、備機器日誌信息:

方法1:查看主、備機器日誌信息

//先停掉節點Real Server2的httpd服務,以下圖所示:

wKiom1gVbRPheP1uAAB7M7Id9y4032.jpg

//再查看DR1上的日誌,以下圖所示:

wKioL1gVbTWiM4F4AAHXKSQ8PrE101.jpg

//再查看DR2上的日誌,以下圖所示:

wKioL1gVbVTSoVVdAAHXSgAfoMk354.jpg

由上可知,故障切換測試成功!

方法2:客戶端瀏覽器中測試

wKiom1gVbXjgE_-RAACiVOr8sWw615.jpg

不斷刷新網頁一直就顯示如上圖所示:Real Server1內容!可見故障切換成功!


3、windows realserver ARP抑制設置

1、Windows 2008

  1. 添加 Microsoft loopback Adapter網絡適配器

    控制面板——設備管理器——右擊計算機名——添加過期硬件——歡迎使用硬件添加嚮導(也可使用命令 hdwwiz.exe直接打開——安裝我手動從列表選擇的硬件(高級) - 網絡適配器——廠商選擇Microsoft,網絡適配器選擇Microsoft LoopbackAdapter,下一步安裝便可

     

  2. 設置VIP

    在控制面板的網絡鏈接中,把新添加的 Loopbakck適配器重命名爲 Loopback

    設置該網卡IP 虛擬IP,子網掩碼爲255.255.255.255

     

  3. 設置ARP抑制

    CMD命令行中執行以下命令

    @echo off

    netsh interface ipv4 set interface"Loopback" weakhostreceive=enabled

    netsh interface ipv4 set interface"Loopback" weakhostsend=enabled

    netsh interface ipv4 set interface "本地連線" weakhostreceive=enabled

    netsh interface ipv4 set interface "本地連線" weakhostsend=enabled

    pause

     

     

  4. Windows 2012

    1、添加Microsoft loopback Adapter網絡適配器

    控制面板——設備管理器——右擊計算機名——添加過期硬件——歡迎使用硬件添加嚮導(也可使用命令 hdwwiz.exe直接打開——安裝我手動從列表選擇的硬件(高級) - 網絡適配器——廠商選擇Microsoft,網絡適配器選擇MicrosoftKM-TEST 環回適配器,下一步安裝便可

    2、其餘步驟同Windows 2008

     

  5. Windows 2003

    1、添加Loopback網絡適配器

    控制面板——添加硬件——選「是,我已經鏈接了此設備」——網絡適配器-選「安裝我手動從列表選擇的硬件-廠商選擇Microsoft,網絡適配器選擇Microsoft LoopbackAdapter,下一步安裝便可

    2、設置VIP

    在控制面板的網絡鏈接中,設置Microsoftloopback adapter IP 虛擬IP,子網掩碼爲 255.255.255.0

    3、設置ARP抑制

    打開 regedit 註冊表

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\

    尋找「VIP」將其設置成255.255.255.255

    重啓網卡以後 若是成功VIP NETMASK將會變爲 255.255.255.255

相關文章
相關標籤/搜索