web-dev-qa-db-ja.com

Windows Server仮想ディスクキャッシュ設定

AzureまたはHyper-VのWindowsでは、基盤となるディスクシステムの書き込みキャッシュ設定の実際のステータスに関係なく、仮想ディスクのディスクポリシー書き込みキャッシュ設定は、サーバー構成から常に有効になっているように見えます。ただし、最初の設定に関連する2番目の設定があります。この設定の仮想ディスクの場合、効果は不明です。最初の設定は設定でチェック/有効化されていますが、仮想ディスクハードウェアでは実際には無効になっています。ディスク設定は次のように表示されます。

[x] Enable Write Caching on the device
    [ ] Turn off Windows write-cache buffer flushing on the device 

直感的には、デバイスに対して書き込みキャッシュが実際にはオンになっていないため、これを有効にする理由はないと思います。物理ディスクの場合、この設定は無効になります。しかし この記事 を有効にすると、OSとハードウェアが無意味な作業を行うことから解放され、同じデータ整合性を維持しながらパフォーマンスが向上することが示されています。この場合、設定で書き込みキャッシュが有効になっていますが、ハードウェア:

...仮想ハードディスクは実際にはディスクではないので、仮想ディスクに関する限り、その設定は意味がありません。ただし、2番目の設定は異なり、ディスクのキャッシュフラッシュのオン/オフ設定を制御するため、意味があります。 2番目の設定を選択すると、少なくともソフトウェアスタックのレベルでは、キャッシュフラッシュは本質的に成功するふりをします。 ...仮想マシンの仮想ハードディスクのゲストOSでこの設定を選択すると、仮想マシンで実行されているアプリケーションのパフォーマンスが向上する場合があります。ただし、データの整合性に関して重要なのはホストのディスクキャッシュ設定であることを常に覚えておいてください。

この主張が真実であり、WRTデータの整合性を確保するための安全な方法であるかどうかを誰かが確認できますか?

7
wst

データディスクが最初に読み取り/なしキャッシュで構成されている場合、これらの設定は実際には意味がないと思います。この 記事 は、サービス管理APIまたはPowershellコマンドを使用して変更できるホストキャッシングの問題であると述べています。

6
batistuta09

VMオプションを有効にして「デバイスのWindows書き込みキャッシュバッファーフラッシュをオフにする」を選択することをお勧めします。電源/ UPSまたはストレージシステムレベルに冗長性がある場合のみです。オプションを有効にする場合は、停電またはハードウェア障害の場合のデータ損失を考慮してください。書き込みを使用できるように、ノードレベルで冗長性を提供できるソフトウェア定義ストレージとしてS2D、StarWindまたはHPE VSAを使用することをお勧めしますオンプレミスVMのキャッシュ機能。

この場合、オプション「デバイスのWindows書き込みキャッシュバッファーフラッシュをオフにする」は、全体的なパフォーマンスを向上させますVMシステムパフォーマンス:RAMは、ホットデータのソースとデバイスへのデータフラッシュは、RAMがいっぱいの場合にのみ実行されます。

単一回線へのPSU接続でHyper-Vスタンドアロンホストを実行している場合は、書き込みキャッシュを無効にすることをお勧めします。

これらの前提は、オンプレミスの仮想化されたホストに対してのみ信頼できます。クラウドベンダーには、インスタンスに冗長性を提供する独自の機能があります。そのため、私はAmazon VMに対してのみ書き込みキャッシュ機能を使用しています。

編集:ポイントの特徴は、実行されたI/O操作でのレイテンシの減少です

  • WBキャッシュが無効になると、I/O要求は基になるストレージに直接送られるため、最大の遅延が発生します。
  • 「デバイスで書き込みキャッシュを有効にする」が有効になっている場合、I/OはまずRAM=に移動します。データが「コールド」になると、Windows OSはそれらをストレージにフラッシュします。この場合、減少します待ち時間。
  • また、両方のWBオプションがマークされている場合は、データがRAMに配置されているため、ホットとコールドのデータによるレイテンシを最小限に抑えることができます。 RAM=がいっぱいになった場合にのみ、データはストレージにフラッシュされます。
5
Mr. Raspberry