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に新しいアンカーポイントを作成させます。
- 新しいスナップショットを作成する(名前は任意。例:「Fix_Error」)。
- 作成完了後、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 をクリックしてください。通常、これでボタンが正常に動作するようになります。
実践的なアドバイス:手遅れになる前に対策を
システムを常に健全な状態に保つために、私は以下の「黄金律」を適用しています:
- 72時間ルール: スナップショットを3日以上保持しない。スナップショットは長期的なバックアップソリューションではありません。
- 空き容量20%のしきい値: Datastoreの空き容量を常に最低20%確保する。容量が少なくなると、スナップショット操作は時限爆弾となります。
- 定期的なバックアップ確認: 統合エラーが頻発する場合は、Veeamのログを確認してください。ファイルロックを避けるために、*Direct Storage Access* モードの再設定が必要な場合があります。
- 自動化: PowerCLIスクリプトを使用して、毎朝システムをスキャンします。`Get-VM | Where-Object {$_.ExtensionData.Runtime.ConsolidationNeeded}` というコマンドを使えば、ユーザーから苦情が来る前にエラーのあるVMを見つけることができます。
VMwareのエラー対応は難しくありません。重要なのはVMFSシステムのファイルロックの仕組みを理解することです。この共有が、夜勤中の皆さんの時間を節約する助けになれば幸いです。

