1台の ESXi ホストで合計 30 TB を超えるファイルを開いたときに VMFS ヒープが枯渇する問題を回避するため、ESXi 5.0 パッチ 05(ESXi500-201305001)や ESXi 5.1 Update 1 では VMFS ヒープの容量が増強されました。
VMFS 5 では、1 MB ブロックサイズ構成された大なサイズの VMDK を扱えるようにするため、二重間接ポインタブロックが導入されました。二重間接ポインタブロック構造では、ファイルディスクリプタはポインタブロックを参照し、そのポインタブロックからさらに別のポインタブロックが参照ており、この 2つ目のポインタブロックが実際のデータブロックを指し示すという構造になっています。また従来のリリースではこれらのポインタブロックは VMFS ヒープの中の「PB キャッシュ」と呼ばれる領域に保存されていましたが、大きな VMDK が存在する場合、これがヒープの枯渇やその他の副作用を引き起こす原因にもなっていました。
そこで ESXi 5.5 以降では、ポインタブロックのキャッシュは VMFS3 ヒープ領域ではなく、個別に領域を確保するように変更されました。この領域のサイズは /VMFS3/MinAddressableSpaceTBと /VMFS3/MaxAddressableSpaceTB パラメータの値によって決定されます。
そのため ESXi 5.5 では、割り当てられるヒープ領域のサイズに VMFS ヒープサイズは関係なくなりました。
ESXi 5.5 におけるデフォルトの最大/最小ヒープサイズは次の通りです。
最大及びデフォルトヒープサイズ | 256 MB |
最小ヒープサイズ | 16 MB |
MaxAddressableSpaceTB は、どれだけのポインターブロックがメモリにキャッシュされるか定義しています。デフォルトは 32 TB ですが、最大 128TB まで設定する事ができます。
デフォルト値の場合、1 ESXi ホストあたり 32 TB までの VMDK を開くことができます。ただしパフォーマンスはワーキングセット(アクティブなポインタブロックを必要とする領域)の容量に影響されます。 MaxAddressableSpaceTB の値によって PB キャッシュの容量が決まりますが、ワーキングセットの容量がこの値の 80 % に達すると解放処理が実行され領域が再利用されるようになります。結果インアクティブだった領域に対しアクセスが発生した場合、再度ヒープ領域の確保が必要となるため処理のオーバーヘッドが増加しパフォーマンス低下に繋がります。そのためワーキングセットの容量が 128 TB (つまり PB キャッシュが保持できる最大容量)を超えるような環境の場合、 MaxAddressableSpaceTB を 128TB とした場合でもパフォーマンス低下が発生する可能性があります。
/VMFS3/MinAddressableSpaceTB と /VMFS3/MaxAddressableSpaceTB を変更するには次の手順を実行します:
- vSphere Clinet を使用して、vCenter Server または ESXi ホストにログインします。vCenter Server に接続した場合は、インベントリから ESXi/ESX ホストを選択してください。
- [構成] タブをクリックします。
- [ソフトウェア] の [詳細設定] をクリックします。
- [VMFS3] をクリックします。
- [MaxAddressableSpaceTB] の値を変更します。
- [OK] をクリックします。