我有一個 2 節點 VMWare 叢集(簡單),我計劃對其進行一些硬體維護(即關閉它們)。因此,我想徹底關閉虛擬機器來賓,然後將它們恢復。有相當多的客戶端正在運行(~200),因此透過 vsphere 手動執行此操作將需要相當長的時間。這在某種程度上因啟動中的依賴關係而變得更加複雜,需要對啟動進行排序。因此,我希望透過命令列來執行此操作......
vim-cmd vmcsv/power.shutdown <vmid>
...
vim-cmd vmcsv/power.on <vmid>
我運行了停止和啟動虛擬機器的測試案例。透過 CLI,它很有效,但是當我嘗試透過 vSphere 啟動虛擬機器時,VMware 決定在之前運行的其他節點上啟動它,並且為其分配一個新的 vmid。
雖然我可以在虛擬機器運行時識別 vmid,但重新啟動 ESX 主機後會發生什麼?我之前捕獲的 vmid 是否仍會引用 VM?或者我需要找到一種不同的方式來識別虛擬機器並啟動它們?
(我會詢問 HPE - 但我最近 3 次聯繫他們的建議是災難性的錯誤)
答案1
事實證明,它們在 ESX 重新啟動後仍然存在,但它們並不是完全靜態的。儘管在叢集中是唯一的,但當 DRS 遷移 VM 時,它們確實會發生變化。因此,再次啟動它的安全方法(如果您知道過去某個時間點的名稱和 vmid)是:
vim-cmd vmsvc/getallvms | grep '$VMNAME' | grep $VMID && vim-cmd vmsvc/power.on $VMID