vCenterで管理しているクラスターにおいて,仮想マシンをvMotionで他のホストに移動させようとすると,次のようなエラーがでて,仮想マシンを移動させられない場合があります。
これは,仮想マシンを構成しているファイル群の一部がロックされていて,書き込みができないことによる原因の可能性が高いです。
このような場合,どのようなトラブルシューティングを行うことができるでしょうか。
ロックされているファイルを特定する
まずは,どのファイルがロックされているのかを調査します。
様々な調査方法が考えられますが,最も簡単な方法は,仮想マシンの構成ファイル(.vmx)などが保存されているディレクトリ内の,vmware.logを確認する方法です。
仮想マシンが保存されているボリュームを選択して右クリックすると,ボリュームの中身をブラウザするメニューが現れます。
ボリューム内には,仮想マシンの名前ごとに作成されたフォルダがありますので,該当する仮想マシンのフォルダを選択します。
すると,その中に,vmware.logというファイルがありますので,ダウンロードして中身をテキストエディタなどで開いてみましょう。
そして,Failed to lock the fileという文字列を検索してみてください。そうすると,次のようなエラーメッセージが記録されているかもしれません。
2019-01-11T00:24:27.651Z| vmx| I125: Msg_Post: Error
vmx| I125: [msg.nvram.wback1] Could not create ‘/vmfs/volumes/00000000-00000000-0000-000000000000/SERVERNAME/SERVERNAME.nvram’: Failed to lock the file
2019-01-11T00:24:27.654Z| vmx| I125: Vigor_MessageRevoke: message ‘msg.nvram.wback1’ (seq 164825876) is revoked
2019-01-11T00:24:27.655Z| vmx| W115: NVRAMMGR: Failed to create default NVRAM file (SERVERNAME.nvram)
2019-01-11T00:24:27.655Z| vmx| I125: Module Nvman power on failed.
このようなエラーが出力されている場合は,.nvramファイルという,仮想マシンのBIOS情報を保存しているファイルがロックされており,編集ができないために,vMotionが失敗したことを読み取れます。
.nvramがロックされている場合の対処法
では,.nvramファイルがロックされている場合に,ロックを解除する方法はあるでしょうか。
残念ながら,仮想マシンがオンラインの状態では,ロックを解除する方法はありません。まれに,ESXiのマネジメントサービスを再起動することで,ロックが解除されることもあるようですが,たいていの場合は仮想マシンのシャットダウンが必要です。そして,次の手順でロックを解除することが可能です。
- 仮想マシンをシャットダウンする
- 別のホストにvMotionで移動させる
- 元のホストにvMotionで移動させる
- 仮想マシンの電源を入れる
この方法で.nvramのロックが解除されないようであれば,.vmxファイルを編集する必要があります。
- 仮想マシンをシャットダウンする
- .vmxファイルをダウンロードして,
“nvram = “SERVERNAME.nvram”
という行を探し,新しいnvramの名前に変更する - .vmxファイルをアップロードする
- 仮想マシンの電源を入れる
これで,新しい名前の.nvramファイルが作成され,仮想マシンが正常に起動することを確認します。
以上,「The VM failed to resume on the destination during early power on」というエラーがでて,.nvramファイルがロックされていることにより起動できない場合の対処法でした。
コメント