1. LVSlinux
LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集羣系統。本項目在1998年5月由章文嵩博士成立,是中國國內最先出現的自由軟件項目之一。目前有三種IP負載均衡技術(VS/NAT、VS/TUN和VS/DR);八種調度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。算法
2. Keepalivedbash
Keepalived在這裏主要用做RealServer的健康狀態檢查以及LoadBalance主機和BackUP主機之間failover的實現。服務器
+---------------------------------VIP(192.168.1.222)---------------------------------+app
| | |負載均衡
| | |oop
server(MASTER)<--------------------keepalived------------------->server(BACKUP)網站
192.168.1.202 192.168.1.204spa
IP規劃:操作系統
Hostname | IP |
VIP | 192.168.1.222 |
MASTER | 192.168.1.202 |
BACKUP | 192.168.1.204 |
REALSERVER1 | 192.168.1.203 |
REALSERVER2 | 192.168.1.201 |
安裝LVS和Keepalived軟件包
1. 下載相關軟件包
mkdir /usr/local/src/lvs
cd /usr/local/src/lvs
wget http://down1.chinaunix.net/distfiles/ipvsadm-1.24.tar.gz
wget http://www.keepalived.org/software/keepalived-1.2.19.tar.gz
2. 安裝LVS和Keepalived
lsmod |grep ip_vs #顯示已載入系統的ip_vs模塊
uname -r #顯示操做系統的發行版號
2.6.32-279.el6.x86_64 #操做系統的發行版號
yum install kernel-devel #安裝與系統內核配套的開發包
yum -y install popt*
yum -y install libnl*
yum -y install openssl*
ln -s /usr/src/kernels/2.6.32-279.9.1.el6.x86_64/ /usr/src/linux #創建軟鏈接
tar zxvf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24
make && make install
find / -name ipvsadm # 查看ipvsadm的位置
tar zxvf keepalived-1.1.15.tar.gz
cd keepalived-1.1.15
./configure && make && make install
find / -name keepalived # 查看keepalived位置
cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/sbin/keepalived /usr/sbin/
service keepalived start|stop #作成系統啓動服務方便管理.
3. 配置realserver腳本
在192.168.203(realserver)上配置,腳本我保存在了/opt下
#!/bin/bash
#description Config LVS to realserver lo and apply noarp
#Written by ce
VIP=192.168.1.222
. /etc/init.d/functions
case "$1" in
start)
ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
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
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 {start|stop}"
exit 1
esac
exit 0
chmod a+x /opt/realserver.sh #賦予可執行權限
/opt/realserver.sh start #啓動
以後,經過rsync遠程備份到192.168.1.201(另外一臺realserver上)
rsync -av /opt/realserver.sh root@192.168.1.201:/root/
而後,在192.168.1.201上啓動realserver腳本。
4. 利用keepalived實現負載均衡和高可用性
1. 配置在主負載均衡服務器(192.168.1.202)上配置keepalived.conf
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.222
}
}
virtual_server 192.168.1.222 80 {
delay_loop 6
lb_algo wrr
lb_kind DR
persistence_timeout 60
protocol TCP
real_server 192.168.1.203 80 {
weight 3
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.1.201 80 {
weight 3
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
2. 配置在備份負載均衡服務器(192.168.1.204)上配置keepalived.conf
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.222
}
}
virtual_server 192.168.1.222 80 {
delay_loop 6
lb_algo wrr
lb_kind DR
persistence_timeout 60
protocol TCP
real_server 192.168.1.203 80 {
weight 3
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.1.201 80 {
weight 3
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
3. 啓動keepalived
/etc/init.d/keepalived start(或者service keepalived start)
啓動keepalived 服務,keepalived就能利用keepalived.conf 配置文件,實現負載均衡和高可用. 整個LVS負均衡HA方案,由keepalived.conf一個文件便可搞定!
4. 查看lvs服務是否正常
ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.1.200:80 wrr persistent 60
-> 192.168.1.203:80 Route 3 0
-> 192.168.1.201:80 Route 3 0
tail –f /var/log/message 監聽日誌,查看狀態。