外热呃 发表于 2014-11-7 08:55:58

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]
查看完整版本: LVS+keepalived