仮想マシンとTRIM


17

TRIMサポートはSSDの動作を改善するために導入されましたが、仮想マシンが仮想ディスクを最適化するのにも役立ちます(たとえば、仮想ディスクのどの部分が物理パーティションにストレージを必要としないかを知るため)。VMマシンはこの方法でTRIMを使用しますか?

回答:


9
  • Virtualboxはv4.2以降のTRIMをサポートしています
  • ストレージ:VDIイメージの使用時に、SATAおよびIDEのTRIMおよびSCSIのUNMAPを介して未使用のイメージブロックを破棄するサポートを実装しました

http://www.fb-developers.info/blog/2012/virtualbox-v4-2-is-coming/

VHDXは、Windows Server 2012で導入された新しい仮想ハードディスク形式であり、最大64テラバイトの復元力のある高性能仮想ディスクを作成できます。VHDX形式には、次のパフォーマンス上の利点もあります。

  • ...
  • データの表現の効率。これにより、ファイルサイズが小さくなり、基礎となる物理ストレージデバイスが未使用のスペースを再利用できます。(トリムには、パススルーまたはSCSIディスクとトリム互換ハードウェアが必要です。)

https://msdn.microsoft.com/en-us/library/windows/hardware/dn567657(v=vs.85).aspx

ユースケース

  • SSDにマウントされたコンシューマー仮想ハードディスク(VHD):

    VHDは、最初は「クリーンな」未使用のメディアにマウントされます。VHDが使用されると、VHDはファイルなどのストレージメディアの一部を消費します。ストレージメディアのファイルを削除する場合、VHD全体がSSDに1つのファイルとして保存されるため、これらのファイルはSSDから削除されません。Hyper-V環境は、VHD環境でdelete-fileが発生したときに削除されるすべての領域に対してFile TRIMを呼び出します。File_TRIMはSSDに変換されるため、SSDのパフォーマンスを最適化できます。
  • シンプロビジョニングされたSANにマウントされたコンシューマーVHD:

    VHDは最初、シンプロビジョニング環境の1つの最小スラブにマウントされます。ファイルがVHDに保存されると、VHDのストレージフットプリントは複数のスラブで増加します。VHDでファイルが削除されると、Hyper-VはFile_TRIMを基にシンプロビジョニングされたSANを呼び出します。TRIMがSLABの粒度よりも大きい場合、SANはSLABを削除できるため、そのSAN上のVHDのフットプリントを削減できます。

VHDがWindows 8ベースのサーバーに常駐している場合、Storage OptimizerはTRIMを送信して、マウントされたVHD内からVHDのスラブフットプリントを削減します。

https://msdn.microsoft.com/en-us/library/hh848053(v=vs.85).aspx

VMWare Workstation Proドキュメントセンターのホストシステムのディスクドライブ要件-ソリッドステートドライブにも記載されています。

ホストマシンに物理ソリッドステートドライブ(SSD)がある場合、ホストはSSD上で実行されているゲストオペレーティングシステムに通知します。

これにより、ゲストオペレーティングシステムは動作を最適化できます。仮想マシンがSSDを認識してこの情報を使用する方法は、ゲストオペレーティングシステムと仮想ディスクのディスクタイプ(SCSI、SATA、またはIDE)によって異なります。

  • Windows 8、Windows 10、Ubuntu、およびRed Hat Enterprise Linux仮想マシンでは、すべてのドライブタイプが仮想ディスクをSSDドライブとして報告できます。
  • Windows 7仮想マシンでは、IDEおよびSATA仮想ディスクのみがSSDとして仮想ディスクを報告できます。SCSI仮想ディスクは、仮想マシンのシステムドライブとして使用される場合はSSDとしてのみ、仮想マシン内のデータドライブとして使用される場合は機械式ドライブとして報告されます。
  • Mac仮想マシンでは、SATA仮想ディスクのみがSSDとして報告されます。IDEおよびSCSI仮想ディスクは、メカニカルドライブとして報告されます。

仮想マシンのオペレーティングシステムを使用して、仮想マシンが仮想ディスクとしてSSDを使用していることを確認します。

  • vSphereESXiなどの他のVMware製品にも同じことが当てはまります

Q. VMwareは、vSphere 6.0のゲストOSから直接UNMAPをサポートしていますか。

はい。vSphere 6.0では、スペースを再利用するためにゲストOSから直接UNMAPを発行することがサポートされています。

Q. UNMAPを実行するために必要な前提条件は何ですか?

満たさなければならない前提条件がいくつかあります。これらは:

  • VMDKはシンプロビジョニングする必要があります
  • 仮想マシンのハードウェアバージョンは11(ESXi 6.0)でなければなりません
  • 詳細設定EnableBlockDeleteは1に設定する必要があります
  • ゲストOSはディスクをシンとして識別できる必要があります(Windows 2012 [2015年10月30日更新]はこれを実現するためにB2モードページを使用します)

Q.再利用はUNMAPでのみ機能しますか?TRIMはどうですか?

これは「依存する」答えです。TRIMは、基盤となるデバイスがSSD – Solid State Diskの場合にのみ使用されます。私が理解していることから、TRIMはI / OスタックでUNMAPに変換されます。ただし、TRIMがUNMAPに変換される問題がいくつかあります。UNMAPはVMFSの特定のブロック境界で機能しますが、TRIMにはそのような制限はありません。そのため、UNMAPに変換された特定のTRIMは、ブロックアライメントの問題により失敗する場合があります。

http://cormachogan.com/2015/05/07/vsphere-6-0-storage-features-part-8-vaai-unmap-changes/

http://www.codyhosterman.com/2015/04/direct-guest-os-unmap-in-vsphere-6-0/


VMwareはTRIMをサポートしていないために機能が損なわれたため、将来のバージョンからこのマーケティングの主張を削除したと思います。参照してくださいここここに
トム・ヘイルに

1

TRIMサポートには、基礎となるハードウェアの詳細な知識が必要です。定義上、仮想マシン(VMゲスト)は仮想ハードウェアで実行されるため、仮想マシン(VMゲスト)は、それらが存在するハードドライブまたはSSDの詳細を認識しません。

そのため、VMホストオペレーティングシステムがTRIMを理解している場合、その上で実行されているすべてのVMゲストにとってこれで十分です。

一部のVMホストは、物理ドライブを「パススルー」し、VMゲストのオペレーティングシステムに直接マウントできます。正確な実装によっては、ゲストがSSDのTRIM機能をサポートできる可能性が理論的にあります。ほとんどの場合と同様に、走行距離は異なる場合があります。環境にとって重要な場合は、コミットする前に徹底的にテストする必要があります。


1
私が追加する唯一のことは、vmハードドライブファイルが動的である場合、それを縮小することができ、ホストは、必要に応じて、SSDに新しく解放されたセクターをトリミングするように指示します。ファイルが大きくなると、既存のホストセクターを変更しないと、ゲストの書き込みに新しい/トリミングされたセクターが使用される可能性があるため、これによりvmハードドライブファイルの書き込みが高速化される場合があります。通常、vmハードドライブファイルのサイズを修正しますが、これはHDの断片化を防ぐためです。SSDを使用すると、おそらく動的で定期的な縮小になります。
スコットマックレニング

2
-1。動的なサイズのVMイメージファイルを縮小するためにTRIM / unmapが使用されるという事実を見逃しています。その結果、ホストOSは、基盤となるハードウェアでTRIM / unmapを発行する場合があります。これは、シンプロビジョニングの概念の重要な部分です。
-rustyx

-1

TRIMは、SSDへの書き込みを512Kブロックで行う必要があり、ブロックが実際にファイルでどれだけ使用されているかをSSDドライブ自体で判断することは不可能であり、OSとファイルシステムによって通信する必要があるため、発明されました。

見る

http://en.wikipedia.org/wiki/TRIM

編集:

wikiリンクには、私ができるよりも良いと書かれています:

TRIMコマンドは、ディスクイメージファイルに保存されているディスクでは機能しません。これは、コンピューターファイルを完全に削除するか、最後に切り捨てることができるためです。この問題は、仮想ディスクサービス、仮想マシンなどのアプリケーションに影響します。


6
VMは、ユーザーが仮想ディスクの再パックと圧縮を要求したときに使用するためにトリミングされたブロックに関する情報を保持できます。現在、VMWareには同様の操作がありますが、最初にVM内のすべての空き領域を上書きすることで機能します。
リオリ

6
問題は、仮想ディスク上のTRIM操作をホストディスク上のTRIM操作に変換することではありません。あなたが指摘するように、それはそう直接働きません。問題は明らかに、仮想ディスク上のTRIM呼び出しをホストディスク上のイメージファイルの短縮に変換することです(偶然にも、ホストディスクでTRIM操作をトリガーできますが、最初のステップに関する質問です)
パスカルクオック

1
予備ファイルがあり、vmのトリム可能なディスクイメージとして使用するのに理想的です。
非ユーザー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.