VMware vSphereで「Virtual machine disks consolidation is needed」エラーを根本的に解決する方法

VMware tutorial - IT technology blog
VMware tutorial - IT technology blog

vCenter上の警告:単なる表示エラーではない

vCenterを開くと、Summaryタブに黄色い文字で「Virtual machine disks consolidation is needed」と表示されていることがあります。*Delete All Snapshot*をクリックしても, このメッセージが消えないことがあります。これはシステム管理者にとって非常によくある、かつストレスの溜まる状況です。

この警告を軽視してはいけません。スナップショットファイル(デルタファイル)が長期間放置されると、仮想マシンのI/Oパフォーマンスが20%から50%低下する可能性があります。さらに、デルタファイルが肥大化してDatastoreの容量を使い果たすと、仮想マシンが「stun(ハングアップ)」状態になります。以前、15個以上の古いスナップショットが重なり、SQLサーバーが完全に停止してしまったケースを対応したことがあります。

なぜVMwareはこのエラーを表示するのか?

通常、スナップショットを削除すると、VMwareはデルタファイルのすべてのデータをベースディスク(.vmdk)に統合(consolidate)します。このプロセスが中断されると、vCenterにエラーが表示されます。主な原因は以下の通りです:

  • バックアップソフトウェアとの競合: VeeamやCommvaultなどのツールは、*HotAdd*メカニズムを使用してVMディスクをプロキシにマウントします。バックアッププロセスがクラッシュすると、ディスクがロック(locked)されたままになり、統合できなくなります。
  • Datastoreの容量不足: ディスク統合プロセスには、バッファとして約5〜10%の空き容量が必要です。Datastoreの空き容量が数GBしかない場合、プロセスは確実に失敗します。
  • 別のホストでのファイル「スタック」: クラスター環境では、メタデータの同期エラーにより、別のESXiホストが.vmdkファイルのロックを保持し続けている場合があります。
  • スナップショットチェーンが長すぎる: スナップショットを72時間以上放置すると、データインデックスが非常に複雑になります。

シンプルな方法から高度な方法まで、3つの解決ステップ

データの安全性を確保するため、以下の順序で実行してください。

方法1:システムの再計算を強制する(The Double Snapshot Trick)

これは「毒を以て毒を制す」非常に効果的なテクニックです。通常のConsolidateボタンでエラーが出る場合、VMwareに新しいアンカーポイントを作成させます。

  1. 新しいスナップショットを作成する(名前は任意。例:「Fix_Error」)。
  2. 作成完了後、Snapshots -> Delete All Snapshots を選択する。

この操作により、VMwareはメタデータチェーン全体を再スキャンし、古いデルタファイルをすべて統合するように強制されます。この方法で一般的なケースの約90%が解決します。

方法2:SSHを使用してファイルを見つけ、ロックを解除する

上記の方法で「File is locked」エラーが出る場合は、コマンドラインからより深く介入する必要があります。対象の仮想マシンが稼働しているESXiホストにSSHで接続してください。

まず、VMが格納されているディレクトリに移動し、どのホストがロックを保持しているかを確認します:

cd /vmfs/volumes/TEN_DATASTORE/TEN_VM/
vmkfstools -D ten_o_cung-flat.vmdk

結果の中の「Owner」行を確認してください。表示されたMACアドレスが現在のホストと一致しない場合は、そのMACアドレスに該当するホストに移動して管理サービスを再起動する必要があります。

方法3:Management Agentsの再起動

ときどき hostd または vpxa サービスがハングアップし、仮想マシンのステータスが正しく更新されないことがあります。これらは、実行中の仮想マシンを停止させることなく再起動できます:

# ESXiホスト上でこのコマンドを実行
/etc/init.d/hostd restart
/etc/init.d/vpxa restart

実行後、vCenterに戻り、もう一度 Consolidate をクリックしてください。通常、これでボタンが正常に動作するようになります。

実践的なアドバイス:手遅れになる前に対策を

システムを常に健全な状態に保つために、私は以下の「黄金律」を適用しています:

  1. 72時間ルール: スナップショットを3日以上保持しない。スナップショットは長期的なバックアップソリューションではありません。
  2. 空き容量20%のしきい値: Datastoreの空き容量を常に最低20%確保する。容量が少なくなると、スナップショット操作は時限爆弾となります。
  3. 定期的なバックアップ確認: 統合エラーが頻発する場合は、Veeamのログを確認してください。ファイルロックを避けるために、*Direct Storage Access* モードの再設定が必要な場合があります。
  4. 自動化: PowerCLIスクリプトを使用して、毎朝システムをスキャンします。`Get-VM | Where-Object {$_.ExtensionData.Runtime.ConsolidationNeeded}` というコマンドを使えば、ユーザーから苦情が来る前にエラーのあるVMを見つけることができます。

VMwareのエラー対応は難しくありません。重要なのはVMFSシステムのファイルロックの仕組みを理解することです。この共有が、夜勤中の皆さんの時間を節約する助けになれば幸いです。

Share: