LVS负载均衡DR模式和keepalived架构搭建

LVS负载均衡DR模式和keepalived架构搭建

一、LVS数据包流向分析

整个架构是由对外时显示一个共同的IP地址,VIP.客户端会向DR集群发送VIP请求,负载均衡器收到请求以后会根据算法会将其中的Mac地址进行修改发送给局域网中的服务器。服务器处理完请求后会根据发来数据包的原地址将其设定为目标地址直接发送过去,跳过了负载均衡器。此外如果上次发送请求的客服端有发送请求来那么负载均衡器会将请求再次发送给原来处理请求的服务器上。如果服务器宕机了,请求会转发给其他服务器进行处理。

二、DR模式的搭建

本次实验需要用到两台负载均衡服务器和两台web服务器。
1.负载均衡器的搭建。

#安装keepalived双机热备 、ipvsadm作为调度
yum install keepalived ipvsadm -y

2.开启路由功能和关闭proc响应重定向功能

net.ipv4.ip_forward=1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

别忘记还要sysctl -p,重启后才能生效。

3.添加虚拟网卡,因为整个群集需要在虚拟IP的基础上进行工作。

cd /etc/sysconfig/network-scripts/

#复制ens33网卡为虚拟网卡。
cp -p ifcfg-ens33 ifcfg-ens33:0
#删除虚拟网卡中的所有内容。
#加入设备名称、VIP地址和子网掩码。
DEVICE="ens33:0"
ONBOOT="yes"
IPADDR=192.168.80.10
NETMASK=255.255.255.0

4.设置负载均衡调度器启动脚本

cd /etc/init.d
#创建名称为:dr.sh的脚本文件。
vim dr.sh

#!/bin/bash
GW=192.168.80.1
VIP=192.168.80.10				#虚拟IP
RIP1=192.168.80.20			#web服务器IP
RIP2=192.168.80.30			#web服务器IP
case $1 in
start)
/sbin/ipvsadm --save > /etc/sysconfig/ipvsadm
        systemctl start ipvsadm
        /sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up
        /sbin/route add -host $VIP dev ens33:0
        /sbin/ipvsadm -A -t $VIP:80 -s rr								#轮询算法
        /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g				
        /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
        echo "ipvsadm starting------------------[ok]"
;;

stop)
 /sbin/ipvsadm -C
        systemctl stop ipvsadm
        ifconfig ens33:0 down
        route del $VIP
        echo "ipvsamd stoped--------------------[ok]"
;;

status)
if [ ! -e ar/lock/subsys/ipvsadm ];then
        echo "ipvsadm stoped--------------------"
        exit 1
                else
                echo "ipvsamd Runing-------------[ok]"
        fi
;;
esac
赋予脚本执行权限。
chmod +x /etc/init.d/dr.sh

5.重启网卡、开启虚拟端口、开启LVS服务、关闭防火墙。

systemctl restart network
ifup ens33:0
service dr.sh start
systemctl stop firewalld
setenforce 0

这样一台负载均衡器就搭建好了,第二台的搭建方式与以上方法一致。

下面进行web服务器的搭建。
1.安装web服务。

yum install httpd -y

2.创建一个网页。

echo "this is test.com" > /var/www/html/index.html
systemctl start httpd			#开启httpd服务

3.复制回环网卡,并修改为虚拟网卡


#复制网卡信息
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
#删除其中内容,添加:
DEVICE=lo:0
IPADDR=192.168.80.10
NETMASK=255.255.255.0
ONBOOT=yes

4.编辑启动脚本。

cd /etc/init.d
#创建arp规则脚本。
vim web.sh
#!/bin/bash
VIP=192.168.80.10

case "$1" in
        start)
                ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
                /sbin/route add -host $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/lo/arp_ignore
        echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
        sysctl -p > /dev/null 2>&1
        echo "RealServer Start OK "
        ;;
        stop)
                ifconfig lo:0 down
                route del $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
#赋予执行权限。
chmod +x web.sh

5.重启网卡、开启虚拟网卡和ARP规则、关闭防火墙

ifup lo:0
service web.sh start
systemctl stop firewalld
setenforce 0

第二台web服务器操作也是如此。
验证:能够正常访问。
在这里插入图片描述
在这里插入图片描述
两个页面不同代表LVS调度起作用了。

三、keepalived功能

修改 keepalived.conf 文件,路径为:/etc/keepalived/
vim /etc/keepalived/keepalived.conf

1.在主负载均衡器中配置:
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1				#改为127.0.0.1
   smtp_connect_timeout 30
   router_id_01					#改为_01负载均衡器序号
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER					#主要的为MASTER
    interface ens33
    virtual_router_id 10				#主备要在同一组之中
    priority 100					#设置优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.80.10					#虚拟IP
    }
}

virtual_server 192.168.80.10 80 {			#修改与其相连的webIP地址
    delay_loop 6
    lb_algo rr					#轮询模式
    lb_kind DR					#工作模式是DR
    persistence_timeout 50
    protocol TCP

    real_server 192.168.80.20 80 {
        weight 1
      TCP_CHECK {
            connetc_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.80.30 80 {
        weight 1
      TCP_CHECK {
            connetc_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
在备用负载均衡器上配置:
#### 备用负载均衡器 ####
! Configuration File for keepalived

global_defs {
 notification_email {
   acassen@firewall.loc
   failover@firewall.loc
   sysadmin@firewall.loc
 }
 notification_email_from Alexandre.Cassen@firewall.loc
 smtp_server 127.0.0.1
 smtp_connect_timeout 30
 router_id_02					#id号
 vrrp_skip_check_adv_addr
 vrrp_strict
 vrrp_garp_interval 0
 vrrp_gna_interval 0
}

vrrp_instance VI_1 {
  state BACKUP					#模式是备用
  interface ens33
  virtual_router_id 10
  priority 95					#优先级要比MASTER低
  advert_int 1
  authentication {
      auth_type PASS
      auth_pass 1111
  }
  virtual_ipaddress {
      192.168.80.10
  }
}

virtual_server 192.168.80.10 80 {
  delay_loop 6
  lb_algo rr
  lb_kind DR
  persistence_timeout 50
  protocol TCP

  real_server 192.168.80.20 80 {
      weight 1
    TCP_CHECK {
          connetc_port 80
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 3
      }
  }

  real_server 192.168.80.30 80 {
      weight 1
    TCP_CHECK {
          connetc_port 80
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 3
      }
  }
}

模拟故障关闭主要负载均衡器的网络,备用开始发挥作用。
在这里插入图片描述
此地址依旧可以访问。
在这里插入图片描述
那么LVS负载均衡DR模式和keepalived架构就搭建成功了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了python应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值