2 ノードの VMWare クラスター (Simplivity) があり、ハードウェアのメンテナンス (電源オフなど) を行う予定です。そのため、VM ゲストをクリーンにシャットダウンし、その後、元に戻したいと考えています。実行中のゲストはかなりの数 (約 200) あり、vsphere 経由で手動でこれを行うと、かなり時間がかかります。起動の順序付けが必要な起動時の依存関係によって、この作業は多少複雑になります。そのため、コマンド ラインを使用してこれを実行したいと考えています。
vim-cmd vmcsv/power.shutdown <vmid>
...
vim-cmd vmcsv/power.on <vmid>
VMを停止して起動するテストケースを実行しました。CLI経由ではうまくいきましたが、vsphere経由でVMを起動しようとすると、VMwareは以前実行されていたノードとは別のノードでVMを起動することを決定し、新しいvmidを割り当てました。
VM の実行中に vmid を識別できますが、ESX ホストを再起動するとどうなるでしょうか? 以前にキャプチャした vmid は引き続き VM を参照しますか? それとも、VM を識別して起動する別の方法を見つける必要がありますか?
(HPE に問い合わせるつもりでしたが、過去 3 回連絡した際のアドバイスは悲惨なほど間違っていました)
答え1
これらは ESX の再起動後も保持されますが、完全に静的ではありません。クラスタ内では一意ですが、DRS によって VM が移行されると変更されます。したがって、(過去のある時点から名前と vmid がわかっている場合) 安全に再起動する方法は次のとおりです。
vim-cmd vmsvc/getallvms | grep '$VMNAME' | grep $VMID && vim-cmd vmsvc/power.on $VMID