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   

内容概要:本文详细介绍了如何利用Simulink进行自动代码生成,在STM32平台上实现带57次谐波抑制功能的霍尔场定向控制(FOC)。首先,文章讲解了所需的软件环境准备,包括MATLAB/Simulink及其硬件支持包的安装。接着,阐述了构建永磁同步电机(PMSM)霍尔FOC控制模型的具体步骤,涵盖电机模型、坐标变换模块(如Clark和Park变换)、PI调节器、SVPWM模块以及用于抑制特定谐波的陷波器的设计。随后,描述了硬件目标配置、代码生成过程中的注意事项,以及生成后的C代码结构。此外,还讨论了霍尔传感器的位置估算、谐波补偿器的实现细节、ADC配置技巧、PWM死区时间和换相逻辑的优化。最后,分享了一些实用的工程集成经验,并推荐了几篇有助于深入了解相关技术和优化控制效果的研究论文。 适合人群:从事电机控制系统开发的技术人员,尤其是那些希望掌握基于Simulink的自动代码生成技术,以提高开发效率和控制精度的专业人士。 使用场景及目标:适用于需要精确控制永磁同步电机的应用场合,特别是在面对高次谐波干扰导致的电流波形失真问题时。通过采用文中提供的解决方案,可以显著改善系统的稳定性和性能,降低噪声水平,提升用户体验。 其他说明:文中不仅提供了详细的理论解释和技术指导,还包括了许多实践经验教训,如霍尔传感器处理、谐波抑制策略的选择、代码生成配置等方面的实际案例。这对于初学者来说是非常宝贵的参考资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

过客不予秋风

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

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

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

打赏作者

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

抵扣说明:

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

余额充值