keepalived+lvs(HA+LB)

                  Keepalived+lvs (HA+LB)

主機環境:RHEL6 系列 selinux and iptables disabled
實驗主機:
LVS‐ACTIVE:
192.168.2.15
LVS‐BACKUP:
192.168.2.117
LVS‐VIP:
192.168.2.27
Realsever:
192.168.2.243 192.168.2.111

主備機上的軟件包安裝
yum install gcc -y
yum install openssl-devel -y
yum install libnl-devel
tar zxf keepalived-1.2.12.tar.gz
cd keepalived-1.2.12
./configure --prefix=/usr/local/keepalived
make && make install
cd /usr/local/keepalived/  keepalived全部的文件目錄都在這,能夠作軟連接放到規定路徑
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
lncd keepalived/ -s /usr/local/keepalived/sbin/keepalived /sbin/
cd /etc/keepalived/ 修改配置文件
ls
vim keepalived.conf (格式嚴格)

! Configuration File for keepalived
  global_defs {
   notification_email {
     root@localhost #接收警報的 email 地址,能夠添加多個

   }
   notification_email_from keepalived@joan2.example.com #設置郵件的發送地址

   smtp_server 127.0.0.1 #設置郵件的發送地址

   smtp_connect_timeout 30 #設置鏈接 smtp 服務器超時時間

   router_id LVS_DEVEL #load balancer 的標識 ID,用於 email 警報

}
vrrp_instance VI_1 {
    state MASTER #備機改成 BACKUP,此狀態是由 priority 的值來決定的,當前
priority 的值小於備機的值,那麼將會失去 MASTER 狀態

    interface eth0 #HA 監測網絡接口

    virtual_router_id 45 #主、備機的 virtual_router_id 必須相同,取值 0-255

    priority 78  #主機的優先級,主機優先級必定要大於備機

    advert_int 1 #主備之間的通告間隔秒數

    authentication {#主備切換時的驗證

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

        auth_pass 1111 #設置驗證密碼,在一個 vrrp_instance 下,MASTER 與 BACKUP 必
須使用相同的密碼才能正常通訊

    }
    virtual_ipaddress {
        192.168.2.27#設置虛擬 IP 地址,能夠設置多個虛擬 IP 地址,每行一個

    }
virtual_server 192.168.2.27 80 {#定義虛擬服務器

     delay_loop 6  #每隔 6 秒查詢 realserver 狀態

     lb_algo rr  #lvs 調度算法,這裏使用輪叫

     lb_kind DR  #LVS 是用 DR 模式

     #persistence_timeout 50 #會話保持時間,單位是秒,這個選項對於動態網頁是很是有
用的,爲集羣系統中 session 共享提供了一個很好的解決方案。有了這個會話保持功能,用戶的
請求會被一直分發到某個服務節點,直到超過這個會話保持時間。須要注意的是,這個會話保
持時間,是最大無響應超時時間,也就是說用戶在操做動態頁面時,若是在 50 秒內沒有執行任
何操做,那麼接下來的操做會被分發到另外節點,可是若是一直在操做動態頁面,則不受 50 秒
的時間限制。

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

     real_server 192.168.2.243 80 { #配置服務節點

      weight 1  #配置服務節點的權值,權值大小用數字表示,數字越大,權
值越高,設置權值的大小能夠爲不一樣性能的服務器分配不一樣的負載,能夠對性能高的服務器設
置較高的權值,而對性能較低的服務器設置相對較低的權值,這樣就合理的利用和分配了系統
資源

      TCP_CHECK { #realserve 的狀態檢測設置部分,單位是秒

      connect_timeout 3 #10 秒無響應超時

      nb_get_retry 3 #重試次數

      delay_before_retry 3 #重試間隔

      }

    }
    real_server 192.168.2.111 80 {
      weight 1
      TCP_CHECK {
      connect_timeout 3
      nb_get_retry 3
     delay_before_retry 3
     }
    }
}能夠照這樣添加虛擬服務器
/etc/init.d/keepalived restart 啓動keepalived
分別在 realserver 上執行如下命令
192.168.2.243
ifconfig eth0:0 192.168.2.27 netmask 255.255.255.255 up 添加虛擬ip
arptables -A IN -d 192.168.2.27 -j DROP
arptables -A OUT -s 192.168.2.27 -j mangle --mangle-ip-s 192.168.2.243
/etc/init.d/arptables_jf save
/etc/init.d/arptables_jf start
192.168.2.111
ifconfig eth0:0 192.168.2.27 netmask 255.255.255.255 up
arptables -A IN -d 192.168.2.27 -j DROP
arptables -A OUT -s 192.168.2.27 -j mangle --mangle-ip-s 192.168.2.111
/etc/init.d/arptables_jf save
/etc/init.d/arptables_jf start


檢測:
1.高可用測試:中止 master 上的 keepalived 服務,看 backup 是否接管。
2. 負載均衡測試:訪問 http://192.168.2.27,看到頁面在兩個 realserver 上切換表示成功!
你也能夠經過 ipvsadm -Lnc 查看詳細鏈接狀況!
3. 故障切換測試:任意關閉 realserver 上的 httpd 服務,Keepalived 監控模塊是否能及時發現,
而後屏蔽故障節點,同時將服務轉移到正常節點來執行。
西
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息