您的位置:首页 > 运维架构 > 网站架构

lvs+keepalived实现负载均衡及高可用

2013-08-20 00:00 627 查看
安装keepalived

# yum -y install openssl-devel popt-devel

# tar xf keepalived-1.2.7.tar.gz

# cd keepalived-1.2.7

./configure --sysconf=/etc --with-kernel-dir=/usr/src/kernels/2.6.32-279.el6.x86_64

# make && make install

# ln -s /usr/local/sbin/keepalived /sbin/

# keepalived --help \\列出keepalived各种用户,同时表明安装成功

安装LVS
# modprobe -l | grep ipvs \\查看是否已经支持LVS的IPVS模块
kernel/net/netfilter/ipvs/ip_vs.ko
kernel/net/netfilter/ipvs/ip_vs_rr.ko
kernel/net/netfilter/ipvs/ip_vs_wrr.ko
kernel/net/netfilter/ipvs/ip_vs_lc.ko
kernel/net/netfilter/ipvs/ip_vs_wlc.ko
kernel/net/netfilter/ipvs/ip_vs_lblc.ko
kernel/net/netfilter/ipvs/ip_vs_lblcr.ko
kernel/net/netfilter/ipvs/ip_vs_dh.ko
kernel/net/netfilter/ipvs/ip_vs_sh.ko
kernel/net/netfilter/ipvs/ip_vs_sed.ko
kernel/net/netfilter/ipvs/ip_vs_nq.ko
kernel/net/netfilter/ipvs/ip_vs_ftp.ko

# ln -s /lib/modules/2.6.32-279.el6.x86_64 /usr/src/kernels/
# ln -s /usr/src/kernels/2.6.32-279.el6.x86_64 /usr/src/linux
# yum install libnl*
# rpm -ivh popt-static-1.13-7.el6.x86_64.rpm
# tar xf ipvsadm-1.26.tar.gz
# cd ipvsadm-1.26
# make && make install
# ipvsadm --help
通过keepalived搭建lvs高可用集群系统
# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_MASTER
}

vrrp_instance VI_1 {
state MASTER
interface eth1
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123.com
}
virtual_ipaddress {
192.168.100.180
}
}

virtual_server 192.168.100.180 80 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP

real_server 192.168.100.175 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}

real_server 192.168.100.176 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
\\另外一台Directory Server 需要更改 Master 为BACKUP,priority 100 更改为 80
# /etc/rc.d/init.d/keepalived start

Real Server执行如下脚本

# cat lvsrc
#!/bin/bash
#description : Start Real Server
VIP=192.168.100.180
#./etc/rc.d/init.d/functions
case "$1" in
start)
echo "Start LVS of Real Server"
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
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
;;
stop)
/sbin/ifconfig lo:0 down
echo "close LVS Directory Server"
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 "Useage : $0 {start|stop}"
exit 1
esac

# chmod a+x /etc/rc.d/init.d/lvsrc
# /etc/rc.d/init.d/lvsrc start
Start LVS of Real Server

# 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.100.180:80 rr persistent 50
-> 192.168.100.175:80 Route 1 0 0
-> 192.168.100.176:80 Route 1 0 0

# ip add show eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:4f:9d:1c brd ff:ff:ff:ff:ff:ff
inet 192.168.200.173/24 brd 192.168.200.255 scope global eth1
inet 192.168.100.180/32 scope global eth1
inet6 fe80::20c:29ff:fe4f:9d1c/64 scope link
valid_lft forever preferred_lft forever
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  负载均衡