0

0

Linux 高可用架构部署与维护

舞夢輝影

舞夢輝影

发布时间:2026-02-20 17:39:33

|

802人浏览过

|

来源于php中文网

原创

linux高可用架构需部署pacemaker+corosync集群,配置stonith防脑裂,定义虚拟ip与nfs资源并设置共置/顺序约束,定期维护状态并执行故障转移测试。

linux 高可用架构部署与维护

如果您需要在 Linux 环境中构建具备故障自动转移与服务持续可用能力的系统,则需围绕集群资源管理、心跳检测、共享存储及服务监控等核心组件进行协同配置。以下是实现 Linux 高可用架构部署与维护的关键操作步骤:

一、部署 Pacemaker + Corosync 集群

Pacemaker 是开源的集群资源管理器,Corosync 提供底层消息传递与成员资格管理,二者组合构成主流高可用基础平台。该方案依赖于节点间可靠的心跳通信与统一的资源配置策略。

1、在所有节点上安装 pacemaker 和 corosync 软件包,例如在 CentOS/RHEL 系统中执行 yum install -y pacemaker corosync pcs

2、使用 pcs cluster auth node1 node2 -u hacluster -p password 完成节点间认证,其中 hacluster 是默认管理用户。

3、执行 pcs cluster setup --name mycluster node1 node2 初始化集群配置并生成 corosync.conf。

4、启动集群服务:依次运行 pcs cluster start --allpcs cluster enable --all

二、配置 STONITH 设备防止脑裂

STONITH(Shoot The Other Node In The Head)机制通过强制关闭异常节点保障数据一致性,是避免双主写入导致文件系统损坏的必要防护手段。

1、确认已安装对应 Fencing 插件,如使用 IPMI 则需安装 fence-agents-ipmilan 包。

2、在集群中添加 fence 设备:执行 pcs stonith create myfence fence_ipmilan ipaddr=192.168.1.100 login=admin passwd=secret pcmk_host_list="node1 node2"

3、启用 STONITH 并验证状态:运行 pcs property set stonith-enabled=true 后,使用 pcs stonith show 检查设备注册情况。

三、定义并管理高可用资源

资源定义决定哪些服务由集群调度控制,包括 IP 地址、文件系统挂载点、数据库实例等。Pacemaker 依据资源约束与顺序规则确保服务按预期启动与迁移。

1、添加虚拟 IP 资源:执行 pcs resource create virtual_ip IPaddr2 ip=192.168.1.100 cidr_netmask=24 op monitor interval=30s

2、添加 NFS 共享存储资源:使用 pcs resource create nfs_fs Filesystem device="/dev/sdb1" directory="/srv/nfs" fstype=xfs op monitor interval=60s

ShopNC网上商店单用户版
ShopNC网上商店单用户版

ShopNC单用户商城系统是面向独立卖家而开发的B2C商城系统。系统运行稳定高效,功能强大,突出个性化配置要求,可以根据不同的营销策略,从模板、栏目、功能上进行调整,满足各类客户的需要。系统部署快捷方便,减轻了使用者的技术负担,简单的维护操作免去了用户的后顾之忧。本系统前台开放源码,后台加密的。产品特点快速安装,维护简单 分布提示安装,即使不熟悉技术的用户也可以自主安装系统。后台融合数据库等功能管

下载

3、设置资源共置约束,使虚拟 IP 与 NFS 文件系统始终运行在同一节点:pcs constraint colocation add virtual_ip with nfs_fs INFINITY

4、设定启动顺序,确保文件系统先于 IP 地址上线:pcs constraint order nfs_fs then virtual_ip

四、维护集群健康状态

日常维护聚焦于日志审查、配置同步、资源状态校验及节点在线性确认,以提前识别潜在故障点并维持集群稳定性。

1、查看集群整体状态:运行 pcs status 获取当前节点状态、资源分配及最近失败事件摘要。

2、检查 Corosync 成员列表:执行 corosync-quorumtool -s 验证法定人数是否满足,输出中 expected 和 actual 值应一致。

3、定位资源异常原因:使用 pcs resource debug-start 模拟启动过程并捕获详细错误输出。

4、同步配置至全部节点:修改任意节点上的集群配置后,执行 pcs cluster sync 推送 corosync.conf 至其他成员。

五、执行手动故障转移测试

定期触发受控的服务迁移可验证资源约束有效性、Fencing 可靠性及应用恢复能力,是保障高可用设计落地的关键实践环节。

1、查询当前资源所在节点:pcs status resources,记录 virtual_ip 所在主机名。

2、将资源强制迁移到另一节点:pcs resource move virtual_ip node2,该命令会自动生成位置约束。

3、等待资源完成迁移后,清除临时约束:pcs resource clear virtual_ip,恢复原始调度逻辑。

4、模拟节点宕机场景:在 node1 上执行 pcs cluster stop node1,观察 pcs status 输出中资源是否自动漂移至 node2 并保持 active 状态。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
resource是什么文件
resource是什么文件

Resource文件是一种特殊类型的文件,它通常用于存储应用程序或操作系统中的各种资源信息。它们在应用程序开发中起着关键作用,并在跨平台开发和国际化方面提供支持。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

169

2023.12.20

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

374

2023.06.29

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2093

2023.08.14

vb怎么连接数据库
vb怎么连接数据库

在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。

356

2023.08.31

MySQL恢复数据库
MySQL恢复数据库

MySQL恢复数据库的方法有使用物理备份恢复、使用逻辑备份恢复、使用二进制日志恢复和使用数据库复制进行恢复等。本专题为大家提供MySQL数据库相关的文章、下载、课程内容,供大家免费下载体验。

259

2023.09.05

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

329

2023.10.09

数据库对象名无效怎么解决
数据库对象名无效怎么解决

数据库对象名无效解决办法:1、检查使用的对象名是否正确,确保没有拼写错误;2、检查数据库中是否已存在具有相同名称的对象,如果是,请更改对象名为一个不同的名称,然后重新创建;3、确保在连接数据库时使用了正确的用户名、密码和数据库名称;4、尝试重启数据库服务,然后再次尝试创建或使用对象;5、尝试更新驱动程序,然后再次尝试创建或使用对象。

418

2023.10.16

vb连接access数据库的方法
vb连接access数据库的方法

vb连接access数据库方法:1、使用ADO连接,首先导入System.Data.OleDb模块,然后定义一个连接字符串,接着创建一个OleDbConnection对象并使用Open() 方法打开连接;2、使用DAO连接,首先导入 Microsoft.Jet.OLEDB模块,然后定义一个连接字符串,接着创建一个JetConnection对象并使用Open()方法打开连接即可。

440

2023.10.16

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

796

2026.02.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.4万人学习

Git 教程
Git 教程

共21课时 | 3.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号