配置永久聊天的高可用性

永久聊天的高可用性概述

永久聊天的高可用性 (HA) 是一项可选功能,如果您使用的是永久聊天室并且具有使用 Presence 冗余组配置的系统冗余,则可以部署该功能。

永久聊天的高可用性可为您的永久聊天室添加冗余和故障转移功能。 如果 IM and Presence Service 节点或文字会议 (TC) 服务出现故障,由该服务托管的所有永久聊天室将自动由备份节点或 TC 服务托管。 故障转移后,Cisco Jabber 客户端可以无缝继续使用永久聊天室。

外部服务器

永久聊天(非高可用性)和永久聊天高可用性设置之间的主要区别在于外部数据库要求:

  • 如果永久聊天部署为无高可用性,外部数据库只会连接到单个聊天节点。 托管永久聊天室的每个节点都需要一个单独的外部数据库实例。 如果聊天节点发生故障,托管在该节点上的永久聊天室将变为不可用,直到聊天节点重新启动。

  • 如果部署了永久聊天的高可用性,则外部数据库实例将连接到子群集(Presence 冗余组)中的两个节点。 如果永久聊天节点出现故障,子群集中的备份节点会接管,因此聊天将继续,不会中断。

永久聊天的高可用性 - 群集间示例

下图显示的是群集间网络,其中仅在群集 1 中部署了永久聊天高可用性。 配置永久聊天高可用性之后,每个子群集都托管一个外部数据库。 群集 2 没有启用永久聊天高可用性,因此没有外部数据库要求。 但是,由于思科文字会议管理器服务在所有节点上运行,因此群集 2 中的用户可以加入托管在群集 1 中的永久聊天室。



在此示例中,仅群集 1 中的聊天室配置为托管永久聊天室。 您还可以在群集 2 节点上添加永久聊天支持以及外部数据库实例。 在这种情况下,任一群集中的所有用户都可以加入托管在任一群集中的任何节点上的永久聊天室。


永久聊天(无高可用性)与永久聊天高可用性要求对比

如果您在部署永久聊天室,思科建议您部署永久聊天高可用性,这样可为您的永久聊天室添加故障转移功能。 但是,这不是强制性的。

下表介绍了部署以及不部署高可用性的永久聊天之间的差异。

表 1. 部署以及不部署高可用性的永久聊天之间的比较

永久聊天(无高可用性)

永久聊天高可用性

数据库要求

对于托管永久聊天室的每个群集节点,您需要单独的外部数据库实例。 可以在同一外部数据库服务器上创建这些外部数据库实例。

建议:为获得最佳性能和可扩展性,请为 IM and Presence 群集的每个节点或冗余组部署唯一的逻辑外部数据库实例。 但是,这不是强制性的。

最低要求:您在 IM and Presence 群集间网络中必须至少有一个外部数据库实例用于永久聊天。 但是对于使用率较高的网络来说,这种部署可能不适合。

受支持的数据库类型

  • PostgreSql(版本 9.1 和更高版本)

  • Oracle

  • Microsoft SQL Server

对于托管永久聊天室的每个子群集(Presence 冗余组),您需要单独的外部数据库实例。 可以在同一外部数据库服务器上创建这些外部数据库实例。

建议:为获得最佳性能和可扩展性,请为 IM and Presence 群集的每个子群集部署单独的外部数据库实例。 但是,这不是强制性的。

最低要求:您在 IM and Presence 群集间网络中需要至少有一个外部数据库实例用于永久聊天高可用性。 但是对于使用率较高的网络来说,这种部署可能不适合。

受支持的数据库类型

  • PostgreSql(版本 9.1 和更高版本)

  • Oracle

  • Microsoft SQL Server(截至 11.5(1)SU2)

永久聊天节点出现故障时的行为

  • 在节点重新启动之前,无法访问托管在故障节点上的永久聊天室。

  • 如果配置了群集冗余,则故障节点上的用户将故障转移到子群集中的备份节点。 不过,他们无法从故障节点访问永久聊天室。

  • 永久聊天室故障转移到子群集中的备份节点。 用户可以在不中断服务的情况下继续发送消息。

  • 驻留在故障节点上的任何用户也会进行故障转移。

永久聊天的高可用性前提条件

在配置永久聊天的高可用性之前,请确保:

  • 启用了永久聊天室。 有关详细信息,请参阅配置聊天室设置

  • 在每个 Presence 冗余组中启用了高可用性。 有关详细信息,请参阅Presence 冗余组任务流程

  • 您已配置外部数据库。 有关数据库设置和支持信息,请参阅《IM and Presence Service 数据库设置指南》

永久聊天的高可用性任务流程

过程

  命令或操作 目的

步骤 1

设置外部数据库

对于托管永久聊天室的每个子群集,您需要单独的外部数据库实例。 这些单独的外部数据库实例可以托管在同一个数据库服务器上

步骤 2

添加外部数据库连接

从 IM and Presence Service 配置与外部数据库的连接。

步骤 3

验证永久聊天高可用性设置

确认您的永久聊天高可用性系统设置。

步骤 4

启动 Cisco XCP 文字会议管理器服务

如果 Cisco XCP 文字会议管理器服务在任何节点上停止,可使用此程序启动它。

步骤 5

合并外部数据库

可选:如果要从配置了多个外部数据库的持久聊天的早期版本升级,请使用此过程将外部数据库合并到单个数据库中。

设置外部数据库

要部署永久聊天的高可用性,您需要为托管永久聊天室的每个子群集提供单独的外部数据库实例。 这些单独的外部数据库实例可以托管在同一个数据库服务器上。

子群集是 IM and Presence 节点的冗余对(Presence 冗余组)。 在包含 6 个节点的 IM and Presence 群集中,最多可以有三个子群集。 如果在 6 个节点的 IM and Presence 群集中启用了永久聊天的高可用性,您将有三个外部数据库实例和三个子群集对。

您可以使用 PostgreSQL、Oracle 或 Microsoft SQL Server 进行外部数据库连接。 有关设置的详细信息,请参阅《IM and Presence Service 数据库设置指南》

下一步做什么

添加外部数据库连接

添加外部数据库连接

从 IM and Presence Service 配置到永久聊天高可用性外部数据库实例的连接。 确保子群集中的两个节点都分配给同一个唯一的逻辑外部数据库实例。

过程


步骤 1

在 Cisco Unified CM IM and Presence 管理中,选择消息 > 外部服务器设置 > 外部数据库

步骤 2

单击新增

步骤 3

数据库名称字段中,输入外部数据库实例的名称。

步骤 4

数据库类型下拉列表中,选择您要部署的外部数据库的类型。

步骤 5

输入数据库的用户名密码信息

步骤 6

主机名字段中,输入数据库的主机名和 IP 地址。

步骤 7

完成外部数据库设置窗口的剩余设置。 有关这些字段及其设置的帮助,请参阅联机帮助。

步骤 8

单击保存

步骤 9

重复此程序以创建到每个外部数据库实例的连接。


下一步做什么

验证永久聊天高可用性设置

验证永久聊天高可用性设置

此程序用于确认您的系统是否已设置好永久聊天高可用性。



如果您已为 Presence 冗余组(子群集)启用高可用性,并且聊天室配置包括永久聊天,则可以完成永久聊天的高可用性。


过程


步骤 1

确认在每个子群集中启用了高可用性:

  1. 从 Cisco Unified CM 管理中,选择系统 > Presence 冗余组

  2. 单击查找并选择您想要检查的 Presence 冗余组。

  3. 验证是否选中了启用高可用性复选框。 如果没有,请选中该复选框。

  4. 单击保存

  5. 为群集中的每个 presence 冗余组重复上述步骤。

步骤 2

确认是否已启用永久聊天:

  1. 在 Cisco Unified CM 管理中,选择消息 > 群聊和永久聊天

  2. 确认是否已选中启用永久聊天复选框。 如果没有,请选中该复选框。

  3. 单击保存

步骤 3

在 Cisco Unified CM 管理中,确认 Cisco XCP 文字会议管理器服务是否在所有群集节点上运行。

  1. 选择系统 > Presence 拓扑

  2. 对于每个群集节点,单击视图查看节点详细信息

  3. 节点状态下,验证 Cisco XCP 文字会议管理器服务是否已启动

  4. 在左侧的导航栏中,单击 Presence 拓扑返回至群集拓扑并重复上述步骤,直到您确认所有群集节点的状态。


下一步做什么

如果需要启用 Cisco XCP 文字会议管理器服务启动 Cisco XCP 文字会议管理器服务

启动 Cisco XCP 文字会议管理器服务

此程序用于启动 Cisco XCP 文字会议管理器服务。 此服务必须在所有群集节点上运行,这些节点上的用户才能够加入永久聊天室。

过程


步骤 1

Cisco Unified IM and Presence 功能配置中,选择工具 > 控制中心 - 功能服务

步骤 2

服务器下拉列表中,选择 IM and Presence 群集节点并单击前往

步骤 3

IM and Presence Service 下,选择 Cisco XCP 文字会议管理器并单击启动

步骤 4

单击确定

步骤 5

(可选)如果要验证服务是否已完全重新启动,请单击刷新


合并外部数据库

此程序用于合并外部数据库。



Microsoft SQL 数据库不支持合并外部数据库。


可选。 如果您已从 11.5(1) 之前的版本升级,并且使用多个外部数据库来管理冗余,则使用外部数据库合并工具将外部数据库合并到单个数据库中。

示例

如果您已从 11.5(1) 之前的版本升级,并且使用连接到单独外部数据库实例的每个永久聊天节点配置了永久聊天,请执行此程序以将子群集中的两个数据库合并至连接到两个节点的单个数据库中。

开始之前

  • 确保为 Presence 冗余组中的每个 IM and Presence Service 节点正确分配了两个源目标数据库。 这将验证两个架构是否有效。

  • 备份目标数据库的表格空间。

  • 确保在目标数据库中为新合并的数据库留有足够的空间。

  • 确保为源数据库和目标数据库创建的数据库用户具有运行这些命令的权限:

    • 创建表

    • 创建公共数据库链接

  • 如果您的数据库用户没有这些权限,可以使用以下命令授予他们:

    • PostgreSQL:

      CREATE EXTENTION—这将创建 dblink,并且需要超级用户或 dbowner 权限。 此后,您可通过运行以下命令来执行 dblink 的权限:

      GRANT EXECUTE ON FUNCTION DBLINK_CONNECT(text) to <user>

      GRANT EXECUTE ON FUNCTION DBLINK_CONNECT(text,text) to <user>

    • Oracle:

      GRANT CREATE TABLE TO <user_name>;

      GRANT CREATE PUBLIC DATABASE LINK TO <user_name>;

  • 如果您使用的是 PostgreSQL 外部数据库,确保在 pg_hba.conf 文件中配置了以下访问权限:

    • IM and Presence 发布方节点必须拥有每个外部数据库的完全访问权限。

    • 外部 PostgreSQL 数据库必须拥有每个数据库实例的完全访问权限。 例如,如果 192.168.10.1 上配置了外部数据库,则必须在 pg_hba.conf 文件中将每个数据库实例必须配置为 host dbName username 192.168.10.0/24 password

过程


步骤 1

登录到 IM and Presence Service 发布方节点上的 Cisco Unified CM IM and Presence 管理

步骤 2

在 Presence 冗余组每个 IM and Presence Service 节点的系统 > 服务窗口中停止 Cisco XCP 文字会议服务。

步骤 3

单击消息 > 外部服务器设置 > 外部数据库作业

步骤 4

 
此步骤适用于版本 15SU2 及更高版本。

单击“ 外部数据库合并作业 ”单选按钮。

步骤 5

如果想要查看合并作业列表,单击查找。 选择添加合并作业以添加新的作业。

步骤 6

合并外部数据库窗口中,输入以下详细信息:

  • 数据库类型下拉列表中选择 OraclePostgres
  • 选择两个源数据库的 IP 地址和主机名以及将包含合并数据的目标数据库。

如果选择 Oracle 作为数据库类型,则输入表格空间名称和数据库名称。如果选择 Postgres 作为数据库类型,则提供数据库名称。

示例

选择 DB1 作为当前正在使用的映射到持久聊天室的外部数据库。

选择 DB2 作为需要合并数据的外部数据库,这是目标数据库,DB2 数据库不应为空,并且应至少有一个满足 MINVALUE(1)条件的持久聊天室。

合并后,源数据库 DB1 和目标数据库 DB2 的数据将保存在目标数据库 DB2 中。 此外,DB1 和 DB2 将不会有重复的数据。

步骤 7

功能表窗格中,“文字会议 (TC)”复选框默认选中。 对于当前版本,其他选项不可用。

步骤 8

单击验证选定表

 

如果 Cisco XCP 文字会议服务未停止,您会收到一条错误消息。 一旦服务停止,验证将完成。

步骤 9

如果验证详细信息窗格中没有错误,单击合并选定表

步骤 10

合并成功完成后,系统会加载查找并列出外部数据库作业窗口。 单击“查找”刷新窗口并查看新的作业。

单击查找刷新窗口并查看新的作业。

如果要查看详细信息,单击作业的 ID

步骤 11

重新启动 Cisco XCP 路由器服务。

步骤 12

在两个 IM and Presence Service 节点上启动 Cisco XCP 文字会议服务。

步骤 13

您必须将新合并的外部数据库(目标数据库)重新分配到 Presence 冗余组


永久聊天的高可用性使用案例

以下流展示了故障转移和故障恢复的永久聊天高可用性。 本示例介绍的是具有两个节点的 IM and Presence 群集。 IM and Presence 群集最多可以有 6 个节点,允许三个子群集。 如果永久聊天室托管在所有节点上,则需要三个单独的外部数据库实例。



有了此增强功能,文字会议 (TC) 服务已成为关键服务。 因此,即使故障转移是由节点上的另一个关键服务(例如 Cisco XCP 路由器服务)发生故障引起的,TC 高可用性故障转移流仍保持不变。
图 1. 永久聊天高可用性结构

永久聊天高可用性故障转移使用案例

在本示例中,四个 IM and Presence Service 节点上有四个用户,具有两个高可用性 (HA) 对或子群集。 用户分配如下:

子群集 1

子群集 2

  • Andy 位于 1A 节点—1A 节点托管聊天室

  • Bob 位于 1B 节点

  • Catherine 位于 2A 节点

  • Deborah 位于 2B 节点

  1. 所有四个用户都在托管于 1A 节点上的同一聊天室聊天。

  2. 文字会议 (TC) 服务在 1A 节点上无法正常工作。

  3. 90 秒后,Server Recovery Manager (SRM) 确定 TC 关键服务出现故障,并启动自动故障转移。

  4. 1B 节点会从 1A 节点接管用户并转换到已执行故障转移,且关键服务没有运行状态,然后转换到高可用性状态在备份模式下运行

  5. 根据高可用性故障转移模型,Andy 将自动从 1A 节点注销并登录到备份的 1B 节点。

  6. 其他用户不受影响,可继续在聊天室中发布消息,但聊天室现由 1B 节点托管。

  7. Andy 将进入永久聊天室,可继续在聊天室中查看或发布消息。

高可用性永久聊天回退使用案例

在本示例中,四个 IM and Presence Service 节点上有四个用户,具有两个高可用性 (HA) 对或子群集。 用户分配如下:

子群集 1

子群集 2

  • Andy 位于 1A 节点—1A 节点托管聊天室

  • Bob 位于 1B 节点

  • Catherine 位于 2A 节点

  • Deborah 位于 2B 节点

  1. 所有四个用户都在托管于 1A 节点上的同一聊天室聊天。

  2. 文字会议 (TC) 服务在 1A 节点上无法正常工作。

  3. 1B 节点会从 1A 节点接管用户并转换到已执行故障转移,且关键服务没有运行,然后转换到高可用性状态在备份模式下运行

  4. 根据高可用性故障转移模型,Andy 将自动注销并登录到备份的 1B 节点。

  5. Bob、Catherine 和 Deborah 不受影响,可继续在聊天室中发布消息,但聊天室现由 1B 节点托管。

  6. IM and Presence Service 管理员启动手动回退。

  7. 1A 节点将转换到收回,1B 节点转换到回退

  8. Andy 从 1B 节点注销。 Bob、Catherine 和 Deborah 可继续使用永久聊天室,但一旦发生回退,聊天室将移回 1A 节点。

  9. 1B 节点将从高可用性状态回退转换为正常,并卸载其对等节点聊天室。

  10. 1A 节点将从高可用性状态收回转换为正常,并重新加载聊天室。

  11. Andy 将进入永久聊天室,可继续在聊天室中查看或发布消息。