lvs+keepalived+ipvsadm 完整搭建筆記

一、環境介紹:
系統:centos 6.7
keepalived VIP1 :10.0.5.155
keepalived VIP2:10.0.5.156

 

Lvs:節點
node-5-150: 10.0.5.150
node-5-152: 10.0.5.152
Real-Server節點:
node-5-153: 10.0.5.153
node-5-154: 10.0.5.154
 
二、lvs+keepalived軟件部署
#安裝epel源
yum install -y epel-release
#安裝keepalived ipvsadm
yum install -y keepalived ipvsadm
#查看安裝信息
yum info keepalived ipvsadm
#查看是否安裝完成以及顯示文件路徑
rpm -ql keepalived ipvsadm
 
三、keepalived-lvs配置文件
Lvs:節點
node-5-150: 10.0.5.150
 
VIP主:10.0.5.155
VIP備:10.0.5.156
[root@node-5-150 keepalived]#cat /etc/keepalived/keepalived.conf
#全局定義部分
global_defs {
notification_email { #設置報警郵件地址,能夠設置多個
acassen@firewall.loc #每行一個。注意,若是要開啓郵件報警
failover@firewall.loc #須要開啓本機的 Sendmail 服務
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc #設置郵件的發送地址
smtp_server 127.0.0.1 #設置smtp server地址
smtp_connect_timeout 30 #設置鏈接 smtp server 的超時時間
router_id node_05 #表示運行 Keepalived服務器的一個標識。發郵件時顯示在郵件主題中的信息
}
 
#vrrp 實例定義部分
vrrp_instance VI_1 {
state MASTER    #指定 Keepalived 的角色,MASTER表示此主機是主服務器,BACKUP表示此主機是備用服務器.
interface eth0    #指定監測網絡的接口
virtual_router_id 51   #虛擬路由標識,這個標識是一個數字,同一個 vrrp 實例使用惟一的標識,即同一個vrrp_instance下,MASTER和BACKUP 必須是一致的
priority 100   #定義優先級,數字越大,優先級越高。在一個vrrp_instance下,MASTER的優先級必須大於BACKUP的優先級
advert_int 1   #設定MASTER與BACKUP 負載均衡器之間同步檢查的時間間隔,單位是秒
authentication {   #設定驗證類型和密碼
auth_type PASS   #設置驗證類型,主要有PASS和AH兩種
auth_pass 1111   #設置驗證密碼,在一個vrrp_instance下,MASTER與BACKUP 必須使用相同的密碼才能正常通訊
}
virtual_ipaddress {
10.0.5.155   #設置虛擬IP地址,能夠設置多個虛擬IP地址,每行一個
}
}
 
vrrp_instance VI_2 {
state BACKUP
interface eth0
virtual_router_id 52
priority 60
advert_int 1
authentication {
auth_type PASS
auth_pass 2222
}
virtual_ipaddress {
10.0.5.156
}
}
 
#虛擬服務器定義部分
virtual_server 10.0.5.155 80 {   #設置虛擬服務器,須要指定虛擬IP地址和服務端口IP與端口之間用空格隔開
delay_loop 6   #設置健康檢查的時間間隔,單位是秒
lb_algo rr   #設置負載調度算法,這裏設置爲rr,即輪詢算法
lb_kind DR   #設置LVS實現負載均衡的機制,有 NAT、TUN和DR三個模式可選
nat_mask 255.255.255.0
persistence_timeout 0
#會話保持時間,單位是秒。這個選項對動態網頁是很是有用的,爲集羣系統中的 session共享提供了一個很好的解決方案。有了這個會話保持功能,用戶的請求會被一直分發到某個服務節點,直到超過這個會話的保持時間。須要注意的是,這個會話保持時間是最大無響應超時時間,也就是說,用戶在操做動態頁面時,若是在 50秒內沒有執行任何操做,那麼接下來的操做會被分發到另外節點,可是若是用戶一直在操做動態頁面,則不受50秒的時間限制。
protocol TCP #指定轉發協議類型,有TCP和UDP兩種
#sorry_server 127.0.0.1 80
real_server 10.0.5.153 80 { #配置服務節點 1,須要指定 real server的真實IP地址和端口,IP與端口之間用空格隔開
weight 1
#配置服務節點的權值,權值大小用數字表示,數字越大,權值越高,設置權值的大小能夠爲不一樣性能的服務器分配不一樣的負載,能夠爲性能高的服務器設置較高的權值,而爲性能較低的服務器設置相對較低的權值,這樣才能合理地利用和分配了系統資源
TCP_CHECK { #realserve的狀態檢測設置部分,單位是秒
connect_timeout 3 #表示3秒無響應超時
nb_get_retry 3 #表示重試次數
delay_before_retry 3 #表示重試間隔
connect_port 80 #檢查80端口
}
}
 
real_server 10.0.5.154 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
 
virtual_server 10.0.5.156 80 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 0
protocol TCP
#sorry_server 127.0.0.1 80
 
real_server 10.0.5.153 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
 
real_server 10.0.5.154 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
Lvs:節點
node-5-152: 10.0.5.152
 
VIP主:10.0.5.156
VIP備:10.0.5.155
[root@node-5-152 keepalived]# cat /etc/keepalived/keepalived.conf
 
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id node_05
}
 
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 60
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.5.155
}
}
 
vrrp_instance VI_2 {
state MASTER
interface eth0
virtual_router_id 52
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 2222
}
virtual_ipaddress {
10.0.5.156
}
}
 
virtual_server 10.0.5.155 80 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 0
protocol TCP
#sorry_server 127.0.0.1 80
real_server 10.0.5.153 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
 
real_server 10.0.5.154 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
 
virtual_server 10.0.5.156 80 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 0
protocol TCP
#sorry_server 127.0.0.1 80
 
real_server 10.0.5.153 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
 
real_server 10.0.5.154 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
 
 
四、Real-Server節點配置文件
node-5-153: 10.0.5.153
node-5-154: 10.0.5.154
節點配置和路徑同樣
[root@node-5-153 ~]# cat /etc/init.d/lvsrs
#!/bin/bash
sh /etc/rc.d/init.d/functions
 
VIP1=10.0.5.155
VIP2=10.0.5.156
case 「$1」 in
start)
ifconfig lo:1 $VIP1 netmask 255.255.255.255 broadcast $VIP1
/sbin/route add -host $VIP1 dev lo:1
ifconfig lo:2 $VIP2 netmask 255.255.255.255 broadcast $VIP2
/sbin/route add -host $VIP2 dev lo:2
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
sysctl -p >/dev/null 2>&1
echo 「Real Server Start OK」
 
;;
stop)
ifconfig lo:1 down
route del $VIP1 >/dev/null 2>&1
ifconfig lo:2 down
route del $VIP2 >/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 「Real Server Stoped」
;;
status)
 
status1=`/sbin/ifconfig lo:1 | grep $VIP1`
status2=`netstat -rn | grep 「lo:1」 | grep $VIP1`
if [ ! 「$status1」 -o ! 「status2」 ];then
echo 「Lvs-DR real server Stopped.」
else
echo 「LVS-DR Running.」
fi
status1=`/sbin/ifconfig lo:2 | grep $VIP2`
status2=`netstat -rn | grep 「lo:2」 | grep $VIP2`
if [ ! 「$status1」 -o ! 「status2」 ];then
echo 「LVS-DR real server Stopped.」
else
echo 「LVS-DR Running.」
fi
;;
*)
# Invalid entry.
echo 「$0: Usage: $0 {start|status|stop}」
exit 1
;;
esac
exit 0
 
五、LVS節點:watch ipvsadm -Ln
Real Server節點:
 
 
相關文章
相關標籤/搜索