1. 概述Pacemaker 高可用核心逻辑Pacemaker 高可用配置的核心流程遵循一个清晰的逻辑链条建立集群基础配置节点互信与集群通信。初始化集群启动集群服务并完成基础配置如禁用 STONITH。定义与管理资源创建资源代理、设置约束规则与监控策略。实现故障转移最终达成节点故障时资源的自动迁移与恢复。本文将详细拆解从 Pacemaker 集群搭建、资源组管理到整合 iSCSI 共享存储、MariaDB 数据库以及后续 Nginx 平滑升级与并发优化的完整操作流程。2. Pacemaker 集群基础配置2.1 节点准备与互信配置主机名解析在所有节点如server5,server8的/etc/hosts文件中添加彼此的主机名与 IP 地址解析。配置 SSH 免密登录# 生成密钥对在 server5 上执行ssh-keygen# 将公钥拷贝到 server8ssh-copy-id server8配置 NTP 时间同步确保所有节点时间一致避免集群因时间差出现裂脑。2.2 安装与启动集群软件安装必要软件包yuminstall-ypacemaker pcs psmisc policycoreutils-python# 在另一节点 server8 上也执行安装sshserver8yum install -y pacemaker pcs psmisc policycoreutils-python启动并启用 pcsd 服务systemctlenable--nowpcsd.service在两台节点上均需执行。设置hacluster用户密码此密码用于集群节点间认证。echo123456|passwd--stdinhaclustersshserver8echo 123456 | passwd --stdin hacluster2.3 创建并启动集群节点认证pcs cluster auth server5 server8创建集群配置server5 server8要加入集群的两台主机名必须能够互相解析–name mycluster给集群起一个名字类似项目名称可自定义。pcs cluster setup--namemycluster server5 server8启动集群并设置自启pcs cluster start--allpcs clusterenable--all验证集群状态crm_verify-L-V# 验证配置pcs status# 查看集群状态-L 在本地检查不连接集群-V 输出详细验证信息Verbose禁用 STONITH在测试环境pcs propertysetstonith-enabledfalse将 Pacemaker 集群的全局属性 stonith-enabled 的值修改为 falsepcs status查看集群状态3. 资源管理实战3.1 创建虚拟 IP (VIP) 资源pcs resource create vip ocf:heartbeat:IPaddr2ip192.168.150.100opmonitorinterval30s参数说明vip资源名称。ocf:heartbeat:IPaddr2资源代理类型用于管理虚拟 IP。ip192.168.150.100要飘移的虚拟 IP 地址。op monitor interval30s每 30 秒监控一次资源状态。3.2 节点备用模式与故障转移模拟将节点设为备用该节点上的资源会被迁移到其他在线节点。pcsnodestandby server8执行后vip资源会从server8迁移到server5。恢复节点pcsnodeunstandby server83.3 创建 Apache 服务资源组创建 Apache 资源需提前安装httpd但不要手动启动pcs resource create WebSite systemd:httpdopmonitorinterval1min若资源创建后状态异常可清理失败计数pcs resource cleanup WebSite创建资源组发现资源不在一个主机强制vip和WebSite运行在同一节点pcs resource groupaddwebgroup vip WebSiteServer8失效可以用pcs node standby server5迁移3.4 删除集群资源# 从资源组中移除资源pcs resource group remove webgroup# 删除资源本身pcs resource delete ClusterIP pcs resource delete WebSite4. 整合 iSCSI 共享存储与 MariaDB4.1 配置 iSCSI 服务端Target添加新硬盘如/dev/sdb并安装targetcli。使用targetcli交互式配置# 1. 创建块存储后端cd/backstores/block create my_disk /dev/sdb# 2. 创建 iSCSI 目标cd/iscsi create iqn.2026-07.com.example:storage1# 3. 创建 LUNcd/iscsi/iqn.2026-07.com.example:storage1/tpg1/luns create /backstores/block/my_disk# 4. 设置 ACL访问控制cd/iscsi/iqn.2026-07.com.example:storage1/tpg1/acls create iqn.2026-07.com.example:client4.2 配置 iSCSI 客户端Initiator在两台集群节点上安装客户端工具yuminstall-yiscsi-initiator-utils.x86_64配置 Initiator 名称与 ACL 匹配# 编辑 /etc/iscsi/initiatorname.iscsiInitiatorNameiqn.2026-07.com.example:client发现并登录存储# 发现目标iscsiadm-mdiscovery-tst-p192.168.150.140# 登录所有已发现目标iscsiadm-mnode-l4.3 在节点上准备数据库存储以server5为例server8操作类似。分区与格式化fdisk/dev/sdb# 创建分区如 /dev/sdb1mkfs.xfs /dev/sdb1安装 MariaDB 并挂载共享存储yuminstall-ymariadb-servermount/dev/sdb1 /var/lib/mysql/chownmysql.mysql /var/lib/mysql/# 先挂载再修改属主systemctl start mariadb.service测试后卸载为切换到另一节点准备systemctl stop mariadb.serviceumount/var/lib/mysql在server8上yuminstall-yiscsi-initiator-utils.x86_64vim/etc/iscsi/initiatorname.iscsiInitiatorNameiqn.2026-07.com.example:client iscsiadm-mdiscovery-tst-p192.168.36.174 iscsiadm-mnode-lyuminstall-ymariadb-servermount/dev/sdb1 /var/lib/mysql/测试完关闭mysql然后卸载存储4.4 创建高可用的数据库资源组整合iscsi存储和mariadb数据库# 1. 创建虚拟 IP 资源pcs resource create vip ocf:heartbeat:IPaddr2ip192.168.150.100opmonitorinterval30s# 2. 创建共享文件系统资源pcs resource create iscsidb ocf:heartbeat:Filesystemdevice/dev/sdb1directory/var/lib/mysqlfstypexfsopmonitorinterval1min# 3. 创建 MariaDB 服务资源pcs resource create mariadb systemd:mariadbopmonitorinterval1min# 4. 将三个资源绑定成组确保顺序启动vip - iscsidb - mariadbpcs resource groupadddbgroup vip iscsidb mariadb资源组保证了三个资源始终运行在同一节点并按指定顺序启动和停止。配置数据库远程访问权限GRANTALLON*.*TOroot%IDENTIFIEDBYpassword;flushprivileges;pcs node standby设置备用模式观察发现切换了rspcs node unstandby又切换回来5. Nginx 进阶配置与优化5.1 Nginx 平滑升级与版本隐藏编译前关闭调试模式编辑nginx-1.30.4/auto/cc/gcc找到-g选项并注释或删除。编译新版本tarzxf nginx-1.30.4.tar.gzcdnginx-1.30.4 ./configure --with-http_ssl_module --with-http_stub_status_modulemake# 不要 make install替换二进制并平滑升级cd/usr/local/nginx/sbin/cpnginx nginx.bakcp-f../../nginx-1.30.4/objs/nginx ./psax|grepnginx#获取当前主程序pidkill-USR2cat/usr/local/nginx/logs/nginx.pid# 启动新主进程kill-WINCHcat/usr/local/nginx/logs/nginx.pid.oldbin# 优雅关闭旧 worker 进程发现出错cd /usr/local/nginx/sbincp -f nginx.bak nginx备份的文件拷贝回去关掉nginx重新做一遍刚刚的程序即可但是有时候访问会到旧版本因为旧版本进程保留了关闭原worker进程但保留主进程为了回退kill -WINCH 11551kill -QUIT 11551可以关闭主进程4.版本回退如需bash cp -f nginx.bak nginx # 还原旧程序 kill -HUP cat /usr/local/nginx/logs/nginx.pid.oldbin # 重载旧配置 kill -WINCH cat /usr/local/nginx/logs/nginx.pid # 关闭新 worker kill -QUIT cat /usr/local/nginx/logs/nginx.pid # 退出新主进程5.隐藏 Nginx 版本号bash cd nginx-1.30.4 vim src/core/nginx.h # 修改 NGINX_VERSION 等宏定义 make clean ./configure ... make cp -f objs/nginx /usr/local/nginx/sbin/nginx关掉进程重启nginx版本隐藏5.2 nginx并发优化调整系统文件句柄数# 查看当前限制sysctl-a|grepfileulimit-a修改系统全局限制/etc/sysctl.conffs.file-max 188414 net.ipv4.ip_local_port_range 1024 65535 net.core.somaxconn 2048 net.ipv4.tcp_tw_recycle 1 net.ipv4.tcp_tw_reuse 1执行sysctl -p生效。配置写入文件可生效Linux下高并发socket最大连接数所受的各种限制▫ 修改用户进程可打开文件数限制/etc/security/limits.confnginx - nofile 65535▫ Linux系统级的最大打开文件数限制fs.file-max 188414 //和内存容量相关▫ 修改网络内核对TCP连接的有关限制net.ipv4.ip_local_port_range 1024 65535▫ 限制接收新 TCP 连接侦听队列的大小net.core.somaxconn 2048▫ 启用tcp连接timewait快速回收和重用net.ipv4.tcp_tw_recycle 1net.ipv4.tcp_tw_reuse 1修改用户进程限制/etc/security/limits.conf提高当前会话的 open files 限制nginx - nofile 655355.3 创建专用 Nginx 用户useradd-M-d/usr/local/nginx/ nginxusermod-s/sbin/nologin nginx在nginx.conf中设置user nginx;然后重启服务。使 worker 进程以 nginx 用户运行重启生效nginx -s stop nginx -t nginxps aux | grep nginx | grep -v grep5.4 配置 Nginx 负载均衡定义上游服务器池nginx.conf的http块内upstream my_app { server 192.168.150.138:80; server 192.168.150.140:80 weight1; # 默认使用轮询 (rr) 算法 }在server块中代理请求server { listen 80; server_name www.westos.org; location / { proxy_pass http://my_app; } }检查语法并重载nginx-tnginx-sreload客户端测试在测试机配置主机解析将域名www.westos.org写入server5的解析后面使用curl www.westos.org或ab工具测试。5.5 使用 ab 进行压力测试ab-n1000-c100http://your_server_ip/
企业数字化 ERP 产品动态
相关推荐
ARM Cortex-M4异常处理与μDMA控制器实战解析 1. 项目概述与核心价值在嵌入式系统开发,尤其是基于ARM Cortex-M系列处理器的项目中,异常处理和直接内存访问(DMA)是决定系统稳定性和性能上限的两大基石。很多开发者,尤其是从应用层转向底层或从单片机入门的朋友&… · 2026/10/16 8:41:00
AI原生应用开发:思维框架与工程实践指南 1. 项目概述:AI原生应用的本质与思维框架价值AI原生应用正在重塑我们解决问题的方式。与传统的"AI赋能"模式不同,原生应用从设计之初就将AI作为核心架构要素,这意味着我们需要全新的思维框架来驾驭这种变革。我在过去三年参与过12个… · 2026/10/16 12:08:54
局域网通信原理 --- IP与MAC与ARP与交换机(更新) 在这部分能学到,今天学的比较多网络参考模型复习OSI七层TCP/IP模型每层负责什么IP与MAC的角色区别IP:网络层逻辑地址,负责定位主机MAC:数据链路层物理地址,负责局域网传输ARP协议为什么知道IP还需要MACARP如何连接网络… · 2026/10/16 6:30:58
晋源电工证培训机构怎么考,证书含金量高吗?速看这份攻略 晋源电工证培训机构怎么考,证书含金量高吗?速看这份攻略 急需特种作业证才能上岗找工作,这年头,没有电工证,连面试机会都可能被拒之门外。特别是在建筑工地、工厂、电力公司这些地方, 晋源电工证培训机构… · 2026/11/13 4:50:12
北京高压电工证报名在哪考能解决外省证转过来的问题 北京高压电工证报名在哪考能解决外省证转过来的问题 之前考的证在外省能不能转过来?这是很多已经持有特种作业证但想在北京发展的朋友最关心的问题之一。特别是像高压电工证这类高风险岗位,证件的有效期和办理流程直接影响到你的职业生涯。今天我们就来聊聊… · 2026/11/13 4:50:12
电工证过期怎么复审?考电工证怎么刷题在哪考全攻略 电工证过期怎么复审?考电工证怎么刷题在哪考全攻略 证书过期了不知道怎么复审延期,这种事在工地、施工现场、项目部真的不少见。很多人辛辛苦苦考了电工证,结果因为工作调动、换岗或者疏忽,错过了复审时间,导致证书失效,重新考证不仅费钱,还影响日常工… · 2026/11/13 4:50:12
在濉溪县办电工证在哪多久拿证的工地人必看攻略 在濉溪县办电工证在哪多久拿证的工地人必看攻略 工地太忙根本没时间复习考试,这不是个例,而是大多数一线电工师傅的共同困扰。在濉溪县办电工证在哪?多久拿证?这些问题不仅关乎个人职业发展,也直接影响到能否顺利上岗。作为洛阳某劳务班组的负责人,我亲… · 2026/11/13 4:50:12
学开船需要考电工证吗多少钱才靠谱 学开船需要考电工证吗多少钱才靠谱 你是不是也跟很多工人一样,听说学开船要考电工证,但又不清楚到底是不是真的?怕被中介骗钱,又怕考了证没用,花了冤枉钱还耽误时间。其实, 学开船需要考电工证吗… · 2026/11/13 4:50:12
单位压电工证怎么举报良心建议:证书过期了不知道怎么复审延期 单位压电工证怎么举报良心建议:证书过期了不知道怎么复审延期 证书过期了不知道怎么复审延期?很多电工朋友都遇到过这种情况,尤其是单位压电工证,不仅关系到个人职业发展,也直接影响企业的安全生产资质。尤其是南阳卧龙区的应届工程类毕业生,刚出校门就… · 2026/11/13 4:49:12
电工证丢失还能补吗?千万别踩坑,丢了证等于失业 电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/12 14:09:01
电力电缆作业证直播报名入口与办理流程良心建议 电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/11 19:07:25
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/12 23:27:43
维修电公用考电工证吗 在哪考最靠谱 维修电公用考电工证吗 在哪考最靠谱 工地太忙根本没时间复习考试,你是维修电工,天天在项目上跑,连抽个空背个题都难。那问题来了—— 维修电公用考电工证吗 ?答案是: 必须考 。尤其是在当前施工行业,没有电工证,连进场都可能被拦下。而且,… · 2026/11/13 0:00:08
电工证是不是可以登高?含金量和证书范围你必须知道的事 电工证是不是可以登高?含金量和证书范围你必须知道的事 证书过期了不知道怎么复审延期,这事儿很多人遇到过,尤其是像你这样在郑州金水区做劳务班组负责人,手里握着几十个工人的证书,稍微一疏忽,就可能影响工程进度和公司信誉。特别是电工证是不是可以登… · 2026/11/13 0:00:08
鸡西电工证哪家下证快官方报名入口怎么找 鸡西电工证哪家下证快官方报名入口怎么找 你是不是也担心 学历不高怕报不上名 ?别急,今天我就来跟你说说, 鸡西电工证哪家下证快 ,还有 官方报名入口 到底怎么找,别让那些“代办”“代考”耽误了你的机会。… · 2026/11/13 0:00:08
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/12 4:35:34
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/12 4:36:01
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/12 21:15:21