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 監控模塊是否能及時發現,
而後屏蔽故障節點,同時將服務轉移到正常節點來執行。
西
歡迎關注本站公眾號,獲取更多信息