概要
このドキュメントでは、HyperFlex上に存在するシンプロビジョニング仮想マシン(VM)内の領域を再利用する方法のオプションについて説明します。
要件
このドキュメントに関する特別な要件はありません。
使用するコンポーネント
このドキュメントの例は、VMware vSphere Hypervisor(ESXi)6.5で検証されています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
問題:
HyperFlexには、解放されたシンプロビジョニングVM内の領域を再利用するメカニズムはありません。シンプロビジョニングにより、仮想ディスクをオンデマンドで拡張できます。これにより、シックプロビジョニングと比較して、ストレージシステムのスペースをより効率的に使用できます。シンプロビジョニングされた仮想ドライブ上のファイルが削除されても、ディスクサイズは自動的に縮小されません。これは、オペレーティングシステムがファイルシステムテーブルからインデックスのみを削除するためです。この結果、ファイルの削除は迅速に行われるように見えますが、領域の再利用は行われません。
ソリューション:
HyperFlexクラスタ上のMicrosoft Windows VM内の領域を再利用する
このセクションでは、シンプロビジョニングされた仮想ドライブの領域を再利用する方法について説明します。これらのツールは、削除したデータブロックをゼロにします。ブロックをゼロにする操作を実行する前に、バックアップがあることを確認してください。また、手順を完了したVMに以前のスナップショットがないことを確認します。これには、SENTINELスナップショットが含まれます。SENTINELスナップショットを削除すると、VMが長時間停止します。すべてのスナップショットを削除する前にVMの電源を切って、VMを停止しないようにすることができます。
VMwareおよびスナップショット管理の詳細については、次の記事を参照してください。
スナップショットを削除すると、仮想マシンが長時間停止する可能性があります
vSphere環境でスナップショットを使用するためのベストプラクティス
Microsoft Windows VM上のシンプロビジョニングされたディスクの領域を再利用する
SDeleteは、スペースを再利用するために使用されるMicrosoft Sysinternals Suiteの無料ユーティリティです。
注意:SDelete -zを指定すると、仮想マシンのオペレーティングシステムは、空き領域がゼロの間に使用可能なディスク容量の100%を使用します。これにより、データストアの使用領域が一時的に増加します。
ENOSPC状態になった場合、またはHyperflexクラスタが読み取り専用モードになっている場合は、逆効果の可能性があるため、この点に注意してください。つまり、(SDeleteの結果として)1つまたは複数のVMDKの使用率が100%まで増加した場合、使用されるHyperflexクラスタ全体のストレージ容量が大幅に増加することになるため、注意して使用する必要があります
次のスクリーンショットは、SDeleteを実行する前のVM VMDK側を示しています。
SDeleteをターゲットVMにダウンロードしたら、ファイルを解凍します。
cmdと入力して、コマンドプロンプトアプリケーションを開きます。右クリックして、Run as administratorを選択します。
SDeleteを解凍したディレクトリに移動します。
sdelete.exe -z <drive letter>: コマンドを入力し、[Agree] をクリックします。
次のスクリーンショットは、SDelete操作後のVM VMDKサイズを示しています。
HyperFlexクラスタ上のLinux VM内の領域を再利用
ddユーティリティを使用すると、削除されたデータが存在する領域をゼロにすることができます。df -hと入力して、Linux OSの空き容量を確認します。
空き領域をゼロにするには、dd bs=1M count=90112 if=/dev/zero of=zeroコマンドを入力します。
このコマンドは、90 GBのスペースをゼロにします。このコマンドをユースケースに合わせて変更します。
コマンド入力の内訳:
bsは、使用されるブロックサイズです
countはブロック数です
ifは入力ファイルです
ofは出力ファイルです
これが完了すると、VMDKファイルが拡張されます。
次のスクリーンショットは、vCenterでのVMDKのサイズを示しています。
スペースを再利用するには、rm zeroコマンドを入力します。
/$ sudo rm zero
[sudo] password for user: <---Enter password for user
このスクリーンショットには、ゼロファイルの削除後のvCenterのVM VMDKサイズが示されています。
関連情報