VMWareで仮想マシンのディスク統合を実行する方法

vSphere で「仮想マシンディスクの統合が必要です」という警告メッセージが表示されるのはなぜでしょうか?はい、これは基本的に、スナップショットを削除する際(「削除」または「すべて削除」オプションを使用)に、ディスク上の一部のファイルをメインの仮想ディスク(.vmdk)にマージできなかったことを意味しています。これは、VM が完全に最適化されていないことを意味し、バックアップが失敗し、パフォーマンスが低下する可能性があるため、少し面倒です。少し奇妙ですが、特にストレージに問題がある場合や大きなスナップショットチェーンがある場合、VMware は残った差分ディスクファイルを常にクリーンアップできるわけではないようです。スナップショットの削除に失敗した後や、スナップショットが多すぎる場合など、このメッセージが表示されることがあります。

Virtual machine Consolidation Needed status. Virtual Machine disks consolidation is needed.

コンテンツ:

最も一般的な原因は非常に単純です。

  • ストレージパフォーマンスの低下 — ストレージの遅延や過負荷状態の場合、スナップショットの削除はタイムアウトするか、未削除のファイルが残ってしまいます。これは、スナップショットのサイズが大きい場合やストレージパフォーマンスが低下している場合に特に顕著です。
  • VMFS データストアの空き容量が十分ではありません。VMware では、クリーンな統合を実行するために少なくとも約 1 GB の空き容量が必要です (データストアを拡張するか、ディスクを追加して VMware ESXi の VMFS 容量を増やすを参照してください)。
  • スナップショットファイルは、通常、vSphere または Veeam、HP Data Protector、NetApp VSC などのバックアップツールによってロックされます。バックグラウンドでバックアッププロセスが実行されている場合、ファイルがロックされ、統合がブロックされる可能性があります。これは、バックアップジョブ中にディスクが VM にホットアドされた場合にも発生するため、必要に応じてバックアップソフトウェアでディスクを手動で切断してください。ロックを保持しているプロセスがないか確認する必要があるかもしれません。
  • スナップショットの数がVMwareの推奨上限である32を超えています。この数に達すると、統合が困難になるか、まったく実行されなくなります。
  • バックグラウンド スナップショット統合プロセスはバックグラウンドで実行されており、巨大なチェーンを整理しようとして VM が停止してしまうことがあります。
  • vCenter とホスト間の一時的な接続の問題 — ネットワークの中断により、統合が失敗したり、停止したりする可能性があります。

VMware でディスクを統合する方法は?

「統合が必要です」という警告を修正するには、VMを右クリックし、「VM」 > 「アクション」 > 「スナップショット」 > 「統合」に進みます。この警告は、スナップショットの削除に失敗したり中断されたりした場合によく表示されます。

小さな確認ウィンドウが表示され、次の質問をします:

Confirm Consolidate This operation consolidates all redundant redo logs on your virtual machine. Are you sure you want to continue?

基本的には、vCenterに差分ディスクをメインディスクにマージするよう指示することになります。VMのサイズが大きい場合やスナップショットが大量にある場合は、しばらく時間がかかる可能性があります。この間、VMのパフォーマンスが低下する可能性がありますが、これは正常です。タスクが完了すると警告は消え、VMのディスクファイルはクリーンアップされます。

ディスク統合時にファイルロックエラーが発生する?解決策はこれだ

次のようなエラーが表示された場合:

Unable to access file since it is locked. An error occurred while consolidating disks: Failed to lock the file.

または

Consolidate virtual machine disk files - Unable to access file since it is locked.

これは、ESXiホスト上の何らかのプロセスがディスクファイルを保持していることが原因です。修正するには、ホスト上の管理エージェントを再起動してください。ホストにSSH接続して次のコマンドを実行することで実行できます。

services.sh restart

これで古いロックが解消される場合もありますが、それでも解決しない場合は、どのホストまたはプロセスがロックを保持しているかを確認する必要があります。方法は次のとおりです。

  1. VMFS データストアの VM ディレクトリに移動します。# cd /vmfs/volumes/your_datastore_name/your_vm_name
  2. ロックされたファイルを一覧表示し、誰がロックしているかを特定するには、次のコマンドを実行します。
    # for i in `ls`; do vmfsfilelockinfo -p $i ;done|grep 'is locked in\|Host owning the lock\|Total time taken' | sed 's|Host owning the lock on file is||g'|sed 's|Total time|---|g' | awk '{print $1}' |uniq
  3. ロックされているホストを示す出力が表示されます。特定のホストの場合は、そのホストにSSHで接続し、以下を実行します。
    # /etc/init.d/hostd restart# /etc/init.d/vpxa restart
  4. その後、統合を再度実行してみてください。

VMファイルがまだロックされている場合は、VMを(可能であれば)シャットダウンし、新しいスナップショットを作成し、「すべて削除」ですべてのスナップショットを削除してから、vMotionを使用してVMを別のホストに移動してみてください。これにより、ロックが解除され、統合が成功する場合もあります。

統合ボタンがグレー表示で、データストアが差分ファイルでいっぱいになっている場合は、スナップショットチェーンが壊れている可能性があります。VMをインベントリから削除し、データストアブラウザから再登録する必要があるかもしれません。より複雑なチェーンの問題については、壊れたスナップショットチェーンに関するこちらの記事など、VMwareのナレッジベースの記事をご覧ください。

PowerCLIを使用したクリーンアップと統合

PowerCLIを使い慣れているなら、統合が必要なVMの確認や一括実行を自動化するのに最適です。まず、vCenterまたはESXiホストに接続します。

Connect-VIServer hostname

統合を待機している VM を確認するには、次のコマンドを実行します。

Get-VM | Where-Object {$_. Extensiondata. Runtime. ConsolidationNeeded}

これにより、警告が出ているすべてのVMが一覧表示されます。次に、実際に統合を実行するには、以下の手順を実行します。

Get-VM | Where-Object {$_. Extensiondata. Runtime. ConsolidationNeeded} | ForEach-Object { $_. ExtensionData. ConsolidateVMDisks_Task() }

これにより、必要な各VMでプロセスが開始されます。30日以上経過したスナップショットのクリーンアップを自動化したい場合は、以下のスクリプトが役立ちます。

$VMs = Get-VM | Get-Snapshot | Where-Object {$_. Created -lt (Get-Date).AddDays(-30)} $VMs | ForEach-Object { $_. VM. ExtensionData. ConsolidateVMDisks() }

問題なく動作しますが、PowerCLI スクリプトは環境によっては少し予測できない場合があることに留意してください。そのため、初めての場合は、まずテスト VM で試してください。

これであの厄介な警告が解消されることを願っています。設定によっては、ホストの再起動やスナップショットの手動クリーンアップが必要になる場合もありますが、これらの手順でほとんどのシナリオに対応できるはずです。

まとめ

  • 警告が表示されたら、vSphere クライアントで右クリック > [統合] を選択します。
  • 統合に失敗した場合はファイル ロックを確認し、必要に応じて管理エージェントを再起動します。
  • この警告が再度表示されないように、ストレージ容量とスナップショットの数に注意してください。
  • PowerCLI は、特に大規模な環境で複数の VM を一度に管理するのに便利です。

まとめ

この作業は、特にストレージやロックが問題の原因になっている場合は面倒ですが、一度コツをつかんでしまえばそれほど大変ではありません。通常は、ディスクを統合してロックを解除するだけで、再び動作するようになります。それでも問題が解決しない場合は、スナップショットチェーンの消去やVMファイルの再インストールが必要になる場合があります。この方法が、スナップショットの停滞やディスクの乱雑化といった悩みの種を回避できることを願っています。