シン プロビジョニング LUN 上の VMFS 削除済みブロックを再利用する。
search cancel

シン プロビジョニング LUN 上の VMFS 削除済みブロックを再利用する。

book

Article ID: 327800

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

免責事項:これは英文の記事 「Reclaiming VMFS deleted blocks on Thin Provisioned LUNs」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。
 
 
この記事ではシン プロビジョニング LUN に構成された VMFS データストア上で不使用ストレージブロックを再利用する手順を提供します。

vSphere 5.5 から esxcli 名前空間で新しいコマンドが導入されました。これにより、VAAI UNMAP プリミティブをサポートするシン プロビジョニング LUN 上で、削除済みブロックを再利用できるようになりました。

コマンドはメンテナンス期間を設けることなく実行でき、再利用メカニズムは次のように強化されています。
  • 再利用するディスク容量のサイズを、パーセンテージの代わりにブロック単位で指定することができるようになり、直感的に計算できるようになります。
  • パフォーマンスの問題を回避するため、無効なディスク領域は、一度にすべてではなく段階的にで再利用されます。

62 TB の VMDK の導入により、UNMAP はより広大な無効領域を処理できるようになりました。ただし、UNMAP 操作は依然として手動で行う必要があります。これは、VMFS の Storage vMotion やスナップショットの統合タスクなどはアレイの LUN 上のディスク領域を自動的に再利用しないことを意味します。

Environment

VMware vSphere ESXi 7.x
VMware vSphere ESXi 8.X

Resolution

ディスク領域の再利用タスクを実行するには、次の 2つの方法があります。
  • esxcli コマンドを使用
  • vmkfstools コマンドを使用
SCSI UNMAP が LUN でサポートされているかどうかを確認するには、ESXi ホストへの SSH セッションを開き、このコマンドを実行します。

esxcli storage core device vaai status get -d naa.##############

次のような出力が表示されます。
naa.<ID>
VAAI Plugin Name: VMW_VAAIP_NETAPP
ATS Status: supported
Clone Status: supported
Zero Status: supported
Delete Status: supported

以下のような出力が表示された場合、ローカルデータストアでは SCSI UNMAP はサポートされていません。
naa.<ID>
VAAI Plugin Name:
ATS Status: unsupported
Clone Status: unsupported
Zero Status: unsupported
Delete Status: unsupported

esxcli コマンドを使用

シンプロビジョニング デバイス上の VMFS データストアで未使用のストレージブロックを再利用するには、次のコマンドを実行します。

esxcli storage vmfs unmap --volume-label=volume_label|--volume-uuid=volume_uuid --reclaim-unit=number

ボリュームをラベルまたは UUID で指定します。 
-l|--volume-label=volume_label : UNMAP する VMFS ボリュームのラベル

-u|--volume-uuid=volume_uuid : UNMAP する VMFS ボリュームの UUID

オプションで以下を指定できます。
-n|--reclaim-unit=number : 1 回の反復ごとに UNMAP する VMFS ブロックの数。これを指定しない場合、コマンドはデフォルトの値 200 を使用します。

例えば、MyDatastore という名前で UUID が 509a9f1f-########-####-########780e の VMFS ボリュームに対しては、以下のいずれかのコマンドを実行します。

esxcli storage vmfs unmap -l MyDatastore

または

esxcli storage vmfs unmap -u 509a9f1f-########-####-########780e

  • ほとんどの環境で、-n number または --reclaim-unit=number 引数にはデフォルト値の 200 が適していますが、一部のアレイ ベンダーではアレイが SCSI UNMAP コマンドを処理する方法に応じて、さらに大きい、または小さい値が提案される場合があります。
     
  • このコマンドは、.asyncUnmapFile というパターンを使用した名前で、データストアのトップレベルに一時的な隠しファイルを作成します。デフォルトでは、一時ファイルの領域予約は、基盤となるVMFSファイルシステムのブロックサイズに依存します(デフォルトは--reclaim-unit = 200です)。
     
    • 1 MB ブロックの VMFS3 / VMFS5 では 200 MB
    • 4 MB ブロックの VMFS3 では 800 MB
    • 8 MB ブロックの VMFS3 では 1,600 MB
  • 使用例に応じて、たとえば、予約サイズが大きすぎると思われる場合や、アレイにオフロードした際に UNMAP プリミティブが予定どおりに完了しないおそれがある場合に、管理者は異なる --reclaim-unit 値を選択することができます。--reclaim-unit 値を手動で定義する場合の最適な値またはベスト プラクティスについては、vSphere 管理者からストレージ アレイ プロバイダにご確認いただくことをお勧めします。
     
  • UNMAP 操作が中断された場合は、一時ファイルが VMFS データストアのルートに残る場合があります。ただし、同じデータストアに対してコマンドを再度実行し、正常に完了すれば、そのファイルは削除されます。.asyncUnmapFile--reclaim-unit サイズを超えて大きくなることはありません。

  • esxcli storage vmfs unmap コマンドは Zero Page Reclaim 機能を利用しません。UNMAP プロセス中、ESXi はストレージアレイに SCSI UNMAP コマンドを送信し、割り当て解除可能な空きブロックを通知します。その後、アレイ側で再利用プロセスを完了させるために、必要なゼロページ/ゼロブロック操作を内部で実行する必要があります。アレイレベルでゼロページ操作が失敗する、または非効率である場合、ゲスト OS 内で FStrim コマンドを使用することが代替案となります。ただし、この手法のエンドツーエンドのワークフローやサポートについては、SAN アレイベンダーにご確認ください。

vmkfstools コマンドを使用

代替として、 vmkfstools コマンドに -y スイッチを付けて、未使用のストレージブロックを再利用することもできます。従来、このコマンドは特定の割合の領域のみを再利用するためにのみ使用できましたが、現在はブロック単位に対応するように調整されています。

使用方法は次のとおりです。

vmkfstools -y /vmfsPath
[--reclaimBlocksUnit #blocks]


例:

vmkfstools -y --reclaimBlocksUnit 200 /vmfs/volumes/vmfsPath

注:



Additional Information