高可用和负载均衡架构(LVS DR模式,keepalived高可用,LVS NAT模式,Pacemaker高可用)

发布时间:2026/9/15 1:12:37

高可用和负载均衡架构(LVS DR模式,keepalived高可用,LVS NAT模式,Pacemaker高可用) 目录修改静态网卡配置防火墙关闭和禁止开机自启LVS负载架构LVS DR模式VS调度器配置在vs(server1)安装ipvsadm创建虚拟IPVIP添加虚拟服务向虚拟服务添加真实服务器RSRS真实服务器配置(用server2举例server3同理)在server2安装apache服务rs也需要添加viparptables测试keepalived高可用master配置server1backup配置server4测试LVS NAT模式server1配置双网卡开启路由机制加载 nat 模块加载 lvs规则RS真实服务器配置测试Pacemaker高可用主机配置免密配置ntp时间同步安装集群软件启动pcsd服务两台机器分别设置 hacluster 相同密码确认两台服务器 pcsd 服务正常运行配置corosync重新执行集群认证server1 执行启动集群校验集群创建集群资源节点失效备援修改静态网卡配置vim /etc/sysconfig/network-scripts/ifcfg-eth0参数修改BOOTPROTOstatic或者nonedhcp为动态获取改为静态IPADDR192.168.239.xxxNETMASK255.255.255.0 /NETMASK24GATEWAY192.168.239.2 #默认网关DNS1192.168.239.2 #首选DNS服务器重载网卡ifdown eth0ifup eth0nmcli 命令行直接修改网络nmcli connection modify不需要手动改配置文件改完直接up即可磁盘文件会自动同步写入防火墙关闭和禁止开机自启用firewalld防火墙举例systemctl status firewall #查看状态systemctl stop firewalld #关闭防火墙systemctl disable firewalld #禁止开机自启具体可以看我的博客下面是链接iptables和firewalld防火墙简介和操作LVS负载架构LVSLinux Virtual Server内核四层负载均衡基于IPVS工作在传输层TCP/UDP核心四种模式NAT、DR、TUN、FULLNAT术语约定 VS调度器DirectorRS后端真实服务器Real ServerVIP虚拟 IP对外访问地址RIP真实服务器内网 IPDIP调度器后端内网 IP准备四台主机一台VS两台RS,一台测试主机名IPVIP角色server1192.168.239.132192.168.239.100调度器VSserver2192.168.239.133192.168.239.100真实服务器RSserver3192.168.239.134192.168.239.100真实服务器RSserver4192.168.239.135测试机四台主机间进行域名解析vim /etc/hostsLVS DR模式VS调度器配置ipvsadm 是 Linux 下用于管理 IPVSIP Virtual ServerIP 虚拟服务器 的命令行工具主要用于构建 LVSLinux Virtual Server负载均衡集群。它允许管理员配置和管理虚拟服务、真实服务器后端节点以及负载均衡策略。在vs(server1)安装ipvsadm[rootserver1 ~]# yum install -y ipvsadm创建虚拟IPVIP选用连接不了的IP地址作为VIP这里使用使用192.168.239.100可以选用其他IP但需要ping一下是否成功若失败则该IP可作为VIP添加vip[rootserver1 ~]# ip addr add 192.168.239.100/24 dev eth0此时VIP添加成功用server4 ping 192.168.239.100(VIP)发现可以成功添加虚拟服务参数解释-A添加虚拟服务-t指定 TCP 协议的虚拟服务格式VIP:端口其他协议-uUDP、-f防火墙标记用于复合协议-s指定负载均衡调度算法常用算法rr轮询Round Robinwrr加权轮询Weighted RRlc最少连接Least Connectionswlc加权最少连接Weighted LCsh源地址哈希Source Hash会话保持dh目标地址哈希Destination Hash[rootserver1 ~]# ipvsadm -A -t 192.168.239.100:80 -s rr虚拟服务添加成功向虚拟服务添加真实服务器RS参数解释-a添加真实服务器-t指定关联的虚拟服务需与添加虚拟服务时的 -t 一致-r指定真实服务器地址格式RIP:端口转发模式必选其一-gDR 模式Direct Routing直接路由性能最优-mNAT 模式Network Address Translation网络地址转换-iTUN 模式IP TunnelingIP 隧道跨网段场景-w指定权重值越大分配的请求越多仅用于加权算法[rootserver1 ~]# ipvsadm -a -t 192.168.239.100:80 -r 192.168.239.133:80 -g[rootserver1 ~]# ipvsadm -a -t 192.168.239.100:80 -r 192.168.239.134:80 -g保存和恢复配置# 保存当前配置到文件默认路径/etc/sysconfig/ipvsadmipvsadm-save /etc/sysconfig/ipvsadm# 从文件恢复配置ipvsadm-restore /etc/sysconfig/ipvsadm系统重启后配置会丢失需保存并设置开机自动恢复通常通过 systemctl enable ipvsadm 实现RS真实服务器配置(用server2举例server3同理)在server2安装apache服务yum install -y httpd[rootserver2 ~]# echo server2 /var/www/html/index.html设置开机自启systemctl enable --now httpdrs也需要添加vip[rootserver2 ~]# ip a a 192.168.239.100/24 dev eth0arptablesarptables是 Linux 用户空间工具用于操作ARP 报文过滤规则工作在二层 ARP 协议以太网 ARP内核模块arptables_filter作用管控ARP 请求 / 应答报文实现ARP 防火墙、防 ARP 欺骗、静态 ARP 绑定、屏蔽非法 ARP 广播。安装arptables[rootserver2 ~]# yum install arptables查看规则# 查看所有链的规详细信息arptables -L -n添加规则[rootserver2 ~]# arptables -A INPUT -d 192.168.239.100 -j DROP-A INPUT向INPUT链添加一条规则-d192.168.239.100匹配目的IP为192.168.239.100的arp包-j DROP对匹配的报文执行丢弃操作[rootserver2 ~]# arptables -A OUTPUT -s 192.168.239.100 -j mangle --mangle-ip-s 192.168.239.133AOUTPUT向 OUTPUT 链本机发出的 ARP 报文添加一条规则。-s 192.168.36.100匹配源 IP 为 192.168.239.100 的 ARP 报文即本机以该 IP 发送的 ARP 包。-j mangle对匹配的报文执行 “修改” 操作--mangle-ip-s 192.168.239.133试图将 ARP 报文中的源 IP 地址修改为 192.168.239.133。保存和恢复规则[rootserver2 ~]# arptables-save /etc/sysconfig/arptables[rootserver2~]# systemctl enable arptables测试curl 192.168.239.100 或者 for i in {1..10}; do curl 192.168.239.100; donekeepalived高可用LVS VIP192.168.239.100LVS 主节点server1MASTERLVS 备节点新增一台调度器BACKUP示例 IP 假设192.168.239.135RealServerserver2192.168.239.133server3192.168.239.134Keepalived 主配置文件默认路径为 /etc/keepalived/keepalived.conf主、备节点配置差异主要在 state角色和 priority优先级数值越高越优先成为主节点。master配置server1server1清除资源[rootserver1 ~]# ip a d 192.168.239.100/24 dev eth0[rootserver1 ~]# ipvsadm -C安装高可用软件[rootserver1 ~]# yum install -y keepalivedvim /etc/keepalived/keepalived.confsystemctl enable --now keepalived设置开机重启并立即重启查看资源是否就绪测试keepalived对后端RS的健康检测[rootserver2 ~]# systemctl stop httpd故障的RS会自动从调度列表中被摘除192.168.239.133被摘除再次启动服务[rootserver2 ~]# systemctl start httpdbackup配置server4server4安装高可用软件[rootserver4 ~]# yum install -y keepalived从server1拷贝配置文件此时在server1操作[rootserver1 ~]# scp /etc/keepalived/keepalived.conf server4:/etc/keepalived/配置server4文件server1 和 server4 是主备调度器不能两台都是 MASTERserver4需要改为state BACKUP同时检查priority优先级这里改为50保证主节点优先级100数字更大重启并设置开机自启[rootserver4 ~]# systemctl enable --now keepalived测试停止server1上服务[rootserver1 ~]# systemctl stopkeepalived.service查看资源是否自动迁移到server4测试成功LVS NAT模式NATNetwork Address Translation网络地址转换核心调度器修改数据包 IP 地址实现转发。客户端请求 → 目标 IPVIP调度器虚拟 IPLVS 调度器接收报文修改目标 IP 为后端 RS 真实 IP转发给 RealServerRealServer 收到请求回包必须经过调度器RS 网关指向调度器内网 IP调度器收到 RS 响应修改源 IP 为 VIP返回给客户端调度器Director双网卡eth0(对内内网)192.168.239.132 DIPeth1(对外外网)192.168.10.132 VIP公网虚拟IP默认网关写在 eth1 配置文件 GATEWAY192.168.10.100RealServer网关192.168.239.132调度器内网IPNAT强制要求RS1192.168.239.133RS2192.168.36.134server1配置双网卡调度器是双网卡eth0内网192.168.239.132 ❌配置文件里不要写 GATEWAYeth1外网192.168.10.132 ✅唯一默认网关写在 eth1 配置文件内绝对禁止 eth0、eth1 同时配置 GATEWAY避免生成两条默认路由引发路由紊乱。开启路由机制vim/etc/sysctl.confnet.ipv4.ip_forward 1执行命令生效sysctl ­--p加载 nat 模块modprobe iptable_nat注如果不加载此模块也可以在第一次访问时成功但是会在再次访问时出现延迟过长或访问超时现象加载 lvs规则ipvsadm -C ipvsadm -A -t 192.168.10.132:80 -s rripvsadm -a -t 192.168.10.132:80 -r 192.168.239.133:80 -mipvsadm -a -t 192.168.10.132:80 -r 192.168.239.134:80 -mRS真实服务器配置RS真实服务器配置在 LVS NAT 模式下真实服务器RS的网关必须指向调度器的内网 IPDIP。这是 NAT 模式的核心要求。因为客户端请求经过调度器的 NAT 转换后源 IP 会变成调度器的内网 IP。RS 处理完请求后响应报文必须返回给调度器由调度器将源 IP 改回 VIP然后再返回给客户端。配置步骤1. 修改网卡配置文件在两台 RS 服务器server2: 192.168.239.133 和 server3: 192.168.239.134上编辑网卡配置文件确保网关指向调度器的内网 IP192.168.239.132。重启网络服务修改配置后重启网络服务使更改生效systemctl restart network service network restart验证网关配置使用ip route或route -n命令检查默认路由是否指向调度器。# View the routing table ip route show # or route -n The expected output should contain a line similar to: default via 192.168.239.132 dev eth0配置完成后需要进行连通性测试从 RS 上 ping 调度器的内网 IP192.168.239.132确保网络连通。从客户端访问 VIP192.168.10.132:80观察请求是否被正确转发到 RS。在调度器上检查连接状态使用ipvsadm -ln查看连接分发情况。测试访问地址 curl 192.168.10.132观测现象多次刷新页面轮流出现 RS1 / RS2 页面rr 轮询生效Pacemaker高可用Pacemaker 是 Linux 环境下主流的 开源高可用集群管理工具核心作用是通过监控集群节点和服务状态实现 “故障自动检测与切换”确保业务服务持续运行即服务不中断。它通常与 Corosync负责集群通信与成员管理配合使用组成完整的高可用集群解决方案。主机配置免密下面是免密如何设置SSH服务SSH免密访问scp和rsync命令远程文件同步systemd-journald服务查找日志systemd-journald 日志持久化-CSDN博客配置ntp时间同步配置时间同步使用阿里云时间修改 Chrony 时间同步服务使用阿里云时间服务器vim /etc/chrony.conf注释原有默认服务器添加阿里云时间源server ntp1.aliyun.com iburshtimedatectl 命令的作用查看系统当前时间、时区确认 NTP service: active表示时间同步服务已启用安装集群软件[rootserver1 ~]# yum install -y pacemaker pcs psmisc policycoreutils-python[rootserver4 ~]# yum install -y pacemaker pcs psmisc policycoreutils-python启动pcsd服务[rootserver1 ~]#systemctl enable --now pcsd.service[rootserver4 ~]#systemctl enable --now pcsd.service[rootserver1 ~]#echoredhat| passwd --stdin hacluster[rootserver4 ~]#echoredhat| passwd --stdin hacluster两台机器分别设置 hacluster 相同密码echo redhat | passwd --stdin hacluster确认两台服务器 pcsd 服务正常运行两边都执行systemctl restart pcsd systemctl status pcsd状态必须显示active (running)配置corosync重新执行集群认证server1 执行pcs cluster auth server1 server4输入用户名hacluster密码redhatserver1: Authorized server4: Authorized[rootserver1 ~]# pcs cluster setup --name mycluster server1 server4启动集群[rootserver1 ~]# pcs cluster start --all[rootserver1 ~]# pcs cluster enable --all校验集群[rootserver1 ~]# crm_verify -L -V[rootserver1 ~]# pcs property set stonith-enabledfalse[rootserver1 ~]# pcs status创建集群资源[rootserver1 ~]# pcs resource create vip ocf:heartbeat:IPaddr2 ip192.168.239.100 op monitor interval30s手动移除server1上的vip后集群会自动检测并修复[rootserver1 ~]# ip a d 192.168.239.100/24 dev eth0节点失效备援[rootserver1 ~]# pcs node standbyserver1失效后资源自动迁移至server4恢复server1[rootserver1 ~]# pcs node unstandby
延伸阅读

更多相关文章

2026/9/15 1:12:35

【00004】

二、C语言2.3流程控制1.顺序结构程序从main函数开始执行&#xff0c;执行到main函数结束&#xff0c;整个代码运行结束2.分支结构&#xff08;1&#xff09;关系运算符“>”、“<”、“”、“&#xff01;”、“>”、“<”关系运算符最终结果只有1&#xff08;true…

2026/9/14 3:11:04

BBWEYY AI设计与可视化编辑能力测评——从建站效率、视觉统一、自由度与内容质量展开分析,含零代码SAAS、AI编程、源码定制交付

BBWEYY AI设计与可视化编辑能力测评 ——从建站效率、视觉统一、自由度与内容质量展开分析 摘要 本文对BBWEYY的AI建站、AI生图、商品内容生成、品牌视觉统一和像素级可视化编辑能力进行专项测评。结果显示&#xff0c;该体系能够显著提高标准网站和商城的制作效率&#xff…

2026/9/12 3:25:47

AI Agent框架核心模块解析与实战设计技巧

1. AI Agent框架概述&#xff1a;从零开始理解智能体架构第一次接触AI Agent这个概念时&#xff0c;我脑海中浮现的是科幻电影里的智能助手。但实际开发中&#xff0c;AI Agent远不止如此——它是一个能够感知环境、自主决策并执行任务的智能系统。就像搭积木一样&#xff0c;一…

2026/9/15 1:11:20

CCS集成母排:新能源电池连接系统,为何与半导体芯片无关?

我前两天刷到一条互动平台的问答&#xff0c;有位投资者问爱克股份&#xff0c;公司布局的CCS集成母排业务&#xff0c;是否已经应用在半导体、芯片相关的场景。爱克股份的回复也很干脆&#xff1a;公司CCS集成母排产品暂未应用于半导体、芯片相关场景。这个问答放在平时可能没…

2026/9/15 1:11:20

Python条件语句if详解:从基础到高级应用

1. Python条件查询语句if基础解析在Python编程中&#xff0c;if语句是最基础也是最重要的控制流工具之一。它允许程序根据特定条件决定执行哪些代码块&#xff0c;这种能力使得程序能够"做决策"&#xff0c;从而处理各种复杂场景。作为Python DAY04的学习内容&#x…

2026/9/15 1:11:20

Kvasir-SEG+YOLOv8单类别息肉检测实战指南

简介&#xff1a;本资源是面向医学图像AI初学者与计算机视觉实践者的YOLO格式息肉检测专用数据集&#xff0c;基于Kvasir-SEG公开数据构建&#xff0c;专为单类别&#xff08;息肉&#xff09;目标检测任务优化&#xff0c;可直接用于模型训练、验证与可视化调试。压缩包共2000…

2026/9/15 1:11:20

Vue3后台管理系统模板全解析:从工程骨架到实践落地

简介&#xff1a;这是一份基于 Vue3 与 ElementPlus 的后台管理系统模板&#xff0c;面向需要快速搭建中后台前端项目的开发者&#xff0c;用来省去从零进行工程搭建、组件选型与目录规划的重复工作。压缩包共包含 62 个文件&#xff0c;主要类型有 Vue 单文件组件、TypeScript…

2026/9/15 1:11:20

STM32双路直流有刷电机驱动:H桥与PWM控制实战

简介&#xff1a;一套面向嵌入式开发者的STM32双路直流有刷电机驱动完整工程代码&#xff0c;覆盖GPIO初始化、PWM调速、正反转切换与异常保护等关键控制逻辑&#xff0c;适合需要快速实现运动控制或学习HAL库电机驱动方法的开发者。压缩包共236个文件&#xff0c;以121个.h头文…

2026/9/15 1:06:20

专科生必备:8款实测有效的降AI检测率工具推荐

1. 项目概述作为一名专科院校的学生&#xff0c;在学术写作和日常作业中&#xff0c;降低AI检测率&#xff08;即让内容看起来更像人工创作&#xff09;已经成为一项必备技能。随着AI写作工具的普及&#xff0c;教育机构对AI生成内容的检测也越来越严格。本文将分享8款经过实测…

2026/9/14 2:17:50

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述&#xff1a;一台黑屏的拯救者Y7000&#xff0c;到底卡在哪一步&#xff1f; 联想拯救者Y7000系列笔记本&#xff0c;从2018年第一代搭载i5-8300H开始&#xff0c;到后来的i7-9750H、i7-10750H、i5-11400H&#xff0c;再到2023年款的R7-7840HS&#xff0c;它始终是学…

2026/9/15 0:01:16

AI英语单词APP开发:自适应学习算法与移动端优化实践

1. 项目概述 作为一名在移动应用开发领域摸爬滚打多年的老手&#xff0c;我最近完成了一个AI英语单词APP的开发项目。这个项目将传统单词记忆方法与现代AI技术相结合&#xff0c;打造了一款能够智能适应不同用户学习习惯的英语学习工具。 市面上大多数单词APP都存在一个通病&a…

2026/9/15 0:01:16

Flutter与OpenHarmony结合开发手语学习APP实战

1. 项目背景与核心价值作为一名同时接触过Flutter和OpenHarmony的开发者&#xff0c;最近我完成了一个基于Flutter for OpenHarmony的手语学习APP实战项目。这个项目最大的特点在于实现了跨平台框架与国产操作系统深度结合的创新实践——用Flutter开发的应用能完美运行在OpenHa…

2026/9/15 0:01:16

六个月成为机器人工程师:从ROS2到SLAM的实战路径

1. 六个月的紧迫感从哪来&#xff1a;先搞清楚你要成为哪种机器人工程师说实话&#xff0c;六个月的期限并不是一个宽松的时间线。市面上任何一本正经的机器人学教材都超过五百页&#xff0c;ROS2的官方文档可以翻到你怀疑人生&#xff0c;再加上ABB、KUKA这些工业机器人厂家动…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行&#xff0c;Type-C接口算是典型的“看着简单&#xff0c;做起来全坑”的东西。光引脚就24个&#xff0c;高低速信号、电源、控制线全部塞在一个小小的连接器里&#xff0c;如果PCB布局不做规划&#xff0c;打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码