断片化とは、1 つのファイルに属するブロックがボリューム内で不連続に分散した状態を指します。断片化が発生すると、ディスクのシーク時間と回転待ち時間が増大します。
VMFS ボリュームを最適化することはできませんが、断片化が VMFS のパフォーマンスに影響を及ぼすことはありません。これは、次のような理由によります。
- 断片化によりパフォーマンスが低下するのは、アプリケーションの I/O 要求が複数のブロックにまたがって発生し、なおかつそれらのブロックが不連続な場合です。VMFS のブロック サイズは非常に大きいため、I/O 要求がブロック境界を越えることはほとんどありません。また、ブロックが不連続な場合でも、I/O 要求は、ローカルの連続する領域に対して実行されます。
- 仮想ディスクは非常に大きなファイルの集合です。ギャップが発生した場合、そのギャップのサイズも大きくなります。パフォーマンスの低下が大きくなるのは、ファイルを組み立てるのにドライブのヘッドが複数回のシークを実行する必要がある場合です。大きなセクション間にギャップが 1 つ、または数個程度しか存在しない場合、シーク時間の増大は無視できます。このことは特に、事前割り当て(シック プロビジョニングされた)ディスクに当てはまります。
- ディスク アレイは大きなキャッシュ領域を備えており、大半の書き込みはこのキャッシュで吸収されます。SAN デバイスに関しては、断片化によってパフォーマンスが著しく低下することはまずありません。ローカル ストレージは、ディスク キャッシュ領域がかなり小さいため、断片化の影響が大きくなる可能性があります。
- シーケンシャルの仮想マシン ストリームであってもディスク アレイ上ではランダム アクセスになります。というのは、ディスク アレイでは、異なるホスト上の複数の仮想マシンからの I/O 要求に応答するからです。つまり、同一ホストまたは複数のホストの多数の仮想マシンが同じデータストア上で動作しているため、仮想マシンのワークロードは極めて並列度が高くなります。パフォーマンスを向上させるには、特定のファイルのホット ブロックとコールド ブロックを同一場所に配置するのではなく、特定のデータストア上でグローバル ストレージ ワーキング セット (ホット ブロック) を局所化します。
定義
ホット ブロック - 多くの変更が行われるデータ ブロック。データベースの書き込み先領域はホットです。
コールド ブロック - ほとんど変更されないブロック。オペレーティング システムがインストールされた後、これらのファイルが変更されることは滅多にありません。