vmware ESXi6.5以上? 削除できなくなった仮想マシンを削除する方法

  • by

作業は細心の注意を以って行ってください。誤った作業をすると稼働中のサーバを削除するハメになったりします。また、この方法で100%確実に解消されるかどうかは判りませんので、各自の判断にて行ってください。当方は一切の責任を負いません。


焦ってバージョン違いを見落とした…

やっちまいました。。ESXi 6.7 u2 のバックアップデータを誤って、ESXi 6.5 へクローンしてしまいました。当然、ESXi 6.5 は仮想マシンバージョン13で、ESXi 6.7u2 は仮想マシンバージョン14です。

下位互換はあるようで無いので、ツールを使ってインポートしたところ「親なし状態の仮想マシン」になってしまいました。。


https://cdn-ak.f.st-hatena.com/images/fotolife/z/zokibayashi/20180905/20180905210144.png
画像は上記ページからお借り致しました。まさにこんな感じになります。。

で、参考となるページを拝見すると、「メンテナンスモード」に切り替えないと削除できないという…稼働しているサーバは大量にあるので、そんな事はできません。という訳でコマンドから削除する事にしました。

あ、当然 ShellかSSHを有効にしてくださいね。この辺りの手順は当然あるものとして割愛します。

まず vmid を調べる

# vi /etc/vmware/hostd/vmInventory.xml

これで、対象となるサーバのvmidを調べます。<objID></objID>の間に数字が埋まっていると思います。自分の場合には、14 が埋まっていました。サマリーがどうなっているか確認してみます。

# vim-cmd vmsvc/get.summary 14

(vim.vm.Summary) {
   vm = 'vim.VirtualMachine:14',
   runtime = (vim.vm.RuntimeInfo) {
      device = <unset>,
      host = 'vim.HostSystem:ha-host',
      connectionState = "invalid",
      powerState = "poweredOff",
      faultToleranceState = "notConfigured",
      dasVmProtection = (vim.vm.RuntimeInfo.DasProtectionState) null,
      toolsInstallerMounted = false,
      suspendTime = <unset>,
      bootTime = <unset>,
      suspendInterval = <unset>,
      question = (vim.vm.QuestionInfo) null,
      memoryOverhead = <unset>,
      maxCpuUsage = 0,
      maxMemoryUsage = 0,
      numMksConnections = 0,
      recordReplayState = "inactive",
      cleanPowerOff = <unset>,
      needSecondaryReason = <unset>,
      onlineStandby = false,
      minRequiredEVCModeKey = <unset>,
      consolidationNeeded = false,
      offlineFeatureRequirement = <unset>,
      featureRequirement = <unset>,
      featureMask = <unset>,
      vFlashCacheAllocation = <unset>,
      paused = false,
      snapshotInBackground = false,
      quiescedForkParent = <unset>,
      quiesceFailed = <unset>
   },
....

おー、殆どが unset と定義されていない状況でした。。やっぱりですね。対象となる仮想サーバが間違いない事を確認できたので、早速削除します。参考ページでは vmInventory.xml の編集でしたが、自分はコマンドで行いました。

vmsvc/unregister というコマンド

はい、もうざっくりいきます。

# vim-cmd vmsvc/unregister 14

終わり。
はい、終わりです。これで、vmInventory.xml を確認してみた所、ちゃんと消えていました。このサーバは仕方ないので、仮想サーババージョン13で新たに作成するハメになりましたが、メンテナンスモードにしたり色々と手間を掛けずに処理できました。

ただし、この後に同名のサーバを作ろうとすると、一見うまく行くように見えますが構成の変更ができなかったり色々とトラブるので、その名前は使わないようにしましょう。

参考になれば幸いです。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください