Azure 會定期進行更新,以提升虛擬機(VM)主機基礎設施的可靠性、效能與安全性。 更新可能包括修補主機環境,或升級與退役硬體。 大多數更新不會影響託管的虛擬機。 然而,更新會影響以下情境下的虛擬機:
如果維護不需要重啟,Azure 會在主機更新期間暫停虛擬機幾秒鐘。 這類維護作業會逐一套用在各個容錯網域。 若收到任何健康警告訊號,進度將停止。
如果維護需要重啟,你會收到維護計畫的通知。 在這些情況下,你會有一個通常為35天的時間窗口,讓你可以自行開始維護,前提是適合你。
需要重新啟動的計畫性維護將分批安排。 每個波浪的範圍(區域)不同:
- 一個分批階段始於發送給客戶的通知。 預設情況下,通知會發送給訂閱持有者及共同擁有者。 你可以透過 Azure Activity Log alerts,將收件人和訊息選項(如電子郵件、簡訊、網頁掛鉤)加入通知中。
- 通知時,會提供 自助服務窗口 。 在這個通常為 35 天的期間,你可以查詢哪些虛擬機被納入波次。 你可以根據自己的排程需求主動開始維護。
- 自助服務時段結束後,會開始排 定的維護時段 。 在這個期間的某個時候,Azure 會排程並套用所需的維護給你的虛擬機。
設置兩個視窗的目標是給你足夠時間開始維護和重新啟動虛擬機,同時知道 Azure 何時會自動開始維護。
你可以使用 Azure 入口網站、PowerShell、REST API 和 Azure CLI 查詢虛擬機 Scale Set VM 的維護時段,並開始自助維護。
你應該在自助服務時段開始維護嗎?
以下指引能幫助你決定是否在你選擇的時間開始維護。
Note
您的所有虛擬機可能並非都能使用自助維護。 要判斷你的虛擬機是否支援主動重新部署,請在維護狀態中尋找 「立即開始 」選項。 目前,Azure 雲端服務(Web/Worker Role)和 Azure Service Fabric 尚未提供自助維護服務。
不建議對使用 可用性設定組 的部署進行自助維護。 可用性集是高可用性組態,其中在任何時間點都只會有一個更新網域受到影響。 對於可用性設定組:
- 讓 Azure 觸發維護。 對於需要重新開機的維護,維護作業會以更新網域為單位逐一進行。 更新網域不一定會依序收到維護。 更新網域之間有 30 分鐘的間隔。
- 如果你擔心暫時失去部分容量(1/更新網域計數),你可以在維護期間配置額外的執行個體,輕鬆彌補這部分損失。
- 對於不需要重啟的維護,更新會在故障域層級套用。
以下情況請勿使用自助維護服務:
- 如果你經常關閉虛擬機,不管是手動、使用 DevTest Labs、自動關機,或是遵循排程。 在這種情況下,自助維護可能會讓維修狀態回復,並造成額外的停機時間。
- 對於您知道會在維護階段結束前遭到刪除的短期存在 VM。
- 適用於其大量狀態資料儲存在本機 (暫時性) 磁碟中,且您希望在更新後仍能保留這些資料的工作負載。
- 如果你經常調整虛擬機大小, 這種情況可能會讓維修狀態回復原狀。
- 如果您已採用排程事件,可讓您在維護停機開始前 15 分鐘主動進行容錯移轉,或優雅關閉工作負載。
如果你打算在排程維護階段不中斷地運行虛擬機,且上述反法則不適用,請使用自助維護。
以下情況下,最好使用自助維修:
- 你需要向管理層或客戶傳達一個精確的維護時段。
- 你需要在特定日期前完成維護。
- 例如,在多層級應用程式中,你需要控制維護順序,以確保安全復原。
- 你需要在兩個更新網域之間等待超過 30 分鐘的虛擬機恢復時間。 若要控制更新網域之間的時間間隔,您必須每次僅針對一個更新網域觸發虛擬機器的維護作業。
在入口網站中檢視受維護作業影響的虛擬機器擴展集
排定階段性計畫性維護時,您可以使用 Azure 入口網站檢視受即將到來之維護階段影響的虛擬機器擴展集清單。
登入 Azure 入口網站。
在左側選單中,選擇所有服務,然後選擇虛擬機器擴展集。
在 虛擬機器擴展集 下,選擇 編輯欄位 以開啟可用欄位清單。
在 「可用欄位 」區塊中,選擇 自助維護,然後移到 「已選取 欄位」清單。 選取 ,然後套用。
為了讓自助 維修 項目更容易找到,你可以將 「可用欄位 」區塊中的下拉選單從 「全部 」改為 「物業」。
自助維修欄位現已出現在虛擬機器擴展集清單中。 每個虛擬機器擴展集的自助維護行可有以下其中一種值:
| 價值觀 | Description |
|---|---|
| Yes | 您的虛擬機器擴展集中至少有一台 VM 在自助時段中。 您可以在自助服務期間隨時開始維護。 |
| No | 受影響的虛擬機器擴展集中,沒有任何 VM 在自助時段中。 |
| - | 您的虛擬機器擴展集並非計畫性維護階段的一部分。 |
入口網站中的通知與警示
Azure 透過發送電子郵件給訂閱擁有者及共同擁有者群組,通知計畫性維護的時程。 您可以透過建立活動日誌提醒,將收件人和管道加入此通訊中。 欲了解更多資訊,請參閱監控訂閱活動與Azure活動日誌。
登入 Azure 入口網站。
在左側選單中,選擇 「監視器」。
在監控選單中,選擇 服務健康。
在服務健康中,選擇 + 建立服務健康警示。
在 「建立警報規則 」頁面:
- 選取包含要針對計劃性維護事件進行監視之資源的相關 訂用帳戶 和 區域。
- 請具體說明以下事項:
- 服務:虛擬機器擴展集 和 虛擬機器
- 事件類型: 計畫性維護
在 動作中,將行動群組加入警報規則,以便在收到預定維護事件時發送通知或呼叫行動。
請在 警報規則細節欄填寫詳細資訊。
選取 [建立警示規則]。
欲了解更多如何設定活動日誌警示,請參閱 建立活動日誌警示
從入口網站開始維護您的虛擬機器擴展集
你可以在 虛擬機器擴展集 的總覽中看到更多維護相關的細節。 如果虛擬機器擴展集中至少有一個 VM 納入計畫性維護階段,頁面頂端附近會新增新的通知欄。 選擇通知功能區即可前往 維護 頁面。
在 維護 頁面,您可以看到哪個虛擬機實例受到計畫維護的影響。 要開始維護,請選擇對應受影響虛擬機的勾選框。 然後,選擇 開始維護。
在開始維護後,受影響的虛擬機在你的虛擬機器擴展組中會進行維護,暫時無法使用。 如果您錯過自助時段,您仍然可以看到由 Azure 維護虛擬機器擴展集的時段。
使用 PowerShell 檢查維護狀態
你可以使用 Azure PowerShell 查看 虛擬機器擴展集 中的虛擬機何時排程維護。 使用 參數時,可透過 -InstanceView Cmdlet 取得計劃性維護資訊。
維修資訊僅在計畫維護時回傳。 如果沒有排程維護會影響虛擬機實例,指令長就不會回傳任何維護資訊。
Get-AzVmssVm -ResourceGroupName rgName -VMScaleSetName vmssName -InstanceId id -InstanceView
以下屬性在 MaintenanceRedeployStatus 下被回傳:
| 價值觀 | Description |
|---|---|
| 是否允許客戶發起的維護 | 顯示你是否可以在此時開始維護虛擬機。 |
| PreMaintenanceWindowStartTime | 這是維護自助窗口的開始,你可以在虛擬機上啟動維護。 |
| PreMaintenanceWindowEndTime | 維護自助時段結束時,您可以啟動 VM 的維護。 |
| MaintenanceWindowStartTime | Azure 對您的虛擬機器啟動維護的排定開始時間。 |
| 維護窗口結束時間 | Azure 對您的 VM 啟動維護之已排定維護時段的結束時間。 |
| LastOperationResultCode | 這是最後一次嘗試啟動虛擬機維護的結果。 |
開始維護你的虛擬機實例,使用 PowerShell
如果 IsCustomerInitiatedMaintenanceAllowed 設 為 true,你可以在虛擬機上開始維護。 使用 Set-AzVmssVM cmdlet 並搭配 -PerformMaintenance 參數。
Set-AzVmssVM -ResourceGroupName rgName -VMScaleSetName vmssName -InstanceId id -PerformMaintenance
透過 CLI 檢查維護狀態
你可以透過 az VMS 清單實例查看計畫維護資訊。
維修資訊僅在計畫維護時回傳。 如果沒有排程影響虛擬機實例的維護,指令不會回傳任何維護資訊。
az vmss list-instances -g rgName -n vmssName --expand instanceView
每個虛擬機實例的 MaintenanceRedeployStatus 會回傳以下屬性:
| 價值觀 | Description |
|---|---|
| 是否允許客戶發起的維護 | 顯示你是否可以在此時開始維護虛擬機。 |
| PreMaintenanceWindowStartTime | 這是維護自助窗口的開始,你可以在虛擬機上啟動維護。 |
| PreMaintenanceWindowEndTime | 維護自助時段結束時,您可以啟動 VM 的維護。 |
| MaintenanceWindowStartTime | Azure 對您的虛擬機器啟動維護的排定開始時間。 |
| 維護窗口結束時間 | Azure 對您的 VM 啟動維護之已排定維護時段的結束時間。 |
| LastOperationResultCode | 這是最後一次嘗試啟動虛擬機維護的結果。 |
透過使用 CLI 開始虛擬機實例的維護
若 將 設定IsCustomerInitiatedMaintenanceAllowed,以下呼叫即啟動虛擬機實例的維護:
az vmss perform-maintenance -g rgName -n vmssName --instance-ids id
FAQ
問:為什麼現在需要重新啟動我的虛擬機?
A: 雖然大多數Azure平台的更新與升級不會影響虛擬機可用性,但在某些情況下,我們無法避免重啟託管在Azure的虛擬機。 我們已累積數項變更,因此需要重新啟動伺服器,這將導致虛擬機器重新開機。
問:如果我按照你們建議使用可用性組合來實現高可用性,我安全嗎?
答:部署在可用性設定組或虛擬機器擴展集中的虛擬機器會使用更新網域。 在執行維護時,Azure 會遵守更新網域的限制,不會從同一可用性集中的其他更新網域重新啟動虛擬機。 Azure 也會至少等 30 分鐘才會切換到下一組虛擬機。
若要深入了解高可用性,請參閱 Regions and availability for virtual machines in Azure。
問:我如何才能收到計畫性維護的通知?
A: 規劃的維護波次會先為一或多個 Azure 區域設定排程。 不久後,會向訂閱管理員、共同管理員、擁有者及貢獻者發送電子郵件通知(每封訂閱一封電子郵件)。 可透過活動日誌警示設定更多管道及接收者。 如果你將虛擬機器部署到已經排定計畫維護的區域,你將不會收到通知。 相反地,檢查虛擬機的維護狀態。
問:我在入口網站、PowerShell 或 CLI 中都沒有看到任何計畫維護的跡象。 怎麼了?
答: 與計畫性維護相關的資訊,僅在計畫性維護波期間,僅針對受計畫性維護影響的虛擬機提供。 如果你看不到資料,維護波可能已經結束(或還沒開始),或者你的虛擬機已經架設在更新的伺服器上。
問:有沒有辦法準確知道我的虛擬機什麼時候會受到影響?
答: 當我們設定時間表時,會設定一個幾天的時間範圍。 此視窗內伺服器(及虛擬機)的確切順序尚不明朗。 如果你想知道虛擬機更新的確切時間,可以使用 排程事件。 使用排程事件時,你可以在虛擬機內部查詢,並在虛擬機重啟前 15 分鐘收到通知。
問:重新啟動我的虛擬機需要多久?
答: 根據虛擬機的大小,重啟可能需要在自助維護期間花上好幾分鐘。 在排定維護期間由 Azure 發起的重啟期間,重啟通常約需 25 分鐘。 如果您使用雲端服務 (Web/背景工作角色)、虛擬機器擴展集或可用性設定組,則在排定的維護時段內,系統會在每組 VM (更新網域) 之間提供 30 分鐘的緩衝時間。
問:我在虛擬機上找不到任何維護資訊。 哪裡出了問題?
答: 有幾個原因可能導致你在虛擬機上看不到任何維護資訊:
- 你使用的訂閱標示為Microsoft Internal。
- 你的虛擬機沒有排程維護。 可能是維護波結束、取消,或是修改後你的虛擬機不再受到影響。
- 你的虛擬機清單檢視中沒有新增 維護 欄位。 雖然我們已將此欄位加入預設視圖,但若您設定檢視以顯示非預設欄位,必須手動將 維護 欄位加入虛擬機清單檢視。
問:我的虛擬機為何第二次被排定維護? Why?
答: 在某些使用案例中,您的 VM 會在您已完成維護並重新部署後,才被排定進行維護:
- 我們已取消維護分批階段,並用不同的有效酬載重新啟動。 可能是我們偵測到一個發生故障的有效載荷,因此需要再部署一個額外的有效載荷。
- 您的 VM 因硬體故障而遭服務修復到另一個節點。
- 你已經選擇停止(解除配置)並重新啟動虛擬機。
- 你已經開啟了虛擬機的 自動關機 功能。
下一步
了解如何透過 排程事件在虛擬機內註冊維護事件。