基于keepalived的LVS-DR模型构建

实验拓扑:

基础环境的准备:
两台keepalived的高可用服务器,两台real server用于配置httpd服务
在两台real server上安装httpd服务并创建测试页面:

 关闭防火墙跟selinux之后开始配置
 yum install -y httpd
 systemctl start httpd
 systemctl enable httpd
 vim /var/www/html/index.html   //创建测试页面
 This httpd-1 Page
 另一台real server做同样配置

配置两台高可用服务器,在安装keepalived之前先验证以下LVS-DR模型,验证完之后在安装keepalived进行高可用的配置
yum install -y ipvsadm
添加vip地址
ip addr add 192.168.153.100/32 dev ens33

配置两个real server
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
将vip地址配置在两台real server的回环接口的别名上
ifconfig lo:0 192.168.153.100  netmask 255.255.255.255 broadcast 192.168.153.100  up
route add  -host 192.168.153.100  dev lo:0

在LVS调度器上面添加规则
ipvsadm -A -t  192.168.153.100:80 -s rr
ipvsadm -a -t 192.168.153.100:80 -r 192.168.153.7 -g -w 1
ipvsadm -a -t 192.168.153.100:80 -r 192.168.153.8 -g -w 2
将会话连接时长设置为1秒
ipvsadm --set 1 1 1
使用客户端浏览器验证一下



备注:这里有一个注意事项,我们自己平时在做练习的时候习惯使用vmware虚拟出几台主机进行使用,有时候我们在使用同一个vmware软件虚拟出来的主机进行LVS-DR模型构建时有可能造成MAC地址错乱,导致实验失败致使调度器只能将请求调度到一台后端服务器上面,此时我们可以在windews的客户端上面查看一下arp地址解析,如果VIP物理地址跟调度器的DIP物理地址一样则配置成功,如果不一样就需要进行故障排查了。这里建议如果实验机器不够用的话使用两台不同的物理主机安装两个vmware软件,让负载均衡调度器跟real server服务器在两个环境中进行实验。

然后将这台调度器的ipvs规则清空,在另一台负载均衡调度器上面配置ipvs规则进行测试,当测试完毕后我们清空两台调度器的所有规则,因为keepalived的LVS高可用性不需要ipvsadm工具进行规则配置。
此时安装keepalived软件包并配置高可用服务器的错误页面

yum install -y keepalived
systemctl start keepalived
systemctl enable keepalived
yum install -y httpd
vim /var/www/html/index.html
Sorry,The httpd-1 page is not have
修改keepalived的配置文件
cp /etc/keepalived/keepalivd.conf   keepalived.conf.bak
vim keepalived.conf

配置信息如下:

! Configuration File for keepalived

global_defs {
   notification_email {
        [email protected]
   }

   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL     //定义router_id
}
vrrp_script chk_file {
        script "/etc/keepalived/chk_file.sh"    //定义服务启动关闭脚本文件
        interval 1
        weight -2
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 43   //虚拟路由id,两台高可用服务器路由id保持一致
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass qwer
    }
    virtual_ipaddress {
        192.168.153.100/32 dev ens33 label   ens33:0  //将VIP地址配置在virtual中
        }
   track_script {
        chk_file    //调用脚本
        }
}
virtual_server 192.168.153.100 80 {   //定义虚拟服务器的配置信息
    delay_loop 6
    lb_algo wrr   //调度方法
    lb_kind DR //LVS类型
    nat_mask 255.255.255.0
   persistence_timeout 50     //会话连接时长
    protocol TCP               //使用TCP协议
   sorry_server 127.0.0.1 80  //定义错误页面,当后端服务器全部宕机则返回此页面

    real_server 192.168.153.7 80  {   //定义后端的real server信息
        weight 1    //权重为1
        HTTP_GET {    //使用健康状态检测
            url {
              path /    //路径为根目录
              status_code  200
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.153.8 80  {     //另一台real server
        weight 2        //权重为2
        HTTP_GET {
            url {
              path /
              status_code  200
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

重启keepalived服务,查看ip地址

使用ipvsadm -L -n查看规则发现ipvs的规则自动生成

在keepalived配置文件目录下创建chk_file.sh脚本文件

#!/bin/bash
if [ -f /etc/keepalived/down ];then
        exit 1
fi
exit 0
~        

复制文件到另一台高可用服务器,并修改vrrp_instance VI_1中的 state 为BACKUP, priority 为99,保存配置文件并重新启动第二台高可用服务器的keepalived服务。
使用客户端浏览器访问

这时发现只能访问到一个节点,是因为我们开启了keepalived的会话连接功能,我们现在将配置文件中的 persistence_timeout 50 一项注释掉
然后再次使用客户端浏览器重新请求



根据定义的脚本信息,在keepalived配置文件的目录下touch一个down文件让第一台高可用宕掉
查看第二台高可用服务器



使用客户端访问依然可以访问到后端的real server
这里我们手动停止两台real server的httpd服务
查看一下高可用服务器的ipvs规则


使用客户端请求法发现返回sorry_server信息

此时配置完毕,所有服务运行正常

原文地址:http://blog.51cto.com/11970509/2346391

时间: 2024-11-15 06:23:32

基于keepalived的LVS-DR模型构建的相关文章

keepalived基础及使用DR模型构建一个real_server

keepalived HA的解决方案的两大流派分为heartbeat.corosync和keepalived keepalived在诞生时被赋予的使命仅仅是为lvs的director的HA.生成ipvs规则和监控后端主机的健康状况 keepalived是可以模拟并以进程的方式实现vrrp协议,并以此协议进行工作的HA解决方案 vrrp:虚拟冗余路由协议 vrrp的工作方式:将两个或两个以上的物理路由设备定义成一个虚拟的路由器,这种方式称作为一个路由组,这组路由设备共同构建成为一个虚拟的路由,在此

基于Keepalived实现LVS双主高可用集群

前言 前面说过基于heartbeat的LVS高可用方案,今天带来另一种解决方案:基于Keepalived实现LVS双主高可用集群.什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了, 也就是所谓的高可用或热备,用来防止单点故障的发生.本文将详细讲述Keepalived工作原理及高可用解决方案的实现. 相关介绍 Keepalived简介 Keepalived采用VRRP(virtual router redundancy protocol,虚拟路由冗余

LVS集群DR、NAT模型配置, 及使用ldirectord完成LVS DR模型集群搭建

首先我们有三台主机:其中172.16.192.168作为前台主机:另外172.16.254.18和172.16.254.105作为后端主机,作为测试分别运行有web服务,并测试可用,如下图. 一.LVS NAT模型集群配置实验 1.首先在后端Real Server上设置默认网关,执行前端Virtual Server 2.在前端Virtual Server上开启路由转发功能 3.配置前端LVS集群 4.测试 总结:经过初步测试,我们可以看出已经可以实现rr轮询调度,修改相应的调度算法则可以实现不同

马哥学习笔记二十一——LVS DR模型

kernel parameter: arp_ignore: 定义接收到ARP请求时的响应级别: 0:只要本地配置的有相应地址,就给予响应: 1:仅在请求的目标地址配置请求到达的接口上的时候,才给予响应: arp_announce:定义将自己地址向外通告时的通告级别: 0:将本地任何接口上的任何地址向外通告: 1:试图仅向目标网络通告与其网络匹配的地址: 2:仅向与本地接口上地址匹配的网络进行通告: curl命令选项: --cacert <file> CA证书 (SSL) --capath &l

基于keepalived实现LVS的高可用

keepalived简介 首先简单介绍一下VRRP协议(虚拟路由器冗余协议).VRRP是一种容错协议,它可以将一组路由器组织成一个虚拟路由器,这个虚拟路由器仅适用一个IP地址,这个IP地址配置在其中的一台路由器上,这个路由器即为主路由器(MASTER),其余的为备用路由器(BACKUP).如果这个路由器组内的MASTER路由器出现故障了,BACKUP路由器将会通过选举策略选出一个新的MASTER路由器继续向外提供服务.这样就保证了网络之间的通信不会中断. keepalived即采用了VRRP协议

LVS DR模型配置示例

要让路由知道哪台主机是Director,进行选择: 1.VIP:MAC(Director VIP) -- MAC绑定,但未必可行,例如路由是运营商的. 2.arptables 3.kernel parameter(常用此配置): arp_ignore:定义接收到ARP请求时的响应级别: 0:默认级别,只要本机配置有相应的地址,就给予响应: 1:只有当请求目标地址是请求到达接口上配置的地址,才给予响应: arp_announce:定义将自己的地址向外通告时的通告级别: 0:默认级别,将本机任何接口

LVS/DR模型及持久连接

HostName AddressIP Role VirtualIP DEV LVS/DR 192.168.1.150/24 LVS,CA eth0:0 192.168.1.250 node2 192.168.1.120/24 RealServer(httpd) lo:0 192.168.1.250 node3 192.168.1.130/24 RealServer(httpd) lo:0 192.168.1.250 1)DR模型配置前的准备 两RealServer配置如下(一摸一样): [[em

keepalived配置基于lvs DR模型的HA

基本架构图如下:  平台环境:centos6.x1.    安装keepalived.安装ipvsadmyum –y install keepalived  ipvsadm 2.    配置服务2.1 lvs realserver 配置脚本#!/bin/bashVIP1=192.168.1.199case "$1" instart)echo " start LVS of REALServer"/sbin/ifconfig lo:0 $VIP1 broadcast $

三十三天 大规模站点构建、lvs原理、lvs调度及nat模型实现、lvs dr模型及lxc虚拟化

1.大规模站点构建框架.        http:状态               keep-alive:长连接               cookie:session          cluster:集群                 构建高可扩展性系统的重要原则:在系统内部尽量避免串行化和交互                 HA:High Availability                 LB:Load Balancing                 session复制 

基于keepalived实现双主模型高可用lvs

实验环境,使用的操作系统CentOS6.5: Director: node1:IP 172.16.103.2 安装keepalived VIP:172.16.103.20 node2:IP 172.16.103.3 安装keepalived VIP:172.16.103.30 RS: RS1:IP 172.16.103.1 提供httpd服务 RS2:IP 172.16.103.4 提供httpd服务 实验效果: 前端的两台Director运行keepalived,自动生成各自的一组lvs规则,