您好,登錄后才能下訂單哦!
****************** Keepalived+lvs ******************
服務器 IP 分配:
服務器: | ip地址 |
Load Balancer: | 172.25.7.1 |
Backup: | 172.25.7.4 |
Real Server 1: | 172.25.7.2 |
Real Server 2: | 172.25.7.3 |
主、備機上的軟件包安裝與配置:
# tar zxf keepalived-1.3.5.tar.gz
# cd keepalived-1.3.5
# ./configure --prefix=/usr/local/keepalived --with-init=SYSV
# make && make install
# ln -s /usr/local/keepalived/sbin/keepalived /sbin/
# ln -s /usr/local/keepalived/etc/keepalived/ /etc/
# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
# ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
# chmod +x /usr/local/keepalived/etc/rc.d/init.d/keepalived
# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost #接收警報的 email 地址,可以添加多個
}
notification_email_from keepalived@server1 #設置郵件的發送地址
smtp_server 172.25.7.1 #設置 smtp server 地址
smtp_connect_timeout 30 #設置連接 smtp 服務器超時時間
router_id LVS_DEVEL #load balancer 的標識 ID,用于 email 警報
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER #備機改為BACKUP,此狀態是由priority的值來決定的,當前priority 的值小于備機的值,那么將會失去 MASTER 狀態
interface eth0 #HA 監測網絡接口
virtual_router_id 70 #主、備機的 virtual_router_id 必須相同
priority 100 #主機的優先級,備份機改為 50
advert_int 1 #主備之間的通告間隔秒數
authentication { #主備切換時的驗證
auth_type PASS #設置驗證類型,主要有 PASS 和 AH 兩種
auth_pass 1111 #設置驗證密碼,在一個 vrrp_instance 下,MASTER 與 BACKUP 必須使用相同的密碼才能正常通信
}
virtual_ipaddress { #HA 虛擬 ip,可加多個,每行一個
172.25.7.100
}
}
virtual_server 172.25.7.100 80 { #定義虛擬服務器
delay_loop 6 #每隔 6 秒查詢 realserver狀態
lb_algo rr #lvs 調度算法,這里使用輪叫
lb_kind DR #LVS 使用 DR 模式
# persistence_timeout 50 #會話保持時間,單位是秒,這個選項對于動態網頁是非常有用的,為集群系統中 session 共享提供了一個很好的解決方案。有了這個會話保持功能,用戶的請求會被一直分發到某個服務節點,直到超過這個會話保持時間。需要注意的是,這個會話保持時間,是最大無響應超時時間,也就是說用戶在操作動態頁面時,如果在 50 秒內沒有執行任何操作,那么接下來的操作會被分發到另外節點,但是如果一直在操作動態頁面,則不受 50 秒的時間限制。
protocol TCP #指定轉發協議類型檢查 realserver 狀態,有 tcp 和 udp 兩種,
real_server 172.25.7.2 80 { #配置服務節點
weight 1 #配置服務節點的權值,權值大小用數字表示,數字越大,權
值越高,設置權值的大小可以為不同性能的服務器分配不同的負載,可以對性能高的服務器設置較高的權值,而對性能較低的服務器設置相對較低的權值,這樣就合理的利用和分配了系統資源
TCP_CHECK { #realserve 的狀態檢測設置部分,單位是秒
connect_timeout 3 #3 秒無響應超時
nb_get_retry 3 #故障重試秒數
delay_before_retry 3 #重試延遲
}
}
real_server 172.25.7.3 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}# ipvsadm -ln
}
}
注:備機的 keepalived 配置文件只改動紅色字體部分!
# /etc/init.d/keepalived start ## 啟動keepalived
# iptables -F ## 啟動時刷新防火墻配置(當前keepalived版本需要刷新)
測試:
###在主備機上
# ip addr查看虛擬ip添加
# ipvsadm -ln查看lvs連接
# arp -an |grep 100 ##查看哪個主機正在服務
1. 高可用測試:停止 master 上的 keepalived 服務,看 backup 是否接管。
2. 負載均衡測試:訪問 http://192.168.0.163,看到頁面在兩個 realserver 上切換表示成功!你也可以通過 ipvsadm -Lnc 查看詳細連接情況!
3. 故障切換測試:任意關閉 realserver 上的 httpd 服務,Keepalived 監控模塊是否能及時發現,然后屏蔽故障節點,同時將服務轉移到正常節點來執行。
當server2的httpd停止時,Keepalived只檢測到server3。
當server2和3的httpd都停止時轉移到本機上。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。