Storage vMotion でシン ディスクを移行したとき null ブロックが回収されない
search cancel

Storage vMotion でシン ディスクを移行したとき null ブロックが回収されない

book

Article ID: 322029

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms:

免責事項: これは英文の記事 「Storage vMotion to thin disk does not reclaim null blocks (2004155)」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。


 

  • Storage vMotion を使用して、同じブロック サイズの 2 つの VMFS ボリューム間でシン ディスクを移行した場合に、null ブロックが回収されません。
  • ターゲットのディスク タイプにシンを選択した場合でも、null ブロックがソースからターゲットにコピーされ、同じサイズの VMDK が生成されます。
  • VMware Tools Prepare を使用してオプションを圧縮するか、サードパーティ製品を使用してゲスト OS 内のディスク ブロックをゼロ クリアした後に、ディスクを縮小しようとすると、null ブロックがコピーされます。


Environment

VMware vSphere 7.0.x

Cause

この問題は、データストアのタイプ(VMFS3 または VMFS5)とは無関係に、ターゲット データストアとソース データストアでブロック サイズが同じであるときに発生します。

ソース ファイルシステムとターゲット ファイルシステムでブロックサイズが異なる場合は、レガシー datamover (FSDM) が使用されます。ソースとターゲットのブロックサイズが等しい場合は、新しい datamover (FS3DM) が使用されます。FS3DM が、VAAI と単なるソフトウェア コンポーネントのどちらを使用するかを決定します。どちらを使用した場合も、null ブロックは回収されません。

Resolution

これは予期される動作です。

この問題を回避するには、Storage vMotion を使用して、仮想マシンまたは VMDK をブロック サイズの異なるデータストアに移行します。これにより、ゼロ クリアされたディスク領域が回収されます。

シン プロビジョニング ディスク (VMDK) を圧縮するには、次の手順を実行します。
  1. ゲスト OS 内のサードパーティ製ツールを使用して、以前データが書き込まれたものの、その後、削除された可能性があるディスク ブロックをゼロ クリアします。
  2. Storage vMotion を使用して、仮想マシンまたは VMDK を、異なるブロック サイズでフォーマットされたデータストアに移行します。
たとえば、VMDK が 2 MB のブロックでフォーマットされたデータストア上に存在する場合は、ターゲット VMFS データストアを、1 MB、4 MB、または 8 MB のブロック サイズでフォーマットします。


ESXi/ESX 4.1 以降で、仮想ディスクの未使用領域を回収するには、次の手順を実行します。

注:vmkfstools の -K オプション (--punchzero) がサポートされている環境では、ブロック サイズが異なる別の VMFS データストアにクローン作成することなく、シン プロビジョニング仮想ディスクのゼロ クリアされたブロックを回収することができます。
  1. ディスクにスナップショットが作成されていないことを確認します。
     
  2. Windows 仮想マシンで、SDelete コマンド(または同様の機能を持つツール)を使用して、すべての未使用領域をゼロ クリアします。SDelete コマンドの構文は、SDelete -z ドライブ文字 です。SDelete を使用する場合は、必ずバージョン 1.6 以降を使用してください。

    注:未使用ブロックをすべてゼロ クリアすると、ディスクがフル サイズまで膨張し、eagerzeroed ディスクに変換されます。元のディスクがシン プロビジョニング ディスクの場合は、ディスクがフル サイズにまで拡張してもよいように十分な領域がデータストア上に存在することを確認してください。詳細については、「Determining if a VMDK is zeroedthick or eagerzeroedthick (1011170)」を参照してください。
     
  3. 仮想マシンをシャットダウンするか、一時的に仮想マシンから仮想ディスクを削除して、仮想ディスクを確実に未使用の状態にします。
     
  4. 次のコマンドを実行して、すべての未使用ブロックを消去します。

    vmkfstools -K /path/to/disk-name.vmdk


    注:punchzero (vmkfstools -K) コマンドは、NFS ベースの VMFS データストアには対応していません。

    このオプションを指定すると、ゼロ クリアされたすべてのブロックの割り当てが解除され、以前に割り当てられた、有効なデータが格納されているブロックのみが残されます。結果として生成される仮想ディスクはシン フォーマットになります。vmkfstools コマンドの詳細については、『ESX Configuration Guide』の「ゼロ クリアされたブロックの削除」を参照してください。


Additional Information