クラウド キャッシュの概要

クラウド キャッシュは、回復性と高可用性を提供するためにプロファイル コンテナーと ODFC コンテナーと連携する機能です。 クラウド キャッシュは、ローカルにマウントされたコンテナーを使用して、リモート ストレージ プロバイダーに定期的な更新を提供します。 クラウド キャッシュは、短期的または断続的なローカル (内部リージョン、近接) ストレージの問題からユーザーを隔離するように設計されています。 構成に基づいて、異なるリージョンでリモート ストレージ プロバイダーを使用する場合は、ビジネス継続性またはディザスター リカバリー (BCDR) プランの一部として使用することもできます。 クラウド キャッシュを使用すると、ローカル キャッシュに必要な追加の I/O 操作とストレージに対応するために、仮想マシンにパフォーマンスとストレージの要件が課せられます。

クラウド キャッシュに関する考慮事項:

  • クラウド キャッシュでは、CCDLocations のエントリの順序に基づいてストレージ プロバイダーが使用されます。
  • ストレージ プロバイダーは、近接順に表示してから優先する必要があります。
  • データがストレージ プロバイダーからハイドレートされる場合は、1 つのプロバイダーのみが使用されます。
  • データ ハイドレート中に使用されるプロバイダーに関係なく、すべてのストレージ プロバイダーにデータが書き込まれます。
  • ストレージ プロバイダーのパフォーマンス (待機時間、使用率、ボトルネック) は、ローカル コピーとの同期状態に影響します。
  • ローカル キャッシュからの更新で 1 つ以上のプロバイダーが遅れている場合は、実行中のストレージ プロバイダーを示す可能性があります。
  • Ping または Test-NetConnection コマンドの結果は、トランザクション I/O と同じではなく、ストレージ プロバイダーがどのように実行するか、または実行できるかを確認するには不適切なインジケーターです。

Figure 1: Cloud Cache Overview

図 1: クラウド キャッシュ コンポーネントを示す詳細図

クラウド キャッシュ コンポーネント

ローカル キャッシュ

クラウド キャッシュは、ユーザーのプロファイルに使用されるコンテナーが作成され、仮想マシン (ローカル キャッシュ) にローカルに格納されるため、リモート ストレージ プロバイダーへの接続の問題からユーザーを隔離できます。 初回サインイン時に、FSLogix は C:\ProgramData\FSLogix\Cache にユーザーのコンテナーを作成し、そのコンテナーを仮想マシンにマウントします。 次に、FSLogix は、ユーザーのプロファイルに必要なすべてのリダイレクトを設定します。 次に、ユーザー プロファイル サービスでユーザーのプロファイルがローカル キャッシュに作成されます。 ユーザーのプロファイルに書き込まれるすべてのデータは、ブロック レベルのキャッシュ オブジェクトとして一時的に同じディレクトリに格納されます。 これらのブロック レベルのキャッシュ オブジェクトは、ローカル キャッシュにコミットされます。 ブロック レベルのキャッシュ オブジェクトが作成される前に、ユーザーのプロファイルへの書き込みがプロキシ ファイルを介してメモリ内で処理されます。

2 番目または N 番目のサインイン時に、FSLogix は仮想マシンに格納されている以前のローカル キャッシュ VHD を検索してマウントしようとします。 ローカル キャッシュの検索は既定の構成設定であり、ディスク領域の不足イベントにつながる可能性があるため、望ましくない場合があります。 その他の設定については、クラウド キャッシュ設定のリファレンス ページを参照してください。

Figure 2: Cloud Cache Local Cache

図 2: クラウド キャッシュ ローカル キャッシュ

リモート ストレージ プロバイダー (ハイドレート、フラッシュ、複製)

クラウド キャッシュは、ユーザーのセッション中にローカル キャッシュからユーザーのプロファイルを操作し、CCDLocations で指定されている 1 つ以上のリモート ストレージ プロバイダーで構成する必要があります。 これらのリモート ストレージ プロバイダーはローカル キャッシュのコピーを格納し、現在のセッション中および以降のサインインに使用されます。ユーザーのセッション中にすべてのプロバイダーが異常になった場合、1 つ以上のプロバイダーが正常な状態に戻るまで、ローカル キャッシュは引き続き動作し、拡大 1 します。

1 ローカル キャッシュは、SizeInMBs 設定で指定されているコンテナーの最大サイズまでしか拡大しません。

ハイドレート

ローカル キャッシュにファイル システムによって要求されたデータが含まれていない場合、クラウド キャッシュはリモート ストレージ プロバイダーの 1 つからローカル キャッシュにデータをハイドレート (読み取りとコピー) します。 この操作は、ユーザーのプロファイルのローカル キャッシュを設定するときのサインイン プロセスの一部でもあります。

フラッシュ

フラッシュ操作は、一般的に 3 つの方法で行われます。

  1. 遅延非同期操作では、クラウド キャッシュは、各プロバイダーが独自のスレッドでフラッシュされるときに、すべてのストレージ プロバイダーに対する変更を同時にフラッシュします。 FSLogix は、この操作を調整せず、システムが許可する量のスループットを利用します。
  2. 1 つ以上のプロバイダーにすべての更新プログラムが含まれていない場合、サインアウト中、すべてのプロバイダーが同じ順序になるまで、ユーザーのサインアウトは遅延します 2
  3. ストレージ プロバイダーへの接続が異常になったときにユーザーのセッション中に、FSLogix はすべての変更をキューに登録し、正常な状態に戻ったときにプロバイダーにフラッシュします。

2 ユーザーのサインアウトは、HealthyProvidersRequiredForUnregister 値を使用してクラウド キャッシュがどのように構成されているかに基づいて遅延されます。

複製

完全な VHD(x) クローンは、Cloud Cache がサインイン時にストレージ プロバイダーが同じシーケンスではないことを判断したときに実行されます。 この操作中、すべてのストレージ プロバイダーが同じシーケンスになるまで、保留中のすべての書き込みがローカル キャッシュに保持されます。 完了すると、フラッシュ操作によってストレージ プロバイダーへの新しいデータの送信が開始されます。

インデックス作成 (時間指定書き込みキャッシュ)

クラウド キャッシュでは、ローカル キャッシュ内のインデックス作成が使用されます。 時間指定書き込みキャッシュは、ローカル キャッシュにまだコミットされていない書き込みを表すファイルです。 これらのファイルは、数値の拡張子で表記されます。 インデックスがローカル キャッシュにコミットされると、キャッシュ オブジェクトに変換されます。

インデックス ファイルは、仮想マシンが予期しないシャットダウンまたは再起動を行う場合は必ず考慮する必要があります。 これらのファイルは、ローカル キャッシュにコミットされていないデータを表し、データの損失につながる可能性があります。最悪の場合、コンテナーが破損する場合があります。 非永続的環境またはマルチセッション環境では、仮想マシンが予期しないイベントから復旧すると、通常、ユーザーは同じ仮想マシンに接続しません。 このような場合、ストレージ プロバイダーに適切にコミットおよびフラッシュされなかったデータが失われ、ユーザー プロファイル コンテナーに問題が発生する可能性があります。

プロキシ ファイル

クラウド キャッシュでは、Profile_%username%.vhd として表されるプロキシ ファイルの概念が使用されます。これは、実際の VHD ファイルではありません。 プロキシ ファイルは、ローカル キャッシュ宛てのすべての I/O 書き込みを収集して処理する手段として使用されます。 I/O 書き込みは、キャッシュ ディレクトリ内のブロック レベルのキャッシュ オブジェクトとして書き込まれる前に、メモリ内でバッファーされ、プロキシ ファイルを介して追跡されます。 プロキシ ファイルのサイズはローカル キャッシュ ファイルと同じですが、このファイルにはデータが書き込まれず、ディスク上の実際のサイズは 0 になります。

Figure 3: Cloud Cache Proxy File

図 3: クラウド キャッシュ プロキシ ファイル

補助ファイル

クラウド キャッシュでは、ローカル キャッシュの制御とシーケンスを維持するために、2 つの補助ファイルを使用します。

Note

これらの補助ファイルは FSLogix で使用され、製品の外部で開いたり使用したりするためのものではありません。 これらのファイル内の関連情報は、ログ ファイルまたはイベント ログ エントリを通じて利用できるようになります。

ロック ファイル

ロック ファイルの名前は、コンテナーに I/O ロックがある仮想マシンを特定するために使用されるファイルであることを示しています。 Cloud Cache では、この情報を使用して、特定のプロバイダーのコンテナーの所有権を決定します。 ロック ファイル メカニズムは、ProfileType が '3' (複数または同時セッション) に設定された Cloud Cache を使用する場合に重要です。

メタ ファイル

メタ ファイルは、コンテナーの状態を追跡する多目的ファイルです。 メタ ファイル内では、クラウド キャッシュはシーケンス番号システムを使用して、最新のデータを持つプロバイダーを決定します。

ストレージ プロバイダー

FSLogix はストレージ プロバイダーではなく、ストレージ プロバイダーの基になるアーキテクチャに依存しています。 FSLogix がサポートするストレージ プロバイダーの詳細については、「コンテナー ストレージ オプション」をご覧ください。

次のステップ