セッション録画のデータ損失

イベントの説明

セッション録画 – イベントビューアーのイベント2005

管理者は、セッション録画サーバーのイベントビューアーで、Citrix Session Recording Storage Managerからのイベント2005に気づくことがあります。イベントメッセージは通常、次のように表示されます。

「録画ファイル中にデータが失われました: VDA = XXX, CtxSessionId = YYY, path = ZZZ, NNN バイトが不足しています。」

管理者がイベントで指定されたパスにある録画ファイルを再生しようとすると、再生は録画が不完全であることを示します。

なぜこれが起こったのか

この問題にはいくつかの原因が考えられます。

  1. 2つ以上のVDAがMSMQに対して同じQMIDで構成されており、これは永続VDAと非永続VDAの両方で発生する可能性があります。
  2. 非永続VDAのQMIDが再起動後も変更されず、競合を引き起こす可能性があります。
  3. セッション録画サーバーに高い負荷がかかっており、多数の同時セッションを効率的に処理できません。

問題の特定方法

  1. VDAのQMID構成を確認します。
    1. 永続VDAの場合
      1. 各マシンのレジストリをチェックして、QMID構成を確認します。 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\MachineCache\QMId
      2. 各VDAは、競合を避けるために一意のQMID値を持つ必要があります。
    2. 非永続VDAの場合
      1. QMIDを確認するために、VDAのレジストリをチェックします。
      2. 同じVDAを再起動した後、もう一度レジストリをチェックします。
      3. 再起動後、QMIDは異なるはずです。
  2. サーバーが過負荷状態にあるかどうかを確認します。
    1. セッションレコーディングサーバーのMSMQプロパティで構成されているストレージ制限を確認します。 dataloss
    2. パフォーマンスモニターを使用してMSMQのリソース使用状況を監視します。
      1. リソース使用状況を追跡するために、パフォーマンスモニターにMSMQカウンターを追加します。 dataloss
      2. MSMQ内の現在のデータ使用量を確認します。 dataloss
      3. MSMQのデータサイズが設定されたクォータ制限に近づいているかどうかを確認します。もしそうであれば、サーバーは過負荷状態になっている可能性があります。

解決方法

以下の項目は、この問題を解決する方法を概説しています。

  1. セッションレコーディングエージェントを使用するすべてのVDAには、MSMQ用に個別のQMIDを割り当てる必要があります。
    1. 永続VDAの場合、MSMQのQMIDは一度だけ設定すればよいです。
    2. 非永続VDAの場合、MSMQのQMIDはWindowsの起動時に設定する必要があります。
    3. VDAでQMIDを変更する方法
      1. QMIDを手動で変更する: インストール、アップグレード、アンインストール Session Recording 2503
      2. 最新のCitrix Provisioning Servicesは、CVAD 2511以降、VDAが起動するたびにMSMQのQMIDを自動的に更新します。マシンカタログを作成します。
      3. イメージ最適化ツールまたはカスタム定義スクリプトを使用して、Windowsの起動時にMSMQ用の新しいQMIDを生成できます。
    4. Additionally, for non-persistent VDAs, set the startup type of both the Session Recording Agent Service and the Citrix Session Recording Monitor Service to Automatic (Delayed Start) in the Windows Services configuration. dataloss
  2. Session Recording Serverが過負荷状態です。 Session Recording Serverでサポートされるセッション容量は、ハードウェア構成によって大きく異なります。デフォルトでは、最大2,000の同時セッションを処理できます。ただし、サーバーに16 GBを超えるRAMとSSDストレージが搭載されている場合、容量はさらに高くなる可能性があります。 過負荷の問題を解決するには:

    1. マシンのメインメモリクォータを増やし、MSMQストレージ制限を引き上げます。

      利用可能なメインメモリの合計が、構成されているMSMQストレージ制限の少なくとも1.5倍であることを確認してください。

      注:

      MSMQの合計ストレージ制限は、常に物理メモリの合計よりも少なくする必要があります。

      変更後、Session Recording Server上のMSMQを再起動する必要があります。その結果、Session Recording Serviceは自動的に再起動します。

      このプロセスによってセッションデータが失われることはありません。

    2. Session Recording Agentのプロパティでメッセージの有効期間を調整します。現在の値を2倍にすることを検討し、メッセージ処理により多くの時間を割り当て、データ損失のリスクを軽減します。

      dataloss

      VDAで以下のレジストリキーを使用してこの設定を構成できます。

      HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartAuditor\Agent\MsmqMessageLifeInSeconds

      環境のニーズに基づいて値を(秒単位で)設定します。

      注:

      変更後、セッションレコーディングエージェントを再起動する必要があります。

      この操作により、ライブセッションのセッションデータが失われます。

      この操作はメンテナンス期間中にスケジュールされていることを確認してください。

    3. すべてのセッションレコーディングサーバーマシンで、MSMQのメッセージフォルダーを、ディスク(SSD)IOPS容量が3000を超える別のドライブに変更します。

      これにより処理が高速化され、パフォーマンスが最大50%向上する可能性があります。

      データ損失

      https://learn.microsoft.com/ja-jp/previous-versions/troubleshoot/msmq/optimize-message-queuing-performance

    4. 上記の手順で問題が解決しない場合は、負荷を分散するために追加のセッションレコーディングサーバーを追加することをお勧めします。

      ガイダンスについては、既存の展開で負荷分散を構成する方法に関する公式ドキュメントを参照してください。 Citrixドキュメント – 負荷分散の構成

セッション録画のデータ損失