14.3.2.2. 配置共享存储高可用性


此流程演示了如何为代理集群配置共享存储高可用性。

先决条件

  • 共享存储系统必须可以被实时和备份代理访问。

流程

  1. 将集群中的代理分组到 live-backup 组。

    在大多数情况下,实时备份组应该由两个代理组成:实时代理和备份代理。如果集群中有六个代理,则需要三个 live-backup 组。

  2. 创建第一个由实时代理和一个备份代理组成的实时备份组。

    1. 打开 live 代理的 <broker_instance_dir>/etc/broker.xml 配置文件。
    2. 如果您使用:

      1. 用于提供共享存储的网络文件系统,验证实时代理的分页、绑定、日志和大型消息目录指向备份代理也可以访问的共享位置。

        <configuration>
            <core>
                ...
                <paging-directory>../sharedstore/data/paging</paging-directory>
                <bindings-directory>../sharedstore/data/bindings</bindings-directory>
                <journal-directory>../sharedstore/data/journal</journal-directory>
                <large-messages-directory>../sharedstore/data/large-messages</large-messages-directory>
                ...
            </core>
        </configuration>
      2. 用于提供共享存储的数据库,确保主代理和备份代理能够连接到同一数据库,并且具有在 broker.xml 配置文件 的数据库存储 元素中指定的相同配置。下面显示了一个配置示例:

        <configuration>
          <core>
            <store>
               <database-store>
                  <jdbc-connection-url>jdbc:oracle:data/oracle/database-store;create=true</jdbc-connection-url>
                  <jdbc-user>ENC(5493dd76567ee5ec269d11823973462f)</jdbc-user>
                  <jdbc-password>ENC(56a0db3b71043054269d11823973462f)</jdbc-password>
                  <bindings-table-name>BINDINGS_TABLE</bindings-table-name>
                  <message-table-name>MESSAGE_TABLE</message-table-name>
                  <large-message-table-name>LARGE_MESSAGES_TABLE</large-message-table-name>
                  <page-store-table-name>PAGE_STORE_TABLE</page-store-table-name>
                  <node-manager-store-table-name>NODE_MANAGER_TABLE<node-manager-store-table-name>
                  <jdbc-driver-class-name>oracle.jdbc.driver.OracleDriver</jdbc-driver-class-name>
                  <jdbc-network-timeout>10000</jdbc-network-timeout>
                  <jdbc-lock-renew-period>2000</jdbc-lock-renew-period>
                  <jdbc-lock-expiration>15000</jdbc-lock-expiration>
                  <jdbc-journal-sync-period>5</jdbc-journal-sync-period>
               </database-store>
            </store>
          </core>
        </configuration>
    3. 配置 live 代理,以将共享存储用于其 HA 策略。

      <configuration>
          <core>
              ...
              <ha-policy>
                  <shared-store>
                      <master>
                          <failover-on-shutdown>true</failover-on-shutdown>
                      </master>
                  </shared-store>
              </ha-policy>
              ...
          </core>
      </configuration>
      failover-on-shutdown
      如果这个代理被正常停止,这个属性会控制备份代理是否应该存活并接管。
    4. 打开备份代理的 <broker_instance_dir>/etc/broker.xml 配置文件。
    5. 如果您使用:

      1. 用于提供共享存储的网络文件系统,验证备份代理的分页、绑定、日志和大型消息目录指向与实时代理相同的共享位置。

        <configuration>
            <core>
                ...
                <paging-directory>../sharedstore/data/paging</paging-directory>
                <bindings-directory>../sharedstore/data/bindings</bindings-directory>
                <journal-directory>../sharedstore/data/journal</journal-directory>
                <large-messages-directory>../sharedstore/data/large-messages</large-messages-directory>
                ...
            </core>
        </configuration>
      2. 用于提供共享存储的数据库,确保主代理和备份代理能够连接到同一数据库,并且具有在 broker.xml 配置文件 的数据库存储 元素中指定的相同配置。
    6. 配置备份代理,将共享存储用于其 HA 策略。

      <configuration>
          <core>
              ...
              <ha-policy>
                  <shared-store>
                      <slave>
                          <failover-on-shutdown>true</failover-on-shutdown>
                          <allow-failback>true</allow-failback>
                          <restart-backup>true</restart-backup>
                      </slave>
                  </shared-store>
              </ha-policy>
              ...
          </core>
      </configuration>
      failover-on-shutdown
      如果这个代理已激活,然后被正常停止,则此属性将控制备份代理(原始 live 代理)是否处于活动状态并接管。
      allow-failback

      如果发生故障转移,并且备份代理接管了 live 代理,则此属性会控制备份代理在重启并重新连接到集群时是否应该恢复到原始 live 代理。

      注意

      故障恢复适用于实时备份对(一个实时代理与单个备份代理对)。如果 live 代理配置了多个备份,则不会发生故障恢复。如果发生故障转移事件,备份代理将变为实时,下一次备份将变为备份。当原始 live 代理恢复在线时,它将无法启动故障恢复,因为现已在线的代理已存在备份。

      restart-backup
      此属性控制备份代理在恢复到 live 代理后是否可以自动重启。此属性的默认值为 true
  3. 为群集中剩余的每个 live-backup 组重复第 2 步。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.