Keepalived+LVS高可用负载均衡配置

本文深入解析了Linux虚拟服务器(LVS)的三种IP负载均衡技术与十种调度算法,并详细介绍了如何使用Keepalived进行RealServer的健康状态检查与LoadBalance主机和Backup主机之间的failover实现。通过CentOS6.5环境下的配置实例,展示了LVS+Keepalived如何实现实时负载均衡与故障转移,确保服务稳定运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。

目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR);十种调度算法(rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)。

Keepalived在这里主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现。

LVS+Keepalived能实现的功能:利用LVS控制器主备模式避免单点故障以及自动删除故障WEB服务器结点并当它恢复后再自动添加到群集中。

系统环境

操作系统:CentOS 6.5 Kernel 2.6.32-431 el6.x86_64

Keepalived版本:Keepalived for Linux - Version 1.2.13

Ipvsadm版本:IP Virtual Server version 1.2.1 

整体架构

4台服务器,Lvs Master和Lvs Backup作为负载均衡服务器实现双机互备,RealServer两台实现服务负载均衡。

软件安装

keepalived安装参照:http://blog.youkuaiyun.com/torycatkin/article/details/37917615
Ipvsadm安装:
yum install ipvsadm
查看安装结果:
[root@centos-server-01 soft_installer]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

说明:keepalived和ipvsadm需要在lvs master和lvs backup上安装,realserver不需要安装任何软件。

配置文件

LVS Master配置:/etc/keepalived/keepalived.conf
global_defs {
   router_id LVS_DEVEL
}


vrrp_instance VI_1 {
    state MASTER
    interface eth0
    garp_master_delay 10
    smtp_alert
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.254
    }
}

virtual_server 192.168.1.254 80 {
    delay_loop 6
    lb_algo wlc
    lb_kind DR
    #persistence_timeout 20
    protocol TCP

    real_server 192.168.1.203 80 {
        weight 100
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
    real_server 192.168.1.204 80 {
        weight 100
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
}

LVS Backup配置:/etc/keepalived/keepalived.conf
global_defs {
   router_id LVS_DEVEL
}


vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    garp_master_delay 10
    smtp_alert
    virtual_router_id 51
    priority 80
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.254
    }
}

virtual_server 192.168.1.254 80 {
    delay_loop 6
    lb_algo wlc
    lb_kind DR
    #persistence_timeout 20
    protocol TCP

    real_server 192.168.1.203 80 {
        weight 100
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
    real_server 192.168.1.204 80 {
        weight 100
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
}

Realserver建立脚本并执行:/usr/local/bin/lvs_real
#!/bin/bash
#description : start realserver
VIP=192.168.1.254
/etc/rc.d/init.d/functions

case "$1" in
start)
echo " start LVS of REALServer"
/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 Directorserver"
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 "Usage: $0 {start|stop}"
exit 1
esac

#赋予执行权限并启动
chmod +x /usr/local/bin/lvs_real
/usr/local/bin/lvs_real start


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值