小白带你学习linux的keepalived+lvs和keepalived双机热备(三十七)

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 小白带你学习linux的keepalived+lvs和keepalived双机热备(三十七)



一、keepalived+lvs作用

使用keepalived解决lvs的单点故障

高可用集群

二、调度器配置

lvs的配置是一主一从和两台WEB服务器分别IP为

mgt192.168.28.3

master 192.168.28.4

slave1 192.168.28.5

slave2 192.168.28.6

部署LVS主备调度器

调整master和backup的ARP参数(一致)全都安装一遍

vim /etc/sysctl.conf 
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.ens33.send_redirects = 0
sysctl -p

安装keepalived

安装ipvsadm

yum install -y keepalived
yum install -y ipvsadm
modprobe ip_vs

配置keepalived

主配置完毕直接传送给从

scp keepalived.conf 192.168.28.4:/etc/keepalived/keepalived.conf

global_defs {

  router_id NGINX1

}

vrrp_instance VI_1 {

   state MASTER

   interface ens33

   virtual_router_id 51

   priority 100

   advert_int 1

   authentication {

       auth_type PASS

       auth_pass 1111

   }

   virtual_ipaddress {

       192.168.28.200

   }

}

virtual_server 192.168.28.200 80 {

   delay_loop 6

   lb_algo rr

global_defs {

  router_id NGINX1

}

vrrp_instance VI_1 {

   state MASTER

   interface ens33

   virtual_router_id 51

   priority 100

   advert_int 1

   authentication {

       auth_type PASS

       auth_pass 1111

   }

   virtual_ipaddress {

       192.168.28.200

   }

}

virtual_server 192.168.28.200 80 {

   delay_loop 6

   lb_algo rr

   lb_kind DR

   #persistence_timeout 50

   protocol TCP

   real_server 192.168.28.5 80 {

       weight 1

       HTTP_GET {

           url {

             path /

           }

           connect_timeout 3

           nb_get_retry 3

           delay_before_retry 3

       }

   }

   real_server 192.168.28.6 80 {

       weight 1

       HTTP_GET {

           url {

             path /

           }

           connect_timeout 3

           nb_get_retry 3

           delay_before_retry 3

       }

   }

}

global_defs {

  router_id NGINX1

}

vrrp_instance VI_1 {

   state BACKUP

   interface ens33

   virtual_router_id 51

   priority 90

   advert_int 1

   authentication {

       auth_type PASS

       auth_pass 1111

   }

   virtual_ipaddress {

       192.168.28.200

   }

}

virtual_server 192.168.28.200 80 {

   delay_loop 6

   lb_algo rr

   lb_kind DR

   #persistence_timeout 50

   protocol TCP

   real_server 192.168.28.5 80 {

       weight 1

       HTTP_GET {

           url {

             path /

           }

           connect_timeout 3

           nb_get_retry 3

           delay_before_retry 3

       }

   }

   real_server 192.168.28.6 80 {

       weight 1

       HTTP_GET {

           url {

             path /

           }

           connect_timeout 3

           nb_get_retry 3

           delay_before_retry 3

       }

   }

}

创建文件夹这是在Linux系统中创建一个名为ipvsadm的文件。该文件是用于配置IPVS(IP Virtual Server)的工具,IPVS是一个Linux内核中的负载均衡器。在该文件中,可以设置IPVS的参数和规则,以便实现负载均衡和高可用性。

touch /etc/sysconfig/ipvsadm

启动master和backup的keepalived与ipvsadm

systemctl restart keepalived
 modprobe ip_vs
 ipvsadm -ln

查看lvs节点状态                  ipvsadm -ln

三、web节点配置

1、调整ARP参数

vim /etc/sysctl.conf

vim /etc/sysctl.conf 
sysctl -p

net.ipv4.conf.all.arp_ignore=1

net.ipv4.conf.all.arp_announce=2

net.ipv4.conf.default.arp_ignore=1

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce=2

slave1和slave2 分别安装nginx

yum -y install epel-release
yum -y install nginx
cd /usr/share/nginx/html/
echo nginx2 > index.html 
cat index.html

2、 配置虚拟IP地址

cd /etc/sysconfig/network-scripts/

cp ifcfg-lo ifcfg-lo:0

vim ifcfg-lo:0

web1与web2分别写一个index.html用于测试的网站根目录

web1与web2创建虚拟ip

cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.28.200
NETMASK=255.255.255.255
ONBOOT=yes
NAME=loopback:0

重启网络一下

systemctl restart network

3、添加回环路由

route add -host 192.168.28.200/32 dev lo:0

route add -host 192.168.28.200/32 dev lo:0


测试(下面可以看到测试成功,自动切换web1与web2)

 两个库测试阶段只有一个可以用

关闭主库

[root@localhost ~]# systemctl stop keepalived

[root@localhost ~]# systemctl stop ipvsadm

开启备库

[root@localhost ~]# systemctl restart keepalived

[root@localhost ~]# curl 192.168.28.200


一、keepalived双机热备

二、概述

1、  Keepalived 是一个基于 VRRP 协议来实现的 LVS 服务高可用方案,可以解决静态路由出现的单点故障问题。

2、  原理

在一个 LVS 服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但

是对外表现为一个虚拟 IP,主服务器会发送 VRRP 通告信息给备份服务器,当备份服务器收不到 VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟 IP,继续提供服务,从而保证了高可用性。

3、解决单点故障问题

三、安装

三台主机一台master两台slave

slave1和slave2安装keepalived

yum install -y keepalived

slave1

slave2

1、配置文件

/etc/keepalived/keepalived.conf

cp /etc/keepalived/keepalived.conf  /etc/keepalived/keepalived.conf.backup 
vim /etc/keepalived/keepalived.conf 
systemctl restart keepalived

2、配置项

router_id 1         定义节点id

state MASTER|BACKUP         定义节点主从状态

interface ens33        配置监听的网卡

virtual_router_id 51            同一个热备组要保持一致

priority 100            节点优先级

advert_int 1           多少秒进行一次心跳检测

authentication {

auth_type PASS

auth_pass 1111

}

keepalived节点的认证方式,同一个keepalived双机热备组一定要保持一致

virtual_ipaddress             配置VIP,即漂移地址

vrrp

四、功能模块

1、core

主进程启动

2、vrrp

vrrp协议:热备份路由协议

3、check

健康状态检测

五、配置双机热备

slave1和slave2

master

backup

六、配置共享文件

主master创建文件并分享出去

mkdir /opt/tuep
vim /etc/exports
systemctl restart nfs
showmount -e 192.168.28.4

回到slave1和slave2上查看一下并挂载全部操作一下

showmount -e 192.168.28.4
 mount 192.168.28.4:/opt/tuep /usr/share/nginx/html

回主服务master

echo nginx1 > index.html

回从服务器查看一下slava1和slave2

ll /usr/share/nginx/html/

先看slave1的IP a

主机查看一下

停止slave1的keepalived

去slave2查看IP a再去主机刷新一下

七、双机热备的脑裂现象

1、Keepalived配置里同一 VRRP实例

如果 virtual_router_id两端参数配置不一致也会导致裂脑问题发生。

2、vrrp实例名字不一致、优先级一致

3、防火墙打开,导致心跳无法正常通信

4、网卡故障       网卡进行多路复用

八、VIP无法通信

注释:vrrp_strict

相关实践学习
小试牛刀,一键部署电商商城
SAE 仅需一键,极速部署一个微服务电商商城,体验 Serverless 带给您的全托管体验,一起来部署吧!
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
打赏
0
0
0
0
3
分享
相关文章
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
104 11
【Linux快速入门(三)】Linux与ROS学习之编译基础(Cmake编译)
【Linux快速入门(三)】Linux与ROS学习之编译基础(Cmake编译)
458 2
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
本文详细介绍了在VMware虚拟机中安装CentOS 6.8的全过程。首先,需确保已安装VMware并开启V-CPU虚拟化功能,可通过BIOS设置或使用LeoMoon CPU-V工具检测。接着,下载CentOS镜像文件,并在VMware中新建虚拟机,配置CPU、内存、硬盘等参数。最后,加载ISO镜像启动虚拟机,按照提示完成CentOS的安装,包括语言、键盘、存储方式、地区、密码设置及硬盘分区等步骤。安装完成后,以root用户登录即可进入系统桌面,开始学习Linux命令和操作。
409 12
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
LVS+Keepalived:实现高效软负载均衡的利器
本文介绍了如何使用LVS(Linux Virtual Server)和Keepalived搭建高可用负载均衡集群。LVS通过不同调度算法将请求转发给后端服务器,而Keepalived基于VRRP协议实现服务高可用,避免IP单点故障。具体步骤包括环境准备、安装配置ipvsadm和Keepalived、启动服务及测试。文中还详细解释了配置文件中的关键参数,并提供了故障转移测试方法。最后,文章简要对比了软件、硬件和云负载均衡方案的特点,帮助读者选择合适的负载均衡策略。
1104 4
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
150 2
【Linux快速入门(二)】Linux与ROS学习之编译基础(make编译)
【Linux快速入门(二)】Linux与ROS学习之编译基础(make编译)
316 0
linux命令—tree
tree是一款强大的Linux命令行工具,用于以树状结构递归展示目录和文件,直观呈现层级关系。支持多种功能,如过滤、排序、权限显示及格式化输出等。安装方法因系统而异常用场景包括:基础用法(显示当前或指定目录结构)、核心参数应用(如层级控制-L、隐藏文件显示-a、完整路径输出-f)以及进阶操作(如磁盘空间分析--du、结合grep过滤内容、生成JSON格式列表-J等)。此外,还可生成网站目录结构图并导出为HTML文件。注意事项:使用Tab键补全路径避免错误;超大目录建议限制遍历层数;脚本中推荐禁用统计信息以优化性能。更多详情可查阅手册mantree。
linux命令—tree
linux命令—cd
`cd` 命令是 Linux/Unix 系统中用于切换工作目录的基础命令。支持相对路径与绝对路径,常用选项如 `-L` 和 `-P` 分别处理符号链接的逻辑与物理路径。实际操作中,可通过 `cd ..` 返回上级目录、`cd ~` 回到家目录,或利用 `cd -` 在最近两个目录间快速切换。结合 Tab 补全和 `pwd` 查看当前路径,能显著提升效率。此外,需注意特殊字符路径的正确引用及脚本中绝对路径的优先使用。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问