lvs负载均衡加keepdalived高可用集群

本文介绍了如何使用LVS和Keepalived在两台服务器上创建一个高可用负载均衡集群。通过配置LVS1为主服务器,LVS2为备份服务器,实现当主服务器故障时,从服务器能无缝接管。同时,详细展示了Web服务器的配置和测试过程,确保在主服务器恢复或Web服务器故障时,系统能正常运行。

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

lvs1

[root@LVS1 ~]# yum -y install keepalived ipvsadm

[root@LVS1 ~]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

 

global_defs {

   notification_email {

shoujian@163.com

   }

  notification_email_from fasong@163.com

   smtp_server smtp.163.com

   smtp_connect_timeout 30

   router_id LVS_MASTER

}

 

vrrp_instance VI_1 {

    state MASTER

    interface ens32

    virtual_router_id 51

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

192.168.200.254

    }

}

 

virtual_server 192.168.200.254 80{

    delay_loop 6

    lb_algo rr

    lb_kind DR

    protocol TCP

 

   real_server 192.168.200.114 80 {

weight 1

TCP_CHECK {

    connect_timeout 10

    #nb_get_retry 3

    delay_bedore_retry 3

    connect_port 80

}

    }

    real_server 192.168.200.115 80 {

weight 1

TCP_CHECK {

    connect_timeout 10

    #nb_get_retry 3

    delay_before_retry 3

    connect_port 80

}

    }

}

[root@LVS1 ~]# systemctl start keepalived

 

LVS2:

[root@LVS2 ~]# yum -y install keepalived ipvsadm

[root@LVS2 ~]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

 

global_defs {

   notification_email {

shoujian@163.com

   }

   notification_email_from fasong@163.com

   smtp_server smtp.163.com

   smtp_connect_timeout 30

   router_id LVS_BACKUP

}

 

vrrp_instance VI_1 {

    state BACKUP

    interface ens32

    virtual_router_id 51

    priority 99

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

192.168.200.254

    }

}

virtual_server 192.168.200.254 80{

    delay_loop 6

    lb_algo rr

    lb_kind DR

    protocol TCP

 

   real_server 192.168.200.114 80 {

weight 1

TCP_CHECK {

    connect_timeout 10

    #nb_get_retry 3

    delay_bedore_retry 3

    connect_port 80

}

    }

    real_server 192.168.200.115 80 {

weight 1

TCP_CHECK {

    connect_timeout 10

    #nb_get_retry 3

    delay_before_retry 3

    connect_port 80

}

    }

}

[root@LVS2 ~]# systemctl start keepalived

二,开启两台web服务器并编写web测试页

Web1:

[root@web1 ~]# rpm -q httpd

httpd-2.4.6-93.el7.centos.x86_64

[root@web1 ~]# systemctl start httpd

[root@web1 ~]# echo "RealServer1" > /var/www/html/index.html

 

Web2:

[root@Web2 ~]# rpm -q httpd

httpd-2.4.6-93.el7.centos.x86_64

[root@Web2 ~]# systemctl start httpd

[root@Web2 ~]# echo "RealServer2" > /var/www/html/index.html

 

 

  1. 配置RealServer并执行

 

Web1:

[root@web1 ~]# vim real.sh

#!/bin/bash

SNS_VIP=192.168.200.254

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

[root@web1 ~]# scp real.sh 192.168.200.115:/root

[root@web1 ~]# sh real.sh start

RealServer Start OK

 

Web2:

[root@web2 ~]# sh real.sh start

RealServer Start OK

用浏览器访问192.168.200.254

当主服务器故障时,从服务器会代替主服务器(从BACKUP->MASTER)

[root@LVS1 ~]# systemctl stop NetworkManager

[root@LVS1 ~]# systemctl stop keepalived

[root@LVS2 ~]# tail -f /var/log/messages

Jul  7 17:31:38 localhost Keepalived_vrrp[71401]: VRRP_Instance(VI_1) Entering BACKUP STATE

===========================================================

 

 

Jul  7 17:33:53 localhost Keepalived_vrrp[71401]: VRRP_Instance(VI_1) Transition to MASTER STATE

 

当主服务器恢复时,LVS2从服务器就又会变为BACKUP

[root@LVS1 ~]# systemctl start keepalived

[root@LVS2 ~]# tail -f /var/log/messages

………………………………………………………………………………………………

Jul  7 17:36:35 localhost Keepalived_vrrp[71401]: VRRP_Instance(VI_1) Entering BACKUP STATE

 

  1. 模拟WEB页面出现错误

当WEB1页面出错时,主服务器上只能看见WEB2的LVS

[root@web1 ~]# systemctl stop httpd

[root@LVS1 ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.200.254:80 rr

  -> 192.168.200.115:80           Route   1      1          3   

 

当WEB1修复时,主服务器上又会出现WEB1的LVS

[root@web1 ~]# systemctl start httpd

[root@LVS1 ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.200.254:80 rr

  -> 192.168.200.114:80           Route   1      1          3         

  -> 192.168.200.115:80           Route   1      1          3   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

过客不予秋风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值