SIOS SANless clusters

SIOS SANless clusters High-availability Machine Learning monitoring

  • Home
  • 产品
    • SIOS DataKeeper for Windows
    • SIOS Protection Suite for Linux
  • 新闻与活动
  • 服务器集群简单化
  • 成功案例
  • 联系我们
  • English
  • 中文 (中国)
  • 中文 (台灣)
  • 한국어
  • Bahasa Indonesia
  • ไทย

LifeKeeper 通用应用程序,用于高可用性和灾难恢复

Date: 6月 4, 2026

LifeKeeper Generic Applications for High Availability and Disaster Recovery

LifeKeeper 通用应用程序,用于高可用性和灾难恢复

保护业务关键型应用程序的成功关键

高可用性和灾难恢复必须涵盖广泛的应用场景。应用场景的数量与组织的数量一样多,远远超出任何单一解决方案的能力范围。高可用性和灾难恢复该解决方案旨在为各种场景提供开箱即用的支持。虽然许多常见应用程序都有丰富的可用高可用性和灾难恢复解决方案,但更具体的用例会限制可用于保护业务关键型应用程序的方案选择。

当然,LifeKeeper 无法开箱即用地涵盖所有用例。然而,LifeKeeper 提供了一个通用且灵活的框架,可以适应各种用例,从而弥补这一不足。虽然功能强大,但对于外行来说,这个框架可能显得复杂。本博客旨在帮助您在为特定用例构思通用应用程序恢复工具包时获得一些帮助。

相关博客和背景阅读推荐

本博客假定读者已熟悉 LifeKeeper 资源层级框架和 LifeKeeper 集群。如需了解这些主题的背景知识,请参阅下方列出的博客。此外,本博客还基于之前一篇关于如何利用 LifeKeeper 中的“快速服务保护应用程序恢复工具包”(QSP ARK)来弥合潜在用例与支持的保护机制之间差距的博客(链接如下)。

  • Linux集群/Windows 集群(本文由SIOS全球销售与市场营销副总裁霍格兰女士及SIOS市场营销团队撰写)
  • 应用智能与高可用性(本文由SIOS高级软件工程师Hendricks-Sinke女士撰写)
  • 资源行动和背景通用应用程序恢复工具包(本文由高级技术推广专家伯明翰先生撰写)
  • 在 GenApp 和 QSP 之间进行选择:为您的关键应用程序量身定制高可用性(本文由 SIOS 高级软件工程师 Hendricks-Sinke 女士撰写)。

然而,本博客将探讨当 QSP ARK 无法满足特定应用程序或用例的高可用性和灾难恢复需求时可用的选项。

应用概念化和方法定义

询问有关应用程序健康状况的最细微的问题

系统管理和软件工程都是非常注重细节的领域。一个问题背后可能包含诸多因素,因此很难找到一个简单直接的答案。在日常对话中,这很容易理解。但在代码中,复杂的答案却难以实现。提出“最小问题”的做法,就是将问题聚焦到尽可能小的层面,同时确保答案符合明确的标准。

“应用程序是否正在运行?”这是一个“大”问题,可能需要详细的回答。应用程序确实在运行,但没有响应。应用程序确实在运行,但它运行在另一个系统上,而不是你正在讨论的这个系统上。答案的标准很模糊,而且答案本身也很微妙——开发人员通常都不愿意处理这种细节。

“应用程序进程是否正在运行?应用程序是否正在积极响应查询?”

虽然表述起来更冗长,但这却是一个更小的问题。它清晰地定义了答案为“是”或“否”的条件。尽管这一改变有所改进,但它还不是“最小”的问题。之前的问题同样陷入了“X 和 Y 是否都为真?”的陷阱。“是”或“否”的答案无法提供足够的细节来独立判断 X 和 Y 的真假。最小的问题需要具体性;它必须能够全面洞察整体中最小元素的状态。“应用程序的进程是否在目标系统上运行?”这是一个小问题——在本例中,这就是最小的问题。请记住,可能存在多个“最小”的问题——在本例中,“应用程序是否响应查询”也符合条件。

虽然问题几乎可以无限细分,但还是存在一个限度。“最小的问题?”这句话的含义是“提出一个能够提供有用/可操作信息的最小问题”。问“我是否在去费城的火车上?”就足够了;进一步问“我是否在去费城的火车上,费城是哪个方向?”可以提供更多信息——但这并不能提供可操作的信息。我无法改变火车的行驶方向。我只能从“我是否在去费城的火车上?”这个问题的答案中判断是否需要打电话通知老板我会迟到。

虽然在这个例子中这一点很明显,但在开发通用应用程序时就不那么显而易见了。在保护通用应用程序的整个过程中,仍然需要着眼于全局。这和其他任何事情一样,都是一项技能——通过实践和协作,就能判断出哪些问题是最根本的问题,哪些细微之处不再能提供更多有用的信息。

通用应用程序恢复工具包的构建基础是将宽泛的问题分解为针对各个组成部分的更小、更具体、更有针对性的问题。每个“大问题”都可以通过对其中涉及的各个组成部分的解答综合起来得到解答。

一旦将问题分解成最小的组成部分,需要传递的信息就会变得清晰得多。了解了所需信息后,开发通用应用程序恢复工具包的剩余工作就变成了如何从现有信息中提取所需信息。必须利用已有的信息进行工作。

使用应用程序 API 和 LifeKeeper API

应用程序通常会提供图形用户界面 (GUI) 来显示信息或应用程序发生的更改。虽然这对于人为操作来说非常方便,但当管理工作由应用程序执行时,这种方式就显得不太实用。GUI 是供人使用的,而应用程序(为了避免大量的编程工作和不必要的复杂性)并不具备像人一样与另一个应用程序的 GUI 进行交互的能力。对于 LifeKeeper 和通用应用程序资源而言,通用应用程序恢复工具包的操作脚本与受保护的应用程序之间的信息交换必须通过应用程序编程接口 (API) 来完成。

LifeKeeper 提供自己的 API,用于与 LifeKeeper 本身、其层级结构以及层级结构中的资源进行交互。对于 LifeKeeper 的 API,产品内置的命令行实用程序在通用应用程序中最易于使用。一般建议仅使用 LifeKeeper 产品文档中概述的命令行实用程序(Linux 命令文档/Windows 命令文档应该使用这些命令。即使有了这项建议,使用这些命令时也应谨慎细致,以确保不会产生意外后果。

当然,LifeKeeper并非通用应用程序保护的唯一要素。受保护的应用程序还需要提供API,以便操作脚本能够利用该API实现预期结果。开发通用应用程序恢复工具包确实需要了解受保护应用程序的API,以及如何在构成该工具包的操作脚本中使用该API。

在恢复脚本中使用返回码和输出流

无论是 LifeKeeper 的 API 还是受保护的应用程序,信息主要以两种方式输出:

  • 返回代码
  • 输出流(有时称为“STDOUT/STDERR 输出”或简称“终端输出”)

返回码如何帮助判断成功或失败

从广义上讲,返回码提供了一种快速判断实用程序是否成功的方法。通常(在 shell 环境中),返回码 0 表示成功,而非零返回码表示失败。

根据应用场景的不同,返回码的具体值可以提供更多关于所遇到错误的信息。通常,只需检查返回码即可推断通过应用 API 执行的操作的结果。

在一些更复杂的情况下,返回码可能仅仅用于告知程序在调用应用程序 API 后应采取何种操作。当处理与底层元素状态相关的实用程序时,返回码尤其有用。

输出流如何提供更详细的应用程序信息

输出流虽然在程序中使用起来比较复杂,但有时对于信息交换或验证结果来说是必不可少的。例如,如果运行一个实用程序来获取系统主机名,仅凭返回码无法确定主机名是什么,除非该实用程序成功获取了主机名。在某些情况下,即使 API 实用程序已获取到请求的信息,它也可能返回成功返回码,但该信息的有效性仍需根据具体情况进行评估。

无论使用返回码还是输出流,开发通用应用程序都需要利用现有信息。在思考如何实现资源操作(下一节将详细介绍)或确定应用程序或 LifeKeeper 资源的相关信息时,请尝试从返回码和输出流的角度思考,而不是从图形用户界面 (GUI) 的角度思考。想象一下通过电话传递信息会很有帮助。也就是说,当实用程序的输入和输出能够准确地作为输入或输出进行报告时,信息传递、操作定义和场景处理才能达到最佳效果。

构建通用应用程序保护的基础

本节主要侧重于策略的概念性阐述。这些策略为思考应用程序奠定了基础,其核心在于如何通过对应用程序提出的问题和采取的操作的响应来进行分析。接下来,我们将更具体地探讨 LifeKeeper 以及通用应用程序恢复工具包的创建过程。同时,这些策略与其他技能一样,需要通过实践来提升。无论是在技术交流、编写流程文档,还是其他任何工作中,练习这些概念化策略不仅能带来短期益处,更能带来长期的益处。

需要帮助保护不符合标准高可用性模型的关键业务应用程序吗?SIOS 可以帮助您评估环境并确定合适的 LifeKeeper 方法。申请演示今天。

作者:Philip Merry,SIOS Technology Corp. 的 L3 支持工程师

经许可转载SIOS

Copyright © 2026 · Enterprise Pro Theme on Genesis Framework · WordPress · Log in