Azure portal を使用して Azure VM ディスク キャッシュを有効化して構成する

完了

ディスク パフォーマンスを予測する目的で選択できる設定とプロパティを確認しました。 次に、"キャッシュ" を使用して改善する方法を見てみましょう。

ディスク キャッシュ

キャッシュは、すばやくアクセスできるように、通常はメモリ内にデータを格納する特殊なコンポーネントです。 キャッシュ内のデータは、多くの場合、以前に読み込まれたデータであるか、以前の計算結果であるデータです。 目標は、ディスクから取得するよりも速くデータにアクセスすることです。

キャッシュでは、特殊な、場合によってはコストが高い一時的なストレージが使用されますが、この一時的なストレージは、永続的なストレージよりも読み取り、書き込み、またはその両方のパフォーマンスが速くなります。 キャッシュ ストレージは限られていることが多いため、キャッシュから最も大きな恩恵を受けるデータ操作は何であるかを判断しておく必要があります。 Azure のようにキャッシュを幅広く利用できる場合であっても、使用するキャッシュの種類を判断する前に各ディスクのワークロード パターンを把握しておくことは重要です。

読み取りキャッシュでは、データ取得の高速化が試行されます。 データは永続的なストレージからではなく、高速なキャッシュから読み取られます。 次の条件の下でキャッシュからデータが読み取られます。

  • データは以前に読み込まれ、キャッシュに存在します。
  • キャッシュは、データをすべて保持できる十分な大きさです。

読み取りキャッシュは、一連の順次読み取りのように、読み取りキューに対して何らかの予測可能性がある場合に役立つ点に留意してください。 ランダム I/O の場合、アクセスしているデータがストレージ全体に分散しているため、キャッシュのメリットはほとんどないかまったくありません。さらに、ディスクのパフォーマンスが低下する可能性があります。

書き込みキャッシュでは、永続的ストレージへのデータ書き込みの高速化が試行されます。 アプリは書き込みキャッシュを使用する場合、データを保存対象と見なすことができます。 実際には、データはキャッシュの待ち行列に入り、ディスクに書き込まれるのを待ちます。 ご想像のとおり、たとえば、キャッシュされたデータが書き込まれる前にシステムがシャットダウンした場合のように、このメカニズムは障害点になる可能性があります。 SQL Server などの一部のシステムでは、キャッシュされたデータの永続的なディスク ストレージへの書き込みが処理されます。

Azure のディスク キャッシュ

ディスク ストレージに関するディスク キャッシュには 2 つの種類があります。

  • Azure ストレージ キャッシュ
  • Azure 仮想マシン ディスク (VM) キャッシュ

Azure ストレージ キャッシュには、Azure BLOB ストレージ、Azure Files、および Azure 内のその他のコンテンツ向けにキャッシュ サービスがあります。 このような種類のキャッシュの構成は、このモジュールの範囲外です。

Azure 仮想マシンのディスク キャッシュは、Azure VM に接続された仮想ハード ディスク (VHD) ファイルへの読み取りおよび書き込みアクセスを最適化するものです。 このモジュールではディスク キャッシュに注目します。

ディスク キャッシュは Ultra Disks または Premium SSD v2 ではサポートされていませんが、待機時間が既に短縮され、それによってディスク キャッシュと同じ中心的な問題の一部が解決するというメリットがあります。

Azure 仮想マシン ディスクの種類

Azure VM に使用されるディスクの種類は 3 つです。

  • OS ディスク:Azure VM を作成すると、Azure によってオペレーティング システム (OS) 用の VHD が自動的にアタッチされます。

  • 一時ディスク:Azure VM を作成すると、Azure によって一時ディスクも自動的に追加されます。 このディスクは、ページやスワップ ファイルなどのデータに使用されます。 このディスク上のデータは、メンテナンス時または VM の再デプロイ時に失われる可能性があります。 永続的なデータ (データベース ファイルやトランザクション ログなど) の保存には使用しないでください。

  • データ ディスク:データ ディスクは仮想マシンに取り付けられる VHD であり、ユーザーが保存しておく必要があるアプリケーションなどのデータを格納するためのものです。

OS ディスクとデータ ディスクでは、Azure VM ディスク キャッシュが活用されます。 VM ディスクのキャッシュ サイズは、VM インスタンスのサイズと、VM にマウントされているディスクの数によって変わります。 キャッシュは、最大 4 TiB サイズのディスクでのみ有効にできます。

Azure VM のキャッシュ オプション

VM ディスク キャッシュには 3 つの共通オプションがあります。

  • 読み取り/書き込み: キャッシュを書き戻します。 キャッシュ データの永続ディスクへの書き込みがご利用のアプリケーションで必要に応じて適切に処理される場合にのみ、このオプションを使用します。
  • 読み取り専用: キャッシュから読み取られます。
  • なし: キャッシュはありません。 書き込み専用で書き込み負荷の高いディスクにこのオプションを選択します。 ログ ファイルは、書き込み負荷が高い操作なので適しています。

ディスクの各種類にすべてのキャッシュ オプションを使用できるわけではありません。 次の表は、ディスクの各種類のキャッシュ オプションを示しています。

読み取り専用 読み取り/書き込み なし
OS ディスク ○ (既定値)
データ ディスク ○ (既定値) はい
一時ディスク no no no

Note

L シリーズB シリーズの仮想マシンの場合、ディスク キャッシュ オプションを変更できません。

Azure VM ディスク キャッシュのパフォーマンスに関する考慮事項

キャッシュ設定は、Azure VM 上で動作するワークロードのパフォーマンスにどのように影響するでしょうか?

OS ディスク

VM OS ディスクの既定の動作では、キャッシュは読み取り/書き込みモードで使用されます。 そのため、OS ディスクにデータ ファイルを格納し、データ ファイルに対するランダムな読み取り/書き込み操作を多数行うアプリケーションがある場合は、 そのようなファイルをキャッシュがオフになっているデータ ディスクに移動することを検討してください。 なぜでしょうか。 読み取りキューに順次読み取りが含まれていない場合、キャッシュのメリットがほとんどないか、まったくないためです。 データが順次であるかのようにキャッシュを維持するオーバーヘッドで、ディスクのパフォーマンスが低下する可能性があります。

データ ディスク

パフォーマンスの影響を受けやすいアプリケーションの場合は、OS ディスクではなくデータ ディスクを使用することをお勧めします。 別のディスクを使用すると、各ディスクに適切なキャッシュ設定を構成できます。

たとえば、SQL Server を実行している Azure VM 上で、(通常データおよび TempDB データ用に) データ ディスク上で読み取り専用キャッシュを有効にすると、パフォーマンスが大幅に改善する可能性があります。 一方、ログ ファイルは、キャッシュがないデータ ディスクに適しています。

警告

Azure ディスクのキャッシュ設定を変更すると、対象となるディスクがデタッチされ、再アタッチされます。 オペレーティング システム ディスクの場合は、VM が再起動されます。 ディスク キャッシュの設定を変更する前に、この中断の影響を受ける可能性があるすべてのアプリケーションまたはサービスを停止します。

次のいずれかのツールを使用して、仮想マシンのディスク キャッシュ設定を構成できます。

  • Azure portal
  • Azure CLI
  • Azure PowerShell
  • Resource Manager テンプレート

Azure portal を使用してキャッシュを構成する

Azure portal を使用して新しい VM をプロビジョニングする場合、VM がデプロイされるまで、OS ディスクの既定のキャッシュ構成を読み取り/書き込みから変更することはできません。

データ ディスクを既存の VM に追加する場合、ディスクを VM にデプロイする前にキャッシュ オプションを構成できます。

次に、Azure portal を使用して VM を作成し、キャッシュ設定を変更してみましょう。