Azure 定期執(zhí)行更新,以提高虛擬機(jī)的主機(jī)基礎(chǔ)結(jié)構(gòu)的可靠性、性能及安全性。 更新包括如下更改:修補(bǔ)托管環(huán)境或升級以及解除硬件授權(quán)。 大多數(shù)此類更新在執(zhí)行時(shí)不會(huì)影響托管的虛擬機(jī)。 但是,也會(huì)存在更新產(chǎn)生影響的情況:
如果維護(hù)不需重新啟動(dòng),Azure 會(huì)在更新主機(jī)時(shí)使用就地遷移來暫停 VM。
如果維護(hù)需重新啟動(dòng),系統(tǒng)會(huì)告知計(jì)劃維護(hù)的時(shí)間。 在這些情況下,系統(tǒng)會(huì)提供一個(gè)時(shí)間窗口,方便我們在適當(dāng)?shù)臅r(shí)間自行啟動(dòng)維護(hù)。
需要重新啟動(dòng)的計(jì)劃內(nèi)維護(hù)是按批進(jìn)行計(jì)劃的。 每個(gè)批具有不同的作用域(區(qū)域)。
一個(gè)批從向客戶發(fā)送通知開始。 默認(rèn)情況下,向訂閱所有者和共同所有者發(fā)送通知。 可以向通知添加更多收件人和消息傳送選項(xiàng)(如電子郵件、短信和 Webhook)。
發(fā)出通知不久,將設(shè)置自助式維護(hù)時(shí)段。 在此時(shí)段內(nèi)可以找到包含在此批中的虛擬機(jī),并開始通過主動(dòng)重新部署來進(jìn)行維護(hù)。
自助式維護(hù)時(shí)段過后,就會(huì)開始計(jì)劃內(nèi)維護(hù)時(shí)段。 在此期間,Azure 會(huì)計(jì)劃所需的維護(hù),并將其應(yīng)用于虛擬機(jī)。
設(shè)置這兩個(gè)時(shí)段的目的是,在了解 Azure 何時(shí)將自動(dòng)啟動(dòng)維護(hù)時(shí),提供足夠的時(shí)間來啟動(dòng)維護(hù)和重新啟動(dòng)虛擬機(jī)。
可以使用 Azure 門戶、PowerShell、REST API 和 CLI 查詢 VM 的維護(hù)時(shí)段并啟動(dòng)自助式維護(hù)。
Note
如果嘗試啟動(dòng)維護(hù)失敗,Azure 會(huì)將 VM 標(biāo)記為“已跳過”,并在計(jì)劃內(nèi)維護(hù)時(shí)段期間不重新啟動(dòng)它。 而是,稍后通過新計(jì)劃與你聯(lián)系。
在門戶中查看計(jì)劃用于維護(hù)的虛擬機(jī)
安排了計(jì)劃的大量維護(hù)并發(fā)送通知后,可以觀察受即將到來的大量維護(hù)影響的虛擬機(jī)列表。
可以使用 Azure 門戶,并查找計(jì)劃進(jìn)行維護(hù)的 VM。
登錄到Azure 門戶。
在左側(cè)導(dǎo)航欄中,單擊“虛擬機(jī)”。
在“虛擬機(jī)”窗格中,單擊“列”按鈕,打開可用列的列表。
選擇并添加以下列:
維護(hù) - 顯示虛擬機(jī)的維護(hù)狀態(tài)。 下面是可能的值:
值說明
立即啟動(dòng)虛擬機(jī)位于自助維護(hù)窗口中,用戶可以自行啟動(dòng)維護(hù)。 請參閱以下內(nèi)容,了解如何在虛擬機(jī)上啟動(dòng)維護(hù)
計(jì)劃已安排虛擬機(jī)進(jìn)行維護(hù),無需用戶啟動(dòng)維護(hù)。 可以在此視圖中選擇“自動(dòng)計(jì)劃”窗口或單擊虛擬機(jī)來查看維護(hù)窗口
已完成已成功啟動(dòng)并完成虛擬機(jī)維護(hù)。
已跳過已經(jīng)選擇啟動(dòng)維護(hù),但沒有成功。 Azure 已經(jīng)取消了虛擬機(jī)維護(hù),將在稍后重新安排
稍后重試已選擇啟動(dòng)維護(hù),但 Azure 無法滿足你的要求。 在這種情況下,可以稍后重試。
主動(dòng)維護(hù) - 顯示可以自行啟動(dòng)虛擬機(jī)維護(hù)的時(shí)間范圍。
計(jì)劃的維護(hù) - 顯示 Azure 重新啟動(dòng)虛擬機(jī)以完成維護(hù)的時(shí)間范圍。
門戶中的通知和警報(bào)
Azure 通過向訂閱所有者和共有者組發(fā)送電子郵件來傳達(dá)計(jì)劃維護(hù)的安排。 可以通過創(chuàng)建 Azure 活動(dòng)日志警報(bào),為此通信添加其他收件人和頻道。 有關(guān)詳細(xì)信息,請參閱通過 Azure 活動(dòng)日志監(jiān)視訂閱活動(dòng)
登錄到Azure 門戶。
在左側(cè)菜單中選擇“監(jiān)視”。
在“監(jiān)視 -活 動(dòng)日志”窗格中,選擇“警報(bào)”。
在“監(jiān)視 - 警報(bào)”窗格中,單擊“+ 添加活動(dòng)日志警報(bào)”。
填寫“添加活動(dòng)日志警報(bào)”頁中的信息,請務(wù)必在“條件”中設(shè)置以下內(nèi)容:類型:維護(hù);狀態(tài):全部(請勿將狀態(tài)設(shè)置為“活動(dòng)”或“已解決”);級別:全部
若要詳細(xì)了解如何配置活動(dòng)日志警報(bào),請參閱創(chuàng)建活動(dòng)日志警報(bào)
從門戶啟動(dòng)虛擬機(jī)維護(hù)
在查看虛擬機(jī)詳細(xì)信息時(shí),將能夠看到更多維護(hù)相關(guān)的詳細(xì)信息。
如果虛擬機(jī)包含在計(jì)劃的大量維護(hù)中,則會(huì)在在虛擬機(jī)詳細(xì)信息視圖的頂部添加新的通知功能區(qū)。 此外,如有必要,可以添加一個(gè)新選項(xiàng)來啟動(dòng)維護(hù)。
單擊維護(hù)通知以查看維護(hù)頁面,其中包含計(jì)劃維護(hù)的更多詳細(xì)信息。 從這里將能夠開始維護(hù)虛擬機(jī)。
開始維護(hù)后,虛擬機(jī)將重新啟動(dòng),維護(hù)狀態(tài)得以更新,在幾分鐘內(nèi)反映結(jié)果。
如果錯(cuò)過了可以開始維護(hù)的窗口,當(dāng) Azure 重新啟動(dòng)虛擬機(jī)時(shí),仍然可以看到該窗口。
使用 PowerShell 檢查維護(hù)狀態(tài)
還可以使用 Azure Powershell 查看 VM 計(jì)劃何時(shí)維護(hù)。 使用-status參數(shù)時(shí)可通過Get-AzureRmVMcmdlet 獲得計(jì)劃內(nèi)維護(hù)信息。
僅當(dāng)有計(jì)劃內(nèi)維護(hù)時(shí),才會(huì)返回維護(hù)信息。 如果未計(jì)劃任何影響 VM 的維護(hù),該 cmdlet 不返回任何維護(hù)信息。
PowerShell復(fù)制
Get-AzureRmVM-ResourceGroupNamergName-NamevmName-Status
在 MaintenanceRedeployStatus 下返回以下屬性:
值說明
IsCustomerInitiatedMaintenanceAllowed指示此時(shí)是否可以在 VM 上啟動(dòng)維護(hù)
PreMaintenanceWindowStartTime可以在 VM 上啟動(dòng)維護(hù)的自助式維護(hù)時(shí)段的起點(diǎn)
PreMaintenanceWindowEndTime可以在 VM 上啟動(dòng)維護(hù)的自助式維護(hù)時(shí)段的終點(diǎn)
MaintenanceWindowStartTime可以在 VM 上啟動(dòng)維護(hù)的計(jì)劃內(nèi)維護(hù)時(shí)段的起點(diǎn)
MaintenanceWindowEndTime可以在 VM 上啟動(dòng)維護(hù)的計(jì)劃內(nèi)維護(hù)時(shí)段的終點(diǎn)
LastOperationResultCode上次嘗試在 VM 上啟動(dòng)維護(hù)的結(jié)果
還可以通過使用Get-AzureRmVM并不指定 VM 來獲取資源組中所有 VM 的維護(hù)狀態(tài)。
PowerShell復(fù)制
Get-AzureRmVM-ResourceGroupNamergName--Status
以下 PowerShell 函數(shù)獲取訂閱 ID,并輸出計(jì)劃維護(hù)的 VM 列表。
PowerShell復(fù)制
functionMaintenanceIterator{Select-AzureRmSubscription-SubscriptionId$args[0]$rgList=Get-AzureRmResourceGroupfor($rgIdx=0;$rgIdx-lt$rgList.Length ;$rgIdx++)? ? {$rg=$rgList[$rgIdx]$vmList=Get-AzureRMVM-ResourceGroupName$rg.ResourceGroupNamefor($vmIdx=0;$vmIdx-lt$vmList.Length ;$vmIdx++)? ? ? ? {$vm=$vmList[$vmIdx]$vmDetails=Get-AzureRMVM-ResourceGroupName$rg.ResourceGroupName-Name$vm.Name-Statusif($vmDetails.MaintenanceRedeployStatus )? ? ? ? ? ? {Write-Output"VM: $($vmDetails.Name)? IsCustomerInitiatedMaintenanceAllowed: $($vmDetails.MaintenanceRedeployStatus.IsCustomerInitiatedMaintenanceAllowed) $($vmDetails.MaintenanceRedeployStatus.LastOperationMessage)"}? ? ? ? ? }? ? }}
使用 PowerShell 在 VM 上啟動(dòng)維護(hù)
如果IsCustomerInitiatedMaintenanceAllowed設(shè)置為 true,以下命令使用上一部分中函數(shù)的信息,在 VM 上啟動(dòng)維護(hù)。
PowerShell復(fù)制
Restart-AzureRmVM-PerformMaintenance-name$vm.Name-ResourceGroupName$rg.ResourceGroupName
后續(xù)步驟
了解如何使用計(jì)劃事件從 VM 內(nèi)注冊維護(hù)事件。立即訪問http://market.azure.cn