常設チャットの高可用性の設定

持続チャットにおける高可用性の概要

常設チャットの高可用性(HA)は常設チャットルームを使用していて、システムの冗長性がプレゼンス冗長グループで構成されている場合に展開できるオプションの機能です。

常設チャットの高可用性により、常設チャットルームに冗長性とフェイルオーバー機能が追加されます。IM and Presence Service ノードの障害またはテキスト会議(TC)サービスの障害時は、サービスによりホストされているすべての常設チャット ルームが自動的にバックアップ ノードまたは TC サービスによってホストされます。フェールオーバー後、Cisco Jabber クライアントはシームレスに常設チャットルームを使用し続けることができます。

外部データベース

常設チャット(非 HA)と常設チャット HA のセットアップの主な違いは、外部データベースの要件に関するものです。

  • 常設チャットが HA なしで展開されている場合、外部データベースは個々のチャットノードにのみ接続します。常設チャットルームをホストする各ノードには、個別の外部データベースインスタンスが必要です。チャットノードに障害が発生した場合、そのノードでホストされていた常設チャットルームは、チャットノードが復旧するまで使用できなくなります。

  • 常設チャットの高可用性がデプロイされている場合、外部データベースインスタンスはサブクラスタ(プレゼンス冗長グループ)内の両方のノードに接続します。常設チャットノードに障害が発生した場合、サブクラスタ内のバックアップノードが引き継ぎ、チャットを中断することなく続行できます。

常設チャットの高可用性 - クラスタ間の例

次の図は、常設チャットの高可用性がクラスタ 1 にのみデプロイされているクラスタ間ネットワークを示しています。常設チャットの高可用性により、各サブクラスターは外部データベースをホストします。クラスタ 2 では、常設チャットの高可用性が有効になっていないため、外部データベースは必要ありません。ただし、Cisco Text Conference Manager サービスはすべてのノードで実行されているため、クラスタ 2 のユーザは、クラスタ 1 でホストされている常設チャットルームに参加できます。


(注)  


この例では、クラスタ 1 のチャットルームだけが常設チャットルームをホストするように構成されています。外部データベースインスタンスとともに、クラスタ 2 ノードに常設チャットサポートを追加することもできます。この場合、どちらのクラスタのすべてのユーザも、どちらのクラスタの任意のノードでホストされている常設チャットルームに参加できます。


常設チャット(非 HA)と常設チャット HA の要件の比較

常設チャットルームを展開している場合、常設チャットルームにフェールオーバー機能を追加するだけでなく、常設チャットの高可用性を展開することをお勧めします。これは必須ではありません。

次の表に、高可用性の有無にかかわらずデプロイされた常設チャットの違いを示します。

表 1. 高可用性ありとなしの常設チャットの比較

常設チャット(HA なし)

常設チャット HA

データベース要件

永続チャットルームをホストするクラスタノードごとに、個別の外部データベースインスタンスが必要です。これらの外部データベースインスタンスは、同じ外部データベースサーバ上に作成できます。

おすすめ:最適なパフォーマンスとスケーラビリティを得るには、IM and Presence クラスタの各ノードまたは冗長グループに固有の論理外部データベースインスタンスを導入してください。これは必須ではありません。

最低必要条件 IM and Presence クラスタ間ネットワークでの常設チャットには、少なくとも 1 つの外部データベースインスタンスが必要です。ただし、この配置は使用率の高いネットワークには不十分な場合があります。

サポートされているデータベースの種類

  • PostgreSql(バージョン 9.1 以降)

  • Oracle

  • Microsoft SQL Server

常設チャットルームをホストする各サブクラスタ(プレゼンス冗長グループ)ごとに、個別の外部データベースインスタンスが必要です。これらの外部データベースインスタンスは、同じ外部データベースサーバ上に作成できます。

おすすめ:最適なパフォーマンスとスケーラビリティを得るには、IM and Presence クラスタの各ノードに個別の外部データベースインスタンスを導入してください。これは必須ではありません。

最低必要条件 IM and Presence クラスタ間ネットワーク上の常設チャット HA には、少なくとも 1 つの外部データベースインスタンスが必要です。ただし、この配置は使用率の高いネットワークには不十分な場合があります。

サポートされているデータベースの種類

  • PostgreSql(バージョン 9.1 以降)

  • Oracle

  • Microsoft SQL Server(11.5(1)SU2 以降)

常設チャットノードが失敗したときの動作

  • 障害が発生したノードでホストされている常設チャットルームは、ノードが復旧するまでアクセスできません。

  • クラスタの冗長性が設定されている場合、障害が発生したノードに所属するユーザは、サブクラスタ内のバックアップノードにフェイルオーバーします。ただし、障害が発生したノードから常設チャットルームにアクセスすることはできません。

  • 常設チャットルームは、サブクラスタ内のバックアップノードにフェイルオーバーします。ユーザはサービスを中断することなくメッセージングを継続できます。

  • 障害が発生したノードをホームとするユーザもフェイルオーバーします。

常設チャット前提条件の高可用性

常設チャットの高可用性を設定する前に、次のことを確認してください。

  • 常設チャット ルームが有効である。詳細については、チャット ルーム設定を設定しますを参照してください。

  • 高可用性は各プレゼンス冗長グループで有効です。詳細については、プレゼンス冗長グループのタスク フローを参照してください。

  • 外部データベースを設定済です。データベースの設定とサポート情報については、IM and Presence サービスのデータベースセットアップガイドを参照してください。

常設チャットにおける高可用性のタスクフロー

手順

  コマンドまたはアクション 目的

ステップ 1

外部データベースのセットアップ

常設チャットルームがホストされているサブクラスタごとに、個別の外部データベースインスタンスが必要です。これらの別々の外部データベースインスタンスは、同じデータベースサーバでホストできます。

ステップ 2

外部データベースの接続の追加

IM and Presence サービスからの外部データベースへの接続を設定します。

ステップ 3

常設チャットにおける高可用性の確認

常設チャットの高可用性のシステム設定を確認してください。

ステップ 4

Cisco XCP Text Conference Manager サービスの起動

Cisco XCP Text Conference Manager サービスがいずれかのノードで停止した場合は、この前提条件を使用して開始します。

ステップ 5

外部データベースのマージ

オプション: 常設チャットが複数の外部データベースで構成されていた以前のリリースからアップグレードする場合は、この手順を使用して外部データベースを単一のデータベースにマージします。

外部データベースのセットアップ

常設チャットの高可用性を展開するには、常設チャットルームがホストされている各サブクラスターごとに個別の外部データベースインスタンスが必要です。これらの個別の外部データベースインスタンスは、同じデータベースサーバ上でホストすることができます。

サブクラスタは、IM and Presence ノード(プレゼンス冗長グループ)の冗長ペアです。6 ノードの IM and Presence クラスタに最大 3 つのサブクラスタを含めることができます。6 ノードの IM and Presence クラスタで常設チャットの HA が有効になっている場合、3 つの外部データベースインスタンスと 3 つのサブクラスタペアが必要です。

外部データベース接続には、PostgreSQL、Oracle、または Microsoft SQL Server を使用できます。設定の詳細については、IM and Presence サービスのデータベース設定ガイドを参照してください。

次のタスク

外部データベースの接続の追加

外部データベースの接続の追加

IM and Presence サービスから常設チャットの高可用性外部データベースインスタンスへの接続を設定します。両方のプレゼンス冗長グループ ノードが同じ一意の論理外部データベース インスタンスに割り当てられていることを確認します。

手順


ステップ 1

[Cisco Unified CM IM およびプレゼンス管理(Cisco Unified CM IM and Presence Administration)]から、[メッセージ(Messaging)] > [外部サーバ設定(External Server Setup)] > [外部データベース(External Databases] を選択します。

ステップ 2

[新規追加] をクリックします。

ステップ 3

[データベース名(Database Name)] フィールドに、外部データベースインスタンスの名前を入力します。

ステップ 4

データベースの種類ドロップダウンリストから、展開する外部データベースの種類を選択します。

ステップ 5

データベースのユーザ名パスワード情報を入力します。

ステップ 6

[Hostname] フィールドにホストのデータベースのホスト名または IP アドレスを入力します。

ステップ 7

外部データベース設定ウィンドウの残りの設定を完了します。フィールドとその設定のヘルプについては、オンラインヘルプを参照してください。

ステップ 8

[保存] をクリックします。

ステップ 9

この手順を繰り返して、各外部データベースインスタンスへの接続を作成します。


次のタスク

常設チャットにおける高可用性の確認

常設チャットにおける高可用性の確認

この手順を使用して、システムが常設チャットの高可用性に設定されていることを確認します。


(注)  


プレゼンス冗長グループ(サブクラスタ)の高可用性を既に有効にしていて、チャットルーム設定に常設チャットが含まれている場合は、常設チャットの高可用性が完了している可能性があります。


手順


ステップ 1

各サブクラスタで高可用性が有効になっていることを確認します。

  1. Cisco Unified CM の管理から、[システム(System)] > [プレゼンス冗長グループ(Presence Redundancy Groups)]を選択します。

  2. 検索をクリックして、確認したいプレゼンス冗長グループを選択します。

  3. [高可用性を有効にする(Enable High Availability)] チェックボックスがチェックされていることを確認します。チェックボックスがオフの場合は、チェックを付けます。

  4. [保存] をクリックします。

  5. クラスタ内の各プレゼンス冗長グループに対してこれらの手順を繰り返します。

ステップ 2

常設チャットが有効になっていることを確認します。

  1. [Cisco Unified CM の管理(Cisco Unified CM Administration)] から、[メッセージング(Messaging)] > [グループチャットと常設チャット(Group Chat and Persistent Chat)] を選択します。

  2. [常設チャットの有効化(Enable Persistent Chat)] チェック ボックスがチェックされていることを確認します。チェックボックスがオフの場合は、チェックを付けます。

  3. [保存] をクリックします。

ステップ 3

Cisco Unified CM の管理ページから、Cisco XCP テキスト会議マネージャサービスがすべてのクラスタノードで実行されていることを確認します。

  1. [システム(System)] > [プレゼンス トポロジ(Presence Topology)] を選択します。

  2. 各クラスタノードで、表示をクリックして、ノードの詳細を表示する

  3. ノードステータスで、Cisco XCP テキスト会議マネージャサービスが開始済であることを確認します。

  4. 左側のナビゲーションバーで、プレゼンス トポロジをクリックして、クラスタトポロジに戻り、すべてのクラスタノードのステータスを確認するまで上記の手順を繰り返します。


次のタスク

Cisco XCP テキスト会議マネージャサービスを有効にする必要がある場合、Cisco XCP Text Conference Manager サービスの起動

Cisco XCP Text Conference Manager サービスの起動

この手順を使用して Cisco XCP Text Conference Manager サービスを起動します。これらのノードのユーザが常設チャットルームに参加できるようにするには、このサービスがすべてのクラスタノードで実行されている必要があります。

手順


ステップ 1

[Cisco Unified IM and Presenceのサービスアビリティ(Cisco Unified IM and Presence Serviceability)] で、[ツール(Tools)] > [コントロールセンター-機能サービス(Control Center - Feature Services)] を選択します。

ステップ 2

[サーバ(Server)] ドロップダウンリストから、IM and Presence クラスタ ノードを選択して、[移動(Go)] をクリックします。

ステップ 3

[IM and Presenceサービス(IM and Presence Services)] で、[Cisco XCPテキスト会議マネージャ(Cisco XCP Text Conference Manager)] を選択し、[開始(Restart)] をクリックします。

ステップ 4

OKをクリックします。

ステップ 5

(任意)サービスが完全に再起動されたことを確認するには、[更新(Refresh)] をクリックします。


外部データベースのマージ

外部データベースをマージするには、以下の手順を使用します。


(注)  


Microsoft SQL データベースに関しては、外部データベースのマージはサポートされていません。


これはオプションです。11.5 (1)より前のリリースからアップグレードし、冗長性を管理するために複数の外部データベースが使用されていた場合は、外部データベースマージツールを使用して外部データベースを単一のデータベースにマージします。

11.5 (1)より前のリリースからアップグレードした場合で、各常設チャットノードを別々の外部データベースインスタンスに接続するように常設チャットを設定した場合は、この手順を使用してサブクラスタ内の 2 つのデータベースを両方のノードに接続する単一データベースにマージします。

始める前に

  • 2 つのソースおよび対象データベースが、プレゼンス冗長グループの各 IM and Presence Service ノードに正しく割り当てられていることを確認します。これにより両方のスキーマが有効であることが確認されます。

  • 対象データベースのテーブルスペースをバックアップします。

  • 対象データベース上に、新しくマージされたデータベースが十分に収まる領域があることを確認します。

  • ソース データベースと対象データベース用に作成されたデータベース ユーザに、次のコマンドを実行する権限があることを確認します。

    • CREATE TABLE

    • CREATE PUBLIC DATABASE LINK

  • データベース ユーザにこれらの権限がない場合は、次のコマンドを使用して付与することができます。

    • PostgreSQL:

      CREATE EXTENTION:dblink を作成し、スーパーユーザ権限または dbowner 権限を要求します。その後、次のコマンドを実行して dblink の EXECUTE 権限を付与します。

      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 ユーザ名#192.168.10.0 / 24 パスワード

手順


ステップ 1

IM and Presence Service パブリッシャノード上の Cisco Unified CM IM and Presence アドミニストレーション にログインします。

ステップ 2

プレゼンス冗長グループの各 IM and Presence Service ノードの [システム(System)] > [サービス(Services)] ウィンドウで Cisco XCP Text Conference Service を停止します。

ステップ 3

[メッセージング(Messaging)] > [外部データベースの設定(External Server Setup)] > [外部データベース ジョブ(External Database Jobs)] をクリックします。

ステップ 4

(注)  

 
この手順は、リリース 15SU2 以降に適用されます。

[外部データベースのマージジョブ] ラジオボタンをクリックします。

ステップ 5

マージ ジョブのリストを表示するには、[検索(Search)]をクリックします。新しいジョブを追加するには、[マージ ジョブの追加(Add Merge Job)]を選択します。

ステップ 6

[外部データベースのマージ(Merging External Databases)]ウィンドウで、次の情報を入力します。

  • [データベースタイプ(Database Type)] ドロップダウンリストから [Oracle] または [Postgres] を選択します。
  • マージされたデータを含む 2 つのソース データベースと対象データベースの IP アドレスとホスト名を選択します。

[データベースタイプ(Database Type)] に [Oracle] を選択した場合、テーブルスペース名とデータベース名を入力します。[データベースタイプ(Database Type)] に [Postgres] を選択した場合、データベース名を指定します。

常設チャットルームにマッピングされている、現在使用中の外部データベースとして、DB1 を選択します。

データをマージするための外部データベースとして、DB2 を選択します。DB2 データベースは空にするべきではなく、基準 MINVALUE(1) を満たす常設チャット ルームが少なくとも 1 つ必要です。

マージ後、ソース データベース DB1 と宛先データベース DB2 のデータは、宛先データベース DB2 に保存されます。また、DB1 と DB2 には固有データがあります。

ステップ 7

[Feature テーブル(Feature Tables)]ペインで、[Text Conference(TC)] チェックボックスがデフォルトでオンになっています。現在のリリースでは、その他の選択肢はありません。

ステップ 8

[選択したテーブルの検証(Validate Selected Tables)]をクリックします。

(注)  

 

Cisco XCP Text Conference サービスが停止していなければ、エラー メッセージが表示されます。サービスが停止していれば、検証は完了します。

ステップ 9

[検証の詳細(Validation Details)]ペインにエラーがなければ、[選択したテーブルをマージ(Merge Selected Tables)]をクリックします。

ステップ 10

マージが正常に完了したら、[外部データベースの検索と一覧表示(Find And List External Database Jobs)]ウィンドウがロードされます。ウィンドウを更新し、新しいジョブを表示するには、[検索(Find)] をクリックします。

ウィンドウを更新し、新しいジョブを表示するには、[検索(Find)]をクリックします。

詳細を表示するには、ジョブの [ID]をクリックします。

ステップ 11

Cisco XCP Router サービスを再起動します。

ステップ 12

両方の IM and Presence Service ノードで Cisco XCP Text Conference Service を開始します。

ステップ 13

新しくマージされた外部データベース(対象データベース)をプレゼンス冗長グループに再割り当てする必要があります


常設チャットにおける高可用性の使用例

次に、フェールオーバーとフェールバックにおける持続チャットの高可用性フローを示します。この例では、2 つのノードを持つ IM and Presence クラスタを扱います。IM and Presence クラスタは最大 6 つのノードを持つことができ、これにより 3 つのサブクラスタを使用できます。常設チャットルームがすべてのノードでホストされている場合は、3 つの独立した外部データベースインスタンスが必要です。


(注)  


この機能強化のために、テキスト会議(TC)サービスは不可欠なサービスとして位置付けられています。その結果、TC の高可用性のフェールオーバーのフローは、ノードの別の重要なサービス(Cisco XCP ルータ サービスなど)の障害によりフェールオーバーが引き起こされたとしても同様になります。
図 1. 持続チャットにおける高可用性の構造

常設チャットにおける高可用性のフェールオーバー使用例

この例では、2 つの高可用性(HA)ペアまたはサブクラスタを持つ 4 つの IM and Presence サービスノードに 4 人のユーザがいます。ユーザは次のように割り当てられています。

サブクラスタ 1

サブクラスタ 2

  • Andy はノード 1A にいます - ノード 1A はチャットルームをホストしています

  • ボブはノード 1B にいます

  • キャサリンはノード 2A にいます

  • デボラはノード 2B にいます

  1. 4 人のユーザ全員が、ノード 1A でホストされている同じチャットルームでチャットしています。

  2. テキスト会議(TC)サービスがノード 1A で失敗します。

  3. 90 秒後に、Server Recovery Manager(SRM)は TC の重要なサービスの障害を特定し、自動フェールオーバーを開始します。

  4. ノード 1B はユーザを 1A から引き継いで、HA の状態 [バックアップモードで実行中(Running in Backup Mode)] に遷移する前に、[フェールオーバー済み(重要なサービスは非実行)(Failed Over with Critical Services not Running)] 状態に遷移します。

  5. HA フェールオーバー モデルに沿って Andy はノード 1A から自動的にサインアウトし、バックアップ ノード 1B にサインインします。

  6. 他のユーザは影響を受けませんが、ノード 1B でホストされているチャットルームに引き続きメッセージを投稿します。

  7. アンディは持続チャット ルームに入り、引き続きメッセージを読んだりルームに送信したりできます。

高可用性常設チャットのフォールバック使用例

この例では、2 つの高可用性(HA)ペアまたはサブクラスタを持つ 4 つの IM and Presence サービスノードに 4 人のユーザがいます。ユーザは次のように割り当てられています。

サブクラスタ 1

サブクラスタ 2

  • Andy はノード 1A にいます - ノード 1A はチャットルームをホストしています

  • ボブはノード 1B にいます

  • キャサリンはノード 2A にいます

  • デボラはノード 2B にいます

  1. 4 人のユーザ全員が、ノード 1A でホストされている同じチャットルームでチャットしています。

  2. テキスト会議(TC)サービスがノード 1A で失敗します。

  3. ノード 1B はユーザを 1A から引き継いで、HA の状態 [バックアップモードで実行中(Running in Backup Mode)] に遷移する前に、[フェールオーバー済み(重要なサービスは非実行)(Failed Over with Critical Services not Running)] に遷移します。

  4. HA フェールオーバー モデルに沿って Andy が自動的にサインアウトし、バックアップ ノード 1B にサインインします。

  5. Bob、Catherine、Deborah は影響を受けませんが、ノード 1B でホストされているチャットルームに引き続きメッセージを投稿します。

  6. IM and Presence Service 管理者は、手動フォールバックを開始します。

  7. ノード 1A は [テイクバック中(Taking Back)] に遷移し、ノード 1B は [フォールバック中(Falling Back)] に遷移します。

  8. Andy はノード 1B からサインアウトしました。Bob、Catherine、Deborah は常設チャット ルームを使用し、フォールバックが発生したらルームはノード 1A に戻ります。

  9. ノード 1B は、HA の状態 [フォールバック中(Falling Back)]から [正常(Normal)] に遷移し、そのピア ノード ルームをアンロードします。

  10. ノード 1A は、HA の状態 [テイクバック中(Taking Back)] から [正常(Normal)] に遷移し、そのチャット ルームをアンロードします。

  11. アンディは持続チャット ルームに入り、引き続きメッセージを読んだりルームに送信したりできます。