C.4. 故障恢复和独立子树


在很多企业级环境中,如果服务的组件失败,修复的正常动作是重启整个服务。例如:在 例 C.6 “服务 foo 常见故障恢复” 中,如果这个服务中定义的任意脚本失败,则正常动作是重启(重新定位或者禁用,视服务恢复策略而定)该服务。但在有些情况下,服务的某些部分可能是不重要的,可能有必要在尝试一般恢复前重启该服务的某一部分。要完成这个操作,您可以使用 __independent_subtree 属性。例如:在 例 C.7 “使用 __independent_subtree 属性对服务 foo 执行故障恢复” 中,可使用 __independent_subtree 属性完成以下动作:
  • 如果 script:script_one 失败,重启 script:script_one、script:script_two 和 script:script_three。
  • 如果 script:script_two 失败,则只重启 script:script_two。
  • 如果 script:script_three 失败,则重启 script:script_one、script:script_two 和 script:script_three。
  • 如果 script:script_four 失败,则重启整个服务。

例 C.6. 服务 foo 常见故障恢复

<service name="foo">
      <script name="script_one" ...>
          <script name="script_two" .../>
      </script>
      <script name="script_three" .../>
</service>

例 C.7. 使用 __independent_subtree 属性对服务 foo 执行故障恢复

<service name="foo">
      <script name="script_one" __independent_subtree="1" ...>
          <script name="script_two" __independent_subtree="1" .../>
          <script name="script_three" .../>
      </script>
      <script name="script_four" .../>
</service>
在有些情况下,如果服务的某个组件失败,您想要只禁用那个组件而不禁用整个服务,以避免影响使用那个服务其他组件的服务。从红帽企业版 Linux 6.1 发行本开始,您可以使用 __independent_subtree="2" 属性达到此目的,该属性将独立子树标为非关键(non-critical)。

注意

您可以在单一参考的资源中只使用 non-critical 标签。这个 non-critical 标签可在所有资源中使用,并可用于资源树的所有层,但在定义服务或者虚拟机时不应在顶层使用。
从红帽企业版 Linux 6.1 开始,您可以在该资源数的每个节点中为独立的子树设定最多重启和重启过期。您可以使用 以下属性设定这些阈值:
  • __max_restarts 设定在放弃努力前最多可承受的重启次数。
  • __restart_expire_time 以秒为单位设定在多长时间后不再尝试重启。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.