当前位置: 首页 > news >正文

LVS+Keepalived 双机热备

LVS+Keepalived 双机热备

  • Keepalived案例分析
  • Keepalived工具介绍
  • Keepalived工具介绍
    • 一、功能特点
  • 一、理解Keepalived实现原理
  • 实验报告
    • 资源列表
    • 一、安装keepalived以及ipvsadm

Keepalived案例分析

  • 企业应用中,单台服务器承担应用存在单点故障的危险
  • 单点故障一旦发生,企业服务将发生中断,造成极大的危害

Keepalived工具介绍

  • 转为LVS和HA设计的一款健康检查工具
    • 支持故障自动切换

Keepalived工具介绍

一、功能特点

  • 1.健康检查:Keepalived能够定期对服务器或应用进行健康检查,确保服务的正常运行。通过端口检查、URL检查等多种方式,Keepalived能及时发现并响应故障。
  • 2.故障自动切换:当检测到主服务器或服务出现故障时,Keepalived能够自动将业务切换到备份服务器,保证服务的连续性和高可用性。这种自动切换机制极大地减少了人工干预的需要,降低了故障恢复的时间。

一、理解Keepalived实现原理

Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能
在这里插入图片描述
VRRP(虚拟路由冗余协议)是针对服务器的一种备份解决方案

  • 由多台服务器组成一个热备组,通过共用的虚拟IP地址对外提供服务
  • 每个热备组内同时只有一台主服务器提供服务,其他路由器处于冗余状态
  • 若当前在线的服务器失效,则其他服务器会根据设置的优先级自动接替虚拟IP地址,继续提供服务

实验报告

资源列表

主机操作系统IP配置
lb01CentOS7192.168.72.1312C4G
lb02CentOS7192.168.72.1322C4G
web01CentOS7192.168.72.1332C4G
web02CentOS7192.168.72.1342C4G
## 基础环境 - 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  • 关闭内核安全机制
setenforce 0
sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
  • 修改主机名
hostnamectl set-hostname lb01
hostnamectl set-hostname lb02
hostnamectl set-hostname web01
hostnamectl set-hostname web02
  • CentOS7已经停止维护了,这里我用的是华为源
# 阿里
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 网易
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
# 华为
curl -o /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-anon.repo
  • 配置web节点
yum -y install httpd
# 第一次启动服务可以使用 --now 立即启动服务
systemctl enable httpd --nowecho 'This is web01' > /var/www/html/index.html
echo 'This is web02' > /var/www/html/index.html

一、安装keepalived以及ipvsadm

# 加载 ip_vs 模块
modprobe ip_vs# 查看 ip_vs 版本信息
cat /proc/net/ip_vsyum install ipvsadm keepalived -y
  • 配置lb
[root@lb01 ~]# 
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {router_id LB01
}vrrp_instance VI_1 {state MASTER            # 两个 DS,一个为 MASTER 一个为 BACKUPinterface ens33         # 当前 IP 对应的网络接口,通过 ifconfig 查询virtual_router_id 62    # 虚拟路由 ID(0-255),在一个 VRRP 实例中主备服务器 ID 必须一样priority 100            # 优先级值设定:MASTER 要比 BACKUP 的值大advert_int 1            # 通告时间间隔:单位秒,主备要一致authentication {        # 认证机制,主从节点保持一致即可auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.72.200       # VIP,可配置多个}
}# web 配置
virtual_server 192.168.72.200 80  {delay_loop 3                    # 设置健康状态检查时间lb_algo rr                      # 调度算法,这里用了 rr 轮询算法lb_kind DR                      # 这里测试用了 Direct Route 模式#persistence_timeout 50          # 持久连接超时时间,注意添加此项配置客户端连续请求时,请求到同一节点protocol TCPreal_server 192.168.72.133 80 {weight 1TCP_CHECK {connect_timeout 10   retry 3            # 旧版本为 nb_get_retry delay_before_retry 3  # 重试间隔3秒 connect_port 80}}real_server 192.168.72.134 80 {weight 1TCP_CHECK {connect_timeout 10retry 3delay_before_retry 3connect_port 80}}
}
# 将文件推送到 lb02 
[root@lb01 ~]# scp /etc/keepalived/keepalived.conf root@192.168.72.132:/etc/keepalived/
# 修改 lb02
[root@lb02 ~]# 
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {router_id LB02
}vrrp_instance VI_1 {state BACKUP            # 两个 DS,一个为 MASTER 一个为 BACKUPinterface ens33         # 当前 IP 对应的网络接口,通过 ifconfig 查询virtual_router_id 62    # 虚拟路由 ID(0-255),在一个 VRRP 实例中主备服务器 ID 必须一样priority 90             # 优先级值设定:MASTER 要比 BACKUP 的值大advert_int 1            # 通告时间间隔:单位秒,主备要一致authentication {        # 认证机制,主从节点保持一致即可auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.72.200       # VIP,可配置多个}
}# web 配置
virtual_server 192.168.72.200 80  {delay_loop 3                    # 设置健康状态检查时间lb_algo rr                      # 调度算法,这里用了 rr 轮询算法lb_kind DR                      # 这里测试用了 Direct Route 模式#persistence_timeout 50          # 持久连接超时时间,注意添加此项配置客户端连续请求时,请求到同一节点protocol TCPreal_server 192.168.72.133 80 {weight 1TCP_CHECK {connect_timeout 10   retry 3            # 旧版本为 nb_get_retry delay_before_retry 3  # 重试间隔3秒 connect_port 80}}real_server 192.168.72.134 80 {weight 1TCP_CHECK {connect_timeout 10retry 3delay_before_retry 3connect_port 80}}
}
  • lb节点
# 调整 proc 响应参数
## 对于 DR 群集模式来说,由于 LVS 负载调度器和各节点需要共用 VIP 地址,应该关闭 Linux 内核的重定向参数响应
## 数据包的入接口和路由后的指定的出接口是同一个接口,所以需要关闭重定向
echo 'net.ipv4.conf.all.send_redirects = 0' >> /etc/sysctl.conf
echo 'net.ipv4.conf.default.send_redirects = 0' >> /etc/sysctl.conf
echo 'net.ipv4.conf.ens33.send_redirects = 0' >> /etc/sysctl.conf
sysctl -p# 启动keepalived
systemctl start keepalived
systemctl enable keepalived
  • web节点
[root@web01 ~]# vi dr.sh
#!/bin/bash 
SNS_VIP=192.168.72.200
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:0echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "1" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/all/arp_announcesysctl -p >/dev/null 2>&1echo "RealServer Start OK";;
stop)ifconfig lo:0 downroute del $SNS_VIP >/dev/null 2>&1echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "0" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/all/arp_announceecho "RealServer Stoped";;
*)echo "Usage: $0 {start|stop}"exit 1
esac
exit 0
[root@web01 ~]# sh dr.sh start
RealServer Start OK 
for i in $(seq 1 300);do curl 192.168.72.200 ;sleep 1;done
http://www.lryc.cn/news/427674.html

相关文章:

  • Web Image scr图片从后端API获取基本实现
  • 2024音频剪辑指南:探索四大高效工具!
  • “CSS”第一步——WEB开发系列13
  • IEEE802网络协议和标准
  • vulnhub靶机 DC-9(渗透测试详解)
  • javaweb的新能源充电系统pf
  • 如何在桌面同时展示多个窗口
  • The Sandbox 游戏制作教程(第 5 部分):创建基于分类的系统
  • HTML浏览器缓存(Browser Cache)
  • 短剧APP系统,推动短剧市场发展
  • 嵌入式 | 嵌入式 Linux 系统使用摄像头
  • C 开源库之cJSON
  • ROW_NUMBER(), RANK(), DENSE_RANK() SQL排序函数图文详解
  • Spring IoCDI(下)—DI的尾声
  • 仕考网:考外省公务员可以调回本地吗?
  • 《工厂模式在软件开发中的深度剖析与应用》
  • 双向通信之Websocket
  • git学习使用碰到的问题1
  • JavaScript初级——Math
  • ffmpeg的基础命令
  • 二建机电工程实务试题内附答案
  • Redis的热key以及Big(大)key是什么?如何解决Redis的热key以及Big(大)key问题?
  • django学习入门系列之第九点《MySQL命令介绍一》
  • Mysql面试一
  • 模型优化之剪枝
  • JVM的组成
  • 快速上手 iOS Protocol Buffer
  • 每天一个数据分析题(四百八十)- 线性回归建模
  • 电动汽车和混动汽车DC-DC转换器的创新设计与测试方法
  • OriginPro快速上手指南:数据可视化与分析的利器