lvs+keepalived負載均衡實戰
一、為什麼要使 用負載均衡技術?
1、系統高可用性
2、 系統可擴充套件性
3、 負載均衡能力
lvs+keepalived能很好的實現以上的要求,lvs提 供負載均衡,keepalived提供健康檢查,故障轉移,提高系統的可用性!採用這樣的架構以後 很容易對現有系統進行擴充套件,只要在後端新增或者減少realserver,只要更改lvs的 配置檔案,並能實現無縫配置變更!
二、lvs+keepalived介紹
1、 lvs
lvs是乙個開源的軟體,可以實現linux平台下的簡單負載均衡。lvs是linux virtual server的縮寫,意思是linux虛擬伺服器。目前有三種ip負 載均衡技術(vs/nat、vs/tun和vs/dr);八種排程演算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。
2、 keepalived
keepalived 是執行在lvs 之上,它的主要功能是實現真實機的故障隔離及負載均衡器間的失敗 切換,提高系統的可用性
三、lvs+keepalived負載均衡架構圖
四、lvs+keepalived的安裝和配置
1. 配置環境
system os:centos release 5.4
software:ipvsadm-1.24.tar.gz, keepalived-1.1.19.tar.gz
2. 資訊列表
名稱ip
lvs-master
192.168.1.112
lvs-backup
192.168.1.113
lvs-vip
192.168.1.115
realserver1
192.168.1.105
realserver2
192.168.1.103
realserver3
192.168.1.104
3. 安裝lvs
分別在backup lvs和master lvs上安裝
wget
ln -s /usr/src/kernels/2.6.18-164.el5-i686/ /usr/src/linux
tar zxvf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24
make && make install
4. 安裝keepalived
分別在backup lvs和master lvs上安裝
wget
tar zxvf keepalived-1.1.19.tar.gz
cd keepalived-1.1.19
./configure --prefix=/usr/local/keepalived
make
make install
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
mkdir /etc/keepalived
5. 配置keepadlived
lvs-master的配置檔案如下
# cat /etc/keepalived/keepalived.conf
global_defs
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id lvs1 # 設定lvs的id,在乙個網路內應該是唯一的
}vrrp_sync_group test
}vrrp_instance loadbalance
virtual_ipaddress
}virtual_server 192.168.1.115 80
}real_server 192.168.1.103 80
}real_server 192.168.1.104 80 }}
lvs-backup的配置檔案如下
global_defs
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id lvs2
}vrrp_sync_group test
}vrrp_instance loadbalance
virtual_ipaddress
}virtual_server 192.168.1.115 80
}real_server 192.168.1.103 80
}real_server 192.168.1.104 80 }}
6. realserver的配置
三颱客戶端的指令碼都一樣!
cat /etc/rc.d/init.d/realserver.sh
#!/bin/bash
sns_vip=192.168.1.115
/etc/rc.d/init.d/functions
case "$1" in
start)
ifconfig lo:0 $sns_vip netmask 255.255.255.255 broadcast $sns_vip
/sbin/route add -host $sns_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
sysctl -p >/dev/null 2>&1
echo "realserver start ok"
;;stop)
ifconfig lo:0 down
route del $sns_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 "
exit 1
esac
exit 0
7. 測試
1) 首先測試各個readserver,確定各個readserver都能正常訪問,測試realserver.sh指令碼,看啟動後 能不能繫結lvs vip,停止後能不能去除繫結的vip
2) 測試lvs能否進行負載均衡**,利用ipvsadm命令檢視,如果想只當當前的 請求**到哪個伺服器去了,可以用ipvsadm加選項來檢視,其完整形式為:ipvsadm –lcn | grep 192.168.1.115
3) 停掉主lvs看lvs backup是否接管!
4) 更詳細資訊請檢視日誌,tail -f /var/log/messages
LVS Keepalived負載均衡配置
lvs一般是和keepalived一起組合使用的,雖然也可以單獨使用lvs,但配置比較繁瑣,且可用性也沒有前者高。lvs和keepalived組合使用後,配置lvs的vip和負載均衡就都在keepalived中進行配置,只是在keepalived中呼叫lvs 配置 keepalived.conf g...
LVS keepalived負載均衡 DR
lvs keepalived 負載均衡 dr 為什麼要使 用負載均衡技術?1 系統高可用性 2 系統可擴充套件性 3 負載均衡能力 1.1 lvs是什麼 lvs是linux virtual server的簡稱,也就是linux虛擬伺服器,是乙個由章文嵩博士發起的自由軟體專案,它的官方站點是www.l...
LVS Keepalived構建高可用負載均衡
lvs keepalived構建高可用負載均衡 一 位址規劃 功能 hostname ip位址 虛擬裝置名 虛擬ip director1 node0 192.168.32.30 eth0 0 192.168.32.21 director2 node1 192.168.32.31 eth0 0 192...