在企業實際生產環境,尤其是部署了服務器虛擬化之後,配置虛擬機自動重啓是一個很有必要的措施,即使當服務器出現問題或者計劃內維護完成之後又能夠自動重啓虛擬機,亦可以減少宕機時間。
今天的文章主要介紹在Hyper-V環境中使用PowerShell配置虛擬機自動重啓。
一、 使用Windows PowerShell查看尚未配置虛擬機自動重啓
系統內置的PowerShell可以允許您查看虛擬機配置的哪種自動啓動。而不是用鼠標右鍵VM選擇設置查看,在HYPER-V主機上使用如下 PowerShell命令和使用Get VM cmdlet通過管道輸送到選擇對象:
Get-VM –VMname * | Select-Object VMname,AutomaticStartAction
通過使用以上命令,我們不僅能查看其上承載的VM,並且顯示是否配置爲自動重啓
能夠發現當前主機上有兩臺虛擬機並且沒有被配置爲自動重啓
二、 配置虛擬機自動重啓
在Hyper-V中微軟提供了三種VM自啓動方式,即:
1) 無-不執行任何操作
2) 自動啓動(如果當服務停止時它仍然運行)
3) 始終自動重啓次虛擬機
當選擇自動啓動時,您也可以選擇是否配置爲延時啓動。
使用以下命令配置某一臺虛擬機爲自動啓動
Get-VM –VMname BJ-VMM-01 | Set-VM –AutomaticStartAction Start
如果想設置Hyper-V服務器上所有的虛擬機爲自動重啓,使用如下命令
Get-VM –VMname * | Set-VM –AutomaticStartAction Start
三、 配置虛擬機自動重啓(延遲)
如果Hyper-V服務器上運行着關鍵性業務,如DC服務器、SQL服務器以及System Center服務器,由於存在相應的依賴環境,尚未啓動SQL數據庫服務,那麼SCCM服務器的服務則無法啓動,因此,您可以配置SQL數據自動重啓,配置SCCM服務器延遲啓動,並設置一個延遲時間(如120S)
Get-VM –VMname BJ-SRV-01 | Set-VM –AutomaticStartDelay 120
使用如下命令查看已配置爲延遲啓動的虛擬機
Get-VM –VMname * | Select-Object VMname,AutomaticStartAction,AutomaticStartDelay
四、 配置多Hyper-V主機上VM自動重啓
在大型數據中心中,部署有大量的Hyper-V主機,那麼登錄到每一臺主機配置爲自動重啓將是不現實的操作,那麼同時多Hyper-V主機上啓用虛擬機自動重啓成爲了一種需求。
Get-VM –computername sysvh-33-202,sysvh-98-250 –VMname * | Select-Object VMname,AutomaticStartAction,AutomaticStartDelay
如果您有很多Hyper-V主機需要配置爲虛擬機自啓動,那麼下面的也是一種配置方式
$hosts = @{ComputerName = "sysvh-33-201","sysvh-33-202 Get-VM @hosts –VMname * | Set-VM –AutomaticStartAction start Get-VM @hosts –vmname * | Select-Object VMname,AutomaticStartAction,AutomaticStartDelay"}