Date: 12月 4, 2025
使用 SIOS LifeKeeper 对非集群感知应用程序进行集群化
并非所有应用程序都是用这种方法构建的。聚类牢记这一点。事实上,大多数人并没有。但这并不意味着他们无法从中受益。高可用性由……提供的保护SIOS LifeKeeper如果你的应用程序可以停止、启动并在另一台服务器上运行,那么很有可能可以对其进行集群部署。
在着手实施之前,有一些关键的考虑因素,这些因素将决定集群实施是成功还是令人沮丧的反复试验。
-
将动态数据迁移到共享或复制存储
应用程序通常将日志、数据库、缓存和其他应用程序数据等动态数据存储在本地存储中。但在集群环境中,这种方式行不通。故障转移备用节点必须能够访问相同的数据,以便应用程序可以从上次中断的地方继续运行。
解决方案是将所有动态数据迁移到 SAN 环境中的共享磁盘或使用时的复制卷。SIOS 数据保管器静态文件(例如可执行文件)可以保留在本地,但任何在运行时发生变化的内容都应该存储在所有集群节点都可以访问的存储位置。
-
更新集群环境中的应用程序主机引用
许多应用程序通过名称、FQDN 或 IP 地址来引用本地系统。这在独立配置中没有问题,但在集群中,应用程序需要绑定到集群的虚拟 IP (VIP) 或通过其进行通信。
如果应用程序或其配置文件引用了:
- 本地主机
- 节点的主机名或完全限定域名
- 节点的静态 IP 地址
您可能需要更改对 VIP 或解析到 VIP 的主机名的引用。通常需要检查的位置包括注册表项、配置文件以及应用程序用于连接自身或其他服务的任何连接字符串。
-
编写自定义启动、停止和监控脚本
集群感知型应用程序包含指示集群如何启动、停止和监控服务的逻辑。非集群感知型应用程序则不包含。这就是 SIOS LifeKeeper 应用程序恢复工具包 (ARK) 的用武之地。
如果你的应用程序没有现成的脚本,你可以创建自定义脚本:
- 开始服务或流程
- 停止切换前将其清理干净
- 监视器例如,通过检查端口、日志文件或进程来评估其健康状况。
在某些情况下,保护应用程序就像启动和停止服务一样简单。针对这种情况,LifeKeeper 提供了快速服务保护 (QSP) 恢复工具包。使用 QSP,您只需选择要保护的服务,无需编写任何代码。LifeKeeper 将自动处理该服务的启动、停止和监控操作。
这些选项使得保护各种应用程序变得轻松便捷,从简单的应用程序到复杂的应用程序。视窗或者Linux在同一集群框架内,为复杂的多组件系统提供服务。
-
在所有集群节点上正确处理加密密钥
如果您的应用程序对静态数据进行加密,则集群中的每个节点都必须能够解密这些数据。这意味着加密密钥必须在所有节点上都可访问且保持一致。根据您的设置,这可能需要同步本地密钥库或使用集中式密钥管理解决方案。
关键在于,每个节点在激活时都必须能够安全且持续地访问加密密钥。否则,应用程序可能启动,但在故障转移后却无法访问其数据。
-
考虑故障转移后客户端如何重新连接
当应用程序从一个节点故障转移到另一个节点时,会有一个短暂的中断,因为新的活动节点需要接管 IP 地址并启动应用程序。对于连接到该服务的客户端,其行为完全取决于它们如何处理连接丢失。
如果客户端内置了重试逻辑,用户可能根本不会注意到中断。一旦VIP和服务恢复可用,客户端将自动重新连接。
如果客户端没有包含重试逻辑,用户在故障转移后可能需要手动刷新或重新启动连接。
了解客户端的行为方式并测试其在故障转移期间的响应至关重要。有时,只需添加一个简单的连接重试循环或调整连接超时设置,即可实现流畅的用户体验。
-
验证集群部署的应用程序许可要求
一个常被忽视的步骤是许可。当应用程序集群化时,它会安装在集群中的每个节点上,但一次只能运行一个实例,即活动实例。一些供应商提供专门的活动/被动集群许可,而另一些供应商则要求每个已安装的实例都需要一个许可。
部署前务必先咨询应用程序供应商。事先进行简短沟通可以避免日后花费大量时间处理许可问题。
-
对所有应用程序和集群组件进行全面测试
测试是任何集群项目中最重要但又最容易被忽视的环节之一。
不要只测试故障转移。在应用程序受到保护的情况下,测试其所有功能。这包括:
- 启动和关闭顺序
- 所有必需的服务和后台任务
- 任何读取、写入或缓存数据的组件
- 任何依赖于服务依赖项的进程
- 故障转移前、故障转移期间和故障转移后的客户端行为
如果应用程序使用自定义脚本或快速服务流程 (QSP),请确保每个步骤在负载下都能正常运行。这不仅能及早发现问题,还能确保解决方案在实际事件中能够正确运行。
为非集群感知应用实现高可用性
使用 SIOS LifeKeeper 对非集群感知应用程序进行集群化并不难,但确实需要一些规划。将数据迁移到共享或复制存储,将所有节点指向集群的虚拟 IP 地址 (VIP),编写启动、停止和监控逻辑脚本(或在适当情况下使用 QSP),确保所有节点上都可用加密密钥,并确认许可要求。
不要忘记测试您的客户端对故障转移的响应情况,因为真正的高可用性意味着您的服务器和用户始终保持连接。
按照这些步骤操作,您会发现即使是最“独立”的应用程序也能实现企业级高可用性。立即申请演示了解 SIOS LifeKeeper 如何为非集群感知应用程序带来可靠的高可用性。
作者:David Bermingham,SIOS 高级技术推广专家
经许可转载SIOS
