LVS+keepalived
、为什么要使 用负载均衡技术?1、系统高可用性2、系统可扩展性3、负载均衡能力LVS+keepalived能很好的实现以上的要求,LVS提 供负载均衡,keepalived提供健康检查,故障转移,提高系统的可用性!采用这样的架构以后 很容易对现有系统进行扩展,只要在后端添加或者减少realserver,只要更改lvs的 配置文件,并能实现无缝配置变更!二、LVS+Keepalived介绍1、LVSLVS是一个开源的软件,可以实现LINUX平台下的简单负载均衡。LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器。目前有三种IP负 载均衡技术(VS/NAT、VS/TUN和VS/DR);八种调度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。2、keepalivedKeepalived 是运行在lvs 之上,它的主要功能是实现真实机的故障隔离及负载均衡器间的失败 切换,提高系统的可用性
三、LVS+keepalived负载均衡架构图
四、LVS+keepalived的安装和配置1. 配置环境 System OS:CentOS release 5.4 Software:ipvsadm-1.24.tar.gz, keepalived-1.1.19.tar.gz2. 信息列表
名称IP
LVS-Master192.168.1.112
LVS-BACKUP192.168.1.113
LVS-VIP192.168.1.115
Realserver1192.168.1.105
Realserver2192.168.1.103
Realserver3192.168.1.104
3. 安装lvs分别在backup lvs和master lvs上安装wget http://www.linuxvirtualserver.or ... ipvsadm-1.24.tar.gzln -s /usr/src/kernels/2.6.18-164.el5-i686/ /usr/src/linuxtar zxvf ipvsadm-1.24.tar.gzcd ipvsadm-1.24make && make install4. 安装keepalived分别在backup lvs和master lvs上安装wget http://www.keepalived.org/software/keepalived-1.1.19.tar.gz
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/keepalived5. 配置keepadlivedLVS-Master的配置文件如下# cat /etc/keepalived/keepalived.confglobal_defs {notification_email { jimo291@gmail.com #email 通知 } notification_email_from jimo291@gmail.com smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS1 # 设置lvs的id,在一个网络内应该是唯一的}vrrp_sync_group test { #设置vrrp组group { loadbalance}}
vrrp_instance loadbalance { state MASTER #设置lvs的状态,报错MASTER和BACKUP两种,必须大写 interface eth0 #设置对外服务的接口 lvs_sync_daemon_inteface eth0 #设置lvs监听的接口 virtual_router_id 51 #设置虚拟路由表示 priority 180 #设置优先级,数值越大,优先级越高 advert_int 5 #设置同步时间间隔authentication { #设置验证类型和密码 auth_type PASS auth_pass 1111}virtual_ipaddress { #设置lvs vip 192.168.1.115}}
virtual_server 192.168.1.115 80 { delay_loop 6 #健康检查时间间隔 lb_algo rr #负载均衡调度算法 lb_kind DR #负载均衡转发规则 #persistence_timeout 20#设置会话保持时间,对bbs等很有用 protocol TCP #协议 real_server 192.168.1.105 80 { weight 3 #设置权重 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80}} real_server 192.168.1.103 80 { weight 3 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80}} real_server 192.168.1.104 80 { weight 3 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80}}}
LVS-backup的配置文件如下global_defs {notification_email { jimo291@gmail.com } notification_email_from jimo291@gmail.com smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS2}vrrp_sync_group test {group { loadbalance}}
vrrp_instance loadbalance { state BACKUP interface eth0 lvs_sync_daemon_inteface eth0 virtual_router_id 51 priority 150 advert_int 5authentication { auth_type PASS auth_pass 1111}virtual_ipaddress { 192.168.1.115}}
virtual_server 192.168.1.115 80 { delay_loop 6 lb_algo rr lb_kind DR #persistence_timeout 20 protocol TCP real_server 192.168.1.105 80 { weight 3 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80}} real_server 192.168.1.103 80 { weight 3 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80}} real_server 192.168.1.104 80 { weight 3 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80}}}
6. Realserver的配置三台客户端的脚本都一样!cat /etc/rc.d/init.d/realserver.sh#!/bin/bash# description: Config realserver lo and apply noarp
SNS_VIP=192.168.1.115
/etc/rc.d/init.d/functions
case "$1" instart) 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 {start|stop}" exit 1esac
exit 0
7. 测试1) 首先测试各个readserver,确定各个readserver都能正常访问,测试realserver.sh脚本,看启动后 能不能绑定lvs vip,停止后能不能去除绑定的vip2) 测试lvs能否进行负载均衡转发,利用ipvsadm命令查看,如果想只当当前的 请求转发到哪个服务器去了,可以用ipvsadm加选项来查看,其完整形式为:ipvsadm –lcn | grep 192.168.1.1153) 停掉主lvs看lvs backup是否接管!4) 更详细信息请查看日志,tail -f /var/log/messages
页:
[1]