CentOS6.2下配置KeepLived + LVS

原创 2016年05月30日 11:42:56
网上看了许多例子,都有些小毛病,小笔误导致不能配置成功,我再REMIX一版希望对后来者有帮助。

LVS:软负载均衡软件,在网络7层中第4层进行转发,效率很高
KeepLived:通过VRRP协议,选举中一台MASTER机器使用设定的虚IP,并且在MASTER掉线时,BACKUP机器自动托管该虚IP,对外界透明,外界只和虚IP进行通讯

安装软件:
yum install ipvsadm
yum install keepalived

相关文件位置:
keepalived{
配置文件:/etc/keepalived/keepalived.conf
LOG文件:/var/log/messages
}

keepalived配置文件样例:
====================
keepalived.conf (MASTER)
====================
global_defs
{
    notification_email
    {
        admin@company.com
    }
    notification_email_from admin@company.com
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id LVS_NODE_A  # MASTER & BACKUP结点该ID可以不同
}

vrrp_sync_group lb
{
    group
    {
        loadbalance
    }
}
 
vrrp_instance loadbalance
{
    state MASTER  # MASTER, BACKUP
    interface eth0
    virtual_router_id 51  # master & backup must have same value
    priority 100
    advert_int 1
    authentication
    {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress
    {
        192.168.1.100  # Virtual IP Address
    }
}
 
virtual_server 192.168.1.100 8080 {
        delay_loop 5
        lb_algo wlc
        lb_kind DR    # NAT, TUN, DR
        persistence_timeout 300
        protocol TCP  # UDP, TCP

        real_server 192.168.1.228 8080
        {
            weight 100
            TCP_CHECK
            {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
                connect_port 8080
            }
        }

        real_server 192.168.1.229 8080
        {
            weight 100
            TCP_CHECK
            {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
                connect_port 8080
            }
        }
}

【P1】
{
执行相关命令:
启动keepalived:/etc/init.d/keepalived start 或者 service keepalived start/stop/restart
设置自启动:chkconfig keepalived on
查看ipvs规则是否生效:ipvsadm -L -n 会显示类似下面结果
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.2.33:80 wlc persistent 50
  -> 192.168.2.29:80              Route   100    0          0         
  -> 192.168.2.30:80              Route   100    0          0
}

第二台LVS机器,安装完软件后,使用下面配置文件
====================
keepalived.conf (BACKUP)
====================
拷贝MASTER配置文件
修改{
state => BACKUP
priority => 90
}

执行【P1】命令段

测试部分

测试主备切换功能

在MASTER上,执行 ip addr 结果表明MASTER服务器拥有虚IP地址
在BACKUP上,执行 ip addr 结果表明BACKUP服务器不拥有虚IP地址
在MASTER上执行 service keepalived stop
在MASTER上,执行 ip addr 结果表明MASTER服务器不拥有虚IP地址
在BACKUP上,执行 ip addr 结果表明BACKUP服务器拥有虚IP地址
在MASTER上执行 service keepalived start
在MASTER上,执行 ip addr 结果表明MASTER服务器拥有虚IP地址
在BACKUP上,执行 ip addr 结果表明BACKUP服务器不拥有虚IP地址

配置WEB服务器(在keepalived概念中,web服务器也叫 real server)

例子中采用DR方式调度(LVS中的概念,查LVS中文站点可知其详细意义)
在Real Server上需要进行配置,即在每个Real Server上都需要进行相同的配置

1,编写lvsrs脚本放置/etc/init.d下面:vi /etc/init.d/lvsrs
脚本文件内容:

================================================================
#!/bin/bash
# description: Config realserver lo and apply noarp
 
SNS_VIP=192.168.1.100
 
sh /etc/rc.d/init.d/functions
 
case "$1" in
start)
       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 1
esac
 
exit 0
================================================================

2,加权限 chmod 755 /etc/init.d/lvsrs
3,启动 service lvsrs start
4,加入自启动 echo "service lvsrs start" >> /etc/rc.local

FQA

Q: 两台LVS主机都变成了MASTER,导致无法使用虚IP进行方法,俗称「脑裂」现象,怎么回事?
A: 这是由于没有关闭防火墙的缘故。LVS+KeepAlived原理是使用VRRP协议进行互相通讯,默认防火墙会进行拦截。
关闭防火墙即可解决该问题。
不关闭防火墙的解决办法如下:
/sbin/iptables -A INPUT -i eth0 -d 224.0.0.0/8 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p 112 -j ACCEPT
service iptables save
service iptables restart

Q: 为什么访问不了Real Server页面呢?
A: 因为你忘记了在Real Server上运行lvsrs脚本了,DR模式下Response不通过LVS转发,而直接将Response发给客户端,所以在RealServer上需要配置识别虚IP
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

mysql dba系统学习(18)mysql主从复制的实现 mysql dba系统学习(19)配置mysql+lvs+keeplived实现Mysql读操作的负载均衡

mysql主从复制的实现 1、MySQL复制的实现原理 MySQL支持单向、双向复制、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入...

CentOS6.2下配置foreman1.0

  • 2014年04月25日 16:48
  • 3KB
  • 下载

CentOS6.2下一步一步源代码安装OpenStack(六)horizon配置、运行、测试

更新:5月4日;添加noVNC的配置 1配置 1.1创建配置文件: [ugyn@cc ~]$ vim install/horizon-2012.1/openstack_dashboard/l...
  • ugyn109
  • ugyn109
  • 2012年04月22日 21:31
  • 6575

CentOS6.2下fastDFS的完整安装和配置步骤

CentOS6.2下fastDFS的完整安装和配置步骤 centos6.2系统下安装配置FastDFS步骤: 1:安装libevent(libevent-2.0.16-stable) ...

Centos6.2下安装配置zenoss4.2

转自:http://mengyang.blog.51cto.com/4622731/981862 借助于官方文档和一步步的实验终于安装成功了最新的zenoss,zenoss感觉还是挺好用的,...
  • jjwspj
  • jjwspj
  • 2012年10月12日 16:44
  • 2328

CentOS6.2下一步一步源代码安装OpenStack(四)glance配置、运行、测试

本文与前面所写的一篇关于glance的安装配置文章大部分是重复的,如果已经看过前面的那一篇,此篇略读即可 1.配置 1.1拷贝默认配置文件: [ugyn@cc keystone-2012.1]$...
  • ugyn109
  • ugyn109
  • 2012年04月20日 10:15
  • 7097

在CentOS6.2下安装DNS服务软件Bind并快速配置简单实例

[实践Ok]在CentOS6.2下安装DNS并快速配置实例,共八步,心路历程如下: 背景介绍: 在日常的开发中,往往会在测试机和外网的Http的Url实际接口是不一样的,在测试机一个Url地址,在...

CentOS6.2下一步一步源代码安装OpenStack(三)keystone配置、运行、测试

这篇文章与我前面写的安装keystone有很大部分是相同,如果你看过前面的那篇文章这里略读主可以了 1.配置 也可参考:http://docs.openstack.org/trunk/open...
  • ugyn109
  • ugyn109
  • 2012年04月19日 21:42
  • 7439

CentOS6.2下JAVAEE开发环配置(1)---Java+Tomcat环境配置

版本说明: JDK::jdk1.7.0_03 软件包: jdk-7u3-linux-i586.rpm Tomcat:apache-tomcat-7.0.26 软件包:apache-tomcat...

Centos+Piranha安装配置[LVS集群]

  • 2014年04月04日 17:31
  • 667KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CentOS6.2下配置KeepLived + LVS
举报原因:
原因补充:

(最多只允许输入30个字)