對(duì)虛擬主機(jī)進(jìn)行維護(hù)是為確保能夠?qū)φ谶\(yùn)行的IT環(huán)境進(jìn)行很好的審計(jì)并符合IT標(biāo)準(zhǔn)以及流程的要求。更為重要的是,對(duì)虛擬主機(jī)進(jìn)行維護(hù)能夠確保及時(shí)應(yīng)用特定的Windows安全更新。 盡管有幾種方式都能夠?qū)⑻摂M主機(jī)置于維護(hù)模式,但我經(jīng)歷過(guò)的最簡(jiǎn)單的方式是使用附帶了SCVMM安裝程序的系統(tǒng)中心虛擬機(jī)管理器(SCVMM)PowerShell cmdlets。
你可以使用虛擬機(jī)管理器控制臺(tái)將虛擬主機(jī)置于維護(hù)模式,但每次只允許對(duì)單個(gè)節(jié)點(diǎn)或集群執(zhí)行維護(hù)操作。SCVMM提供了Disable-SCVMHost PowerShell cmdlet,你可以對(duì)一臺(tái)或多臺(tái)虛擬主機(jī)執(zhí)行維護(hù)操作。 開(kāi)啟SCVMM維護(hù)模式之前的流程 在調(diào)用SCVMM維護(hù)模式流程之前有一些事情你需要了解。
首先,如果一臺(tái)虛擬主機(jī)屬于一個(gè)集群或者是一個(gè)Hyper-V集群的一部分,那么運(yùn)行在該主機(jī)上的所有虛擬機(jī)將會(huì)被在線遷移到故障切換集群的另一個(gè)節(jié)點(diǎn)上。如果你在使用SCVMM執(zhí)行維護(hù)操作,那么你將會(huì)被問(wèn)到是否打算將所有正在運(yùn)行的虛擬機(jī)在線遷移到集群中的另一個(gè)節(jié)點(diǎn)。
如果你打算使用Disable-SCVMHost PowerShell cmdlet,那么還必須使用MoveWithinCluster參數(shù)。 如果虛擬機(jī)沒(méi)有在故障切換集群中被配置為高可用,那么當(dāng)開(kāi)啟維護(hù)模式時(shí),與被在線遷移到故障切換集群內(nèi)其他節(jié)點(diǎn)的虛擬機(jī)不同,這些虛擬機(jī)將會(huì)被保留下來(lái)。
如果虛擬主機(jī)沒(méi)有加入集群,那么維護(hù)模式過(guò)程將保留所有正在虛擬主機(jī)上運(yùn)行的虛擬機(jī)。 如何將虛擬主機(jī)置于維護(hù)狀態(tài) 以下是幾個(gè)使用Disable-SCVMHost PowerShell cmdlet的例子: 為將單臺(tái)虛擬主機(jī)置于維護(hù)狀態(tài),可以在SCVMM服務(wù)器上執(zhí)行如下PowerShell命令: $VMHost = Get-SCVMHost –ComputerName “VHostServer” Disable-SCVMHost –VMHost $VMHost -MoveWithinCluster 請(qǐng)注意Disable-SCVMHost命令如果使用-MoveWithinCluster參數(shù),會(huì)將虛擬機(jī)在線遷移到故障切換集群中的另一個(gè)節(jié)點(diǎn)上。 如果你打算將特定SCVMM主機(jī)組中的所有虛擬主機(jī)置于維護(hù)模式,那么可以使用如下PowerShell命令: $VMMGroup = Get-SCVMHostGroup –Name “Dallas” –VMServer “VHostServer.TechTarget.com” $HostsInVMMGroup = Get-SCVMHost –VMHostGroup ForEach ($EachHost in $HostsInVMMGroup { Disable-SCVMHost –VMHost $VMHost -$EachHost } SCVMM支持將Hyper-V主機(jī)、VMware ESX主機(jī)以及XenServer主機(jī)置于維護(hù)模式。連接ESX主機(jī)以及XenServer時(shí)維護(hù)過(guò)程可能使用不同的方法,但都是使用同一個(gè)命令行工具—Disable-SCVMHost cmdlet執(zhí)行維護(hù)模式操作。 當(dāng)虛擬主機(jī)被置于維護(hù)模式,SCVMM將自動(dòng)禁用新虛擬機(jī)創(chuàng)建、在線遷移功能并阻止單個(gè)主機(jī)以及主機(jī)集群加入SCVMM主機(jī)評(píng)級(jí)系統(tǒng)。
如下命令所示,從維護(hù)模式恢復(fù)需要使用SCVMM管理器或者運(yùn)行Enable-SCVMHost PowerShell cmdlet: $MyHost = Get-SCVMHost –ComputerName “VHostServer” Disable-SCVMHost –VMHost $MyHost Enable-SCVMHost 以及 Disable-SCVMHost PowerShell cmdlets 所支持的最為重要的功能之一是不用等待命令執(zhí)行完成就能夠?qū)⒖刂茩?quán)立刻交回PowerShell窗口。
你可以使用-RunAsynchronously參數(shù),創(chuàng)建一個(gè)工作線程執(zhí)行維護(hù)模式,然后立即退回到PowShell窗口。 SCVMM自動(dòng)維護(hù)模式過(guò)程的不足之處 有必要指出當(dāng)你將虛擬主機(jī)或者主機(jī)集群從維護(hù)模式恢復(fù)到正常模式時(shí),SCVMM將會(huì)恢復(fù)虛擬主機(jī)所提供的服務(wù)。盡管SCVMM允許虛擬主機(jī)或者集群從維護(hù)模式恢復(fù),參與由SCVMM智能定位功能所支持的SCVMM主機(jī)排名,但SCVMM維護(hù)恢復(fù)過(guò)程并不會(huì)將之前遷移走的虛擬機(jī)遷移回來(lái)。
SCVMM不會(huì)啟動(dòng)之前被保留下來(lái)的虛擬機(jī)。你必須手動(dòng)啟動(dòng)單臺(tái)虛擬主機(jī)上的所有虛擬機(jī)或者將虛擬機(jī)在線遷移回原虛擬主機(jī)以平均分配工作負(fù)載。這是SCVMM維護(hù)過(guò)程的眾多不足之一,也就是在虛擬主機(jī)能夠提供用戶服務(wù)前可能要增加一些人工操作。 盡管SCVMM能夠通過(guò)調(diào)用動(dòng)態(tài)優(yōu)化平衡集群內(nèi)的虛擬工作負(fù)載,但執(zhí)行動(dòng)態(tài)優(yōu)化,平均分配工作負(fù)載可能要花一些時(shí)間。