keepalived实现高可用的LVS负载均衡集群


keepalived实现高可用的LVS负载均衡集群


1、准备知识

1.1、LVS

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


一般来说,LVS集群采用三层结构,其主要组成部分为:
A、负载调度器directirserver,它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的。
B、服务器池realserver,是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等。
C、共享存储,它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。

1.2、keepalived

keepalived是一个类似于layer3, 4 & 7交换机制的软件,也就是我们平时说的第3层、第4层和第7层交换。我们只需要简单配置keepalived的配置文件即可实现自动生成ipvsadm规则。还可以监控后端realserver主机的健康状态,出现故障时自动剔除集群,恢复后自动添加,以及MASTER与BACKUP之间的故障切换。

1.3、为什么要keepalived+LVS

lvs是一个在四层上实现后端realserver的负载均衡的集群,lvs遗留下两个问题:一个是lvs的单点故障; 第二个是lvs不能检测后端realserver的健康状态检查。最常用的方法就是在负载调度层构建双机热备系统。keepalived的配置文件里面可以自行生成ipvs的规则,并且自行检测后端realserver的状态,当后端realserver不能提供服务了,keepalived会自行将其在ipvs规则里面删除,当后端realserver可以提供服务了,又自行的在ipvs规则里面添加。



2、实验测试

2.1 实验拓扑结构

2.1 实验准备

本次实验使用VMwaer安装一台centos5.5(mini安装),完成后再复制出三台刚才已安装好的centos5.5(注意修改mac地址)并配置好ip(dircetirserver自动生成vip,只需要配置realserver),一共四台虚拟机。分别是负载调度器mastr、backup,服务器池webserver1、webserver2。

设置 vip(虚拟ip)

ifconfig eth0:0 192.168.100.100 netmask 255.255.255.0 up
写在/etc/rc.local里也可以,写在这里就不怕断电后机器无法正常使用了。 

关闭防火墙和selinux

service iptables stop
service ip6tables stop
vim /etc/selinux/config
修改为SELINUX=disabled

2.1.1 Mastr配置

由于是mini安装的系统,keepalived前的准备

1、安装安全套接字层密码库openssl
yum install -y openssl openssl-devel
2、安装内核编译工具kernel-devel
yum install -y kernel-devel
3、安装编译工具gcc-c++
yum install -y gcc-c++
4、安装opvs管理工具 ipvsadm
yum install -y ipvsadm
安装keepalived

1、安装keepalived
wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz
2、解压keepalived
tar xvf keepalived-1.2.7.tar.gz
3、进入文件内
cd keepalived-1.2.7
4、配置安装路径
./configure --sysconf=/etc --with-kernel-dir=/usr/src/kernels/2.6.18-417.el5
5、编译
make
6、安装
make install#由于编译程序找不到对应的内核照成的,要创建链接
ln -s  /usr/local/sbin/keepalived  /sbin

修改keepalived的配置文件

vim /etc/keepalived/keepalived.conf
修改成
! Configuration File for keepalived
global_defs {
   notification_email {
     root@localhost  #设置报警邮件地址,即收件人地址
   }
   notification_email_from admin@localhost  #设置邮件的发送地址
   smtp_server 127.0.0.1   #设置smtp server的ip地址
   smtp_connect_timeout 30 #设置连接smtp server的超时时间
   router_id LTT   #表示运行keepalived服务器的一个标识,名字可以随便取,名字会显示在发邮件时邮件的主题信息
}
vrrp_instance IN_1 {
    state MASTER   #指定keepalived的角色,此服务为master
    interface eth0  #指定监测网络的接口
    virtual_router_id 51 #虚拟路由的标识
    priority 100   #定义优先级,数字越大优先级越高,1-255之间
    advert_int 1   #设置同步检查的时间间隔,单位是秒
    authentication { #设置验证类型
        auth_type PASS  #验证类型为PASS
        auth_pass 1111  #验证的密码
    }
    virtual_ipaddress {
        192.168.100.100    #设置虚拟IP
    }
}
virtual_server  192.168.100.100 80 {  #定义虚拟服务器,需指定虚拟ip和端口
    delay_loop 6    #设置健康检查时间,单位为秒
    lb_algo wlc     #设置负载调度算法,此处为加权最少连接
    lb_kind DR      #设置LVS实现负载均衡的模式
    nat_mask 255.255.255.0 #设置子网掩码
    protocol TCP      #设置转发协议的类型
    real_server 192.168.100.6 80 {  #定义realserver,需指定ip和端口
        weight 1     #指定权重
        HTTP_GET {  #设置检测后端realserver的方式为获取http协议报文
            url {
              path /
              status_code 200  #状态码为200则证明后端服务器是在线的
           }
            connect_timeout 3  #设置超时时间
            nb_get_retry 3    #设置超时时候重试几次
            delay_before_retry 3 #在重试的时候的时间间隔
        }
    }
    real_server 192.168.100.7 80 {
        weight 1
        HTTP_GET {
            url {
              path /
                status_code 200
           }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}
启动服务

service keepalived start

2.1.2 Backup配置

安装前需要的软件和mastr一样,然后安装keepalived

修改keepalived的配置文件

将vim /etc/keepalived/keepalived.conf

只需要修改两个地方
state BACKUP #把这里原先的MASTER改成BACKUP

priority 99 #把这里原先的100改成9 

启动服务

service keepalived start

2.1.3 Realserver1配置

1、安装httpd服务 
yum install httpd
2、配置测试页,启动httpd服务
echo "this is realserver1" > /var/www/html/index.html
service httpd start
3、配置arptable调整网卡的响应/通告级别
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
4、配置网络别名及添加路由
ifconfig lo:0 192.168.100.100 broadcast 192.168.100.100 netmask 255.255.255.255 up
route add -host 192.168.100.100 dev lo:0

2.1.4 Realserver2配置

1、安装httpd服务 
yum install httpd
2、配置测试页,启动httpd服务
echo "this is realserver2" > /var/www/html/index.html
service httpd start
3、配置arptable调整网卡的响应/通告级别
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
4、配置网络别名及添加路由
ifconfig lo:0 192.168.100.100 broadcast 192.168.100.100 netmask 255.255.255.255 up
route add -host 192.168.100.100 dev lo:0

到此 全部配置已完成

2.2  测试

2.2.1 查看ipvs规则和VIP

ip addr #查看vip
ipvsadm -l -n #查看ipvs规则

2.2.2 测试realserver是否可以访问

2.2.3 测试dircetirserver故障

假设把mastr网络断掉 ,我们查看backup的规则和访问vip

停掉Master的keepalived服务,vip和ipvs规则切换到Backup服务器上

realserver正常访问

2.2.4 测试realserver故障

假设把webserver2网络断掉


看ipvs的规则是否清除,显示已经清楚规则



此致,keepalived实现高可用的LVS负载均衡集群已经完成,可以自动的故障转移,还可以根据后端realserver的状态,自动的修改其规则





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值