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

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

book

Article ID: 327800

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

この記事でシン プロビジョニングデバイス用のVMFSデータストア上で不使用ストレージブロックを再クレームする手順が提供します。
vSphere 5.5 では、esxcli 名前空間で新しいコマンドが導入されました。これにより、VAAI UNMAP プリミティブをサポートするシン プロビジョニング LUN 上で、削除済みブロックが再利用できます。

コマンドはメンテナンス期間を設けることなく実行でき、再利用メカニズムは次のように拡張されました。
  • 再利用サイズは、パーセント値ではなく、ブロック単位で指定することができます。これにより、さらに直感的に計算できるようになります。
  • デッドディスクスペースは、パフォーマンスの問題を回避するために、一度にすべてではなく、増分で再利用されます。
62 TBのVMDKの導入により、UNMAPははるかに大きなデッドスペース領域を処理できるようになりました。ただし、UNMAP操作は依然として手動です。これは、VMFS の Storage vMotion または Snapshot Consolidation タスクがアレイ LUN のディスクスペースを自動的に再利用しないことを意味します。

Symptoms:

免責事項:これは英文の記事 「Using esxcli in vSphere 5.5 and 6.0 to reclaim VMFS deleted blocks on thin-provisioned LUNs (2057513)」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。


Environment

VMware vSphere ESXi 7.0.0
VMware vSphere ESXi 6.0
VMware vSphere ESXi 6.5
VMware vSphere ESXi 6.7

Resolution

注:ESXi 6.5 以降の VMFS-6 としてデータストアを使用している場合、この記事は適用されません。

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

esxcli storage core device vaai status get -d naa

次のような出力が表示されます。

naa.60a98000572d54724a346a6170627a52
VAAI Plugin Name: VMW_VAAIP_NETAPP
ATS Status: supported
Clone Status: supported
Zero Status: supported
Delete Status: supported

esxcli コマンドを使用します
シンプロビジョニングされたデバイスの VMFS データストアで未使用のストレージブロックを再利用するには、次のコマンドを実行します。
 
esxcli storage vmfs unmap --volume-label=volume_label|--volume-uuid=volume_uuid --reclaim-unit=number
 
コマンドで使用できるオプションは次のとおりです。
  • -l|--volume-label=volume_label

    UNMAP する VMFS ボリュームのラベル。これは必須の引数です。この引数を指定する場合は、-u|--volume-uuid=volume_uuid を使用しないでください。
  • -u|--volume-uuid=volume_uuid

    UNMAP する VMFS ボリュームの UUID。これは必須の引数です。この引数を指定する場合は、-l|--volume-label=volume_label を使用しないでください。
     
  • -n|--reclaim-unit=number

    反復ごとに UNMAP する VMFS ブロックの数。これは、オプションの引数です。これを指定しない場合、コマンドはデフォルトの値 200 を使用します。

たとえば、名前が MyDatastore で UUID が 509a9f1f-4ffb6678-f1db-001ec9ab780e の VMFS ボリュームの場合は、次のコマンドを実行します。
 
esxcli storage vmfs unmap -l MyDatastore

または

esxcli storage vmfs unmap -u 509a9f1f-4ffb6678-f1db-001ec9ab780e
 
  • ほとんどの環境で、-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 操作が中断された場合は(たとえば CTRL + C キーを押すなど)、一時ファイルが VMFS データストアのルートに残る場合があります。ただし、データストアに対してコマンドを再度実行すると、コマンドが正常に完了するとファイルが削除されます。.asyncUnmapFile--reclaim-unit サイズを超えて大きくなることはありません。
vmkfstools コマンドを使用します
代替として、未使用のストレージブロックを再利用するにあたりスイッチ -y を使用した vmkfstools コマンドを使用できます。従来、このコマンドは特定の割合のスペースのみを再利用するためにのみ使用できましたが、現在はブロックに対応するように調整されています。

ユースケースは次のとおりです。

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

例:

vmkfstools -y --reclaimBlocks 200 /vmfs/devices/disks/naa.6589cfc00000056ef3af090272007105

注:

Additional Information