瞭解 Azure VM 的系統重新啟動

Azure 虛擬機 (VM) 有時可能會因為任何明顯原因而重新啟動,而無須證明您已起始重新啟動作業。 本文列出可能導致 VM 重新啟動的動作和事件,並提供如何避免非預期重新啟動問題或降低這類問題影響的深入解析。

設定 VM 以獲得高可用性

保護在 Azure 上執行的應用程式免於 VM 重新啟動和停機的最佳方式,是設定 VM 以獲得高可用性。

若要為您的應用程式提供此層級的備援,建議您將可用性設定組中的兩個或多個 VM 分組。 此設定可確保在計劃性或非計劃性維護事件期間,至少有一個 VM 可供使用,且符合 99.95% 的 Azure SLA

如需可用性設定組的詳細資訊,請 參閱管理 VM 的可用性

資源健康狀態資訊

Azure 資源健康狀態 是一項服務,可公開個別 Azure 資源的健康情況,並提供可採取動作的疑難解答問題指引。 在無法直接存取伺服器或基礎結構元素的雲端環境中,資源健康狀態 的目標是減少您花費在疑難解答上的時間。 特別是,目標是減少您花費在判斷問題根源位於應用程式或 Azure 平臺內事件的時間。 如需詳細資訊,請參閱瞭解和使用 資源健康狀態

如果 Azure 進一步了解平臺起始的虛擬機無法使用的根本原因,則該資訊可能會在初始無法使用後最多 72 小時張貼在資源健康狀態中。

活動記錄檔中遺漏 VM 停機時間

資源健康狀態 會根據活動記錄信息來傳送警示。 在某些情況下,VM 停機時間可能不會顯示在活動記錄中。 如果活動記錄中未顯示停機時間,資源健康狀態 不會針對停機時間傳送警示。 停機時間仍會顯示在 資源健康狀態 中。

以下是活動記錄中未顯示 VM 停機時間的情況:

  • 當 VM 建立或移轉至新的主機時,Azure 平臺不會正確顯示 VM 狀態,且狀態會變更為 [未知]。 只有在建立所有網路連線和節點進程之後,VM 狀態才會變更為 [可用]。 [未知] 狀態的較長期間會從活動記錄中篩選掉。
  • 當 VM 可用性狀態從 [可用] 變更為 [無法使用],然後在 35 秒內回到 [可用] 時,停機時間不會顯示在活動記錄中。 如果在第一次轉換發生前 15 分鐘內傳送相互關聯的停機時間,則不會發生此情況。
  • 如果 VM 健康情況從狀態變更為未知,然後回到原始狀態,間歇性未知狀態和相關的轉換會從活動記錄中篩選掉。

活動記錄中未顯示的 VM 停機時間會在 Azure 平臺端進行篩選,以防止暫時性錯誤對客戶顯示不正確的停機時間。 隨著 VM 健康狀態質量的持續投資,可能不再需要篩選,而且可能會導致 VM 健康情況的快速變更仍未回報。 Microsoft 正致力於逐步淘汰計劃,以提供最佳的客戶體驗。

可能導致 VM 重新啟動的動作和事件

計劃性維護

Microsoft Azure 會定期在全球各地執行更新,以改善 VM 基礎結構的可靠性、效能和安全性。 其中許多更新,包括記憶體保留更新,都會執行,而不會影響您的 VM 或雲端服務。

不過,某些更新確實需要重新啟動。 在這種情況下,VM 會在我們修補基礎結構時關閉,然後重新啟動 VM。

若要了解什麼是 Azure 計劃性維護,以及其如何影響 Linux VM 的可用性,請參閱這裡所列的文章。 這些文章提供有關 Azure 計劃性維護程式的背景,以及如何排程計劃性維護以進一步降低影響。

記憶體保留更新

針對 Microsoft Azure 中的此類更新,使用者不會影響其執行中的 VM。 這些更新中有許多是元件或服務,這些元件或服務可以在不干擾執行中實例的情況下進行更新。 有些是主機操作系統上的平臺基礎結構更新,不需要重新啟動 VM 即可套用。

這些記憶體保留更新是透過可啟用就地即時移轉的技術來完成。 更新時,VM 會處於 暫停 狀態。 當基礎主機作業系統收到必要的更新和修補程式時,此狀態會在 RAM 中保留記憶體。 VM 通常會在暫停的 30 秒內繼續。 VM 繼續之後,其時鐘會自動同步處理。

由於暫停時間很短,因此透過此機制部署更新可大幅降低對 VM 的影響。 不過,並非所有更新都可以以此方式部署。

可用性設定組中 VM 的多重實例更新 () 一次套用一個更新網域。

注意事項

具有舊核心版本的Linux機器會在此更新方法期間受到核心異常的影響。 若要避免此問題,請更新為核心版本 3.10.0-327.10.1 或更新版本。 如需詳細資訊, 請參閱主機節點升級之後,以 3.10 為基礎的核心上的 Azure Linux VM 異常

用戶起始的重新啟動或關機動作

如果您從 Azure 入口網站、Azure PowerShell、命令行介面或 REST API 執行重新啟動,您可以在 Azure 活動記錄中找到事件。

如果您從 VM 的作業系統執行動作,可以在系統記錄中找到事件。

通常會導致 VM 重新啟動的其他案例包括多個組態變更動作。 您通常會看到警告訊息,指出執行特定動作會導致 VM 重新啟動。 範例包括任何 VM 重設大小作業、變更系統管理帳戶的密碼,以及設定靜態 IP 位址。

適用於雲端和 Windows Update 的 Microsoft Defender

Microsoft Defender 適用於雲端的每日 Windows 和 Linux VM 監視遺漏的作業系統更新。 適用於雲端的Defender會根據Windows VM上設定的服務,從 Windows Update 或 Windows Server Update Services (WSUS) 擷取可用的安全性和重大更新清單。 適用於雲端的Defender也會檢查Linux系統的最新更新。 如果您的 VM 缺少系統更新,適用於雲端的 Defender 建議您套用系統更新。 這些系統更新的應用是透過 Azure 入口網站 中的適用於雲端的 Defender 來控制。 套用一些更新之後,可能需要 VM 重新啟動。 如需詳細資訊,請參閱在 Microsoft Defender for Cloud 中套用系統更新

和內部部署伺服器一樣,Azure 不會將更新從 Windows Update 推送至 Windows VM,因為這些機器是要由其使用者管理。 不過,建議您保持啟用自動 Windows Update 設定。 從 Windows Update 自動安裝更新也可能導致在套用更新之後重新啟動。 如需詳細資訊,請參閱 Windows Update 常見問題

影響 VM 可用性的其他情況

在其他情況下,Azure 可能會主動暫停使用 VM。 您會在採取此動作之前收到電子郵件通知,因此您將有機會解決基礎問題。 影響 VM 可用性的問題範例包括安全性違規和付款方式的到期。

主機伺服器錯誤

VM 裝載於在 Azure 資料中心內執行的實體伺服器上。 除了一些其他 Azure 元件之外,實體伺服器還會執行稱為「主機代理程式」的代理程式。 當實體伺服器上的這些 Azure 軟體元件沒有回應時,監視系統會觸發主機伺服器重新啟動以嘗試復原。 在許多情況下,VM 會在 10-15 分鐘內再次可用,並繼續在相同的主機上運作。

伺服器錯誤通常是硬體故障所造成,例如硬碟或固態硬碟故障。 Azure 會持續監視這些發生次數、識別基礎 Bug,並在實作並測試風險降低之後推出更新。

因為某些主機伺服器錯誤可能是該伺服器特有的,所以手動將 VM 重新部署至另一部主機伺服器,可能會改善重複的 VM 重新啟動情況。 您可以使用 VM 詳細數據頁面上的 [重新部署] 選項,或是停止並重新啟動 Azure 入口網站 中的 VM,來觸發此作業。

自動復原

如果主機伺服器因為任何原因而無法重新啟動,Azure 平臺會起始自動復原動作,讓錯誤的主機伺服器退出輪替,以供進一步調查。

該主機上的所有 VM 都會自動重新置放到其他狀況良好的主機伺服器。 雖然此程式通常會在 15 分鐘內完成,但復原所需的時間可能會因數個因素而有所不同,包括主機記憶體的大小和採用的復原方法。 若要深入了解自動復原程式,請參閱 VM 的自動復原

非計劃性維護

在少數情況下,Azure 作業小組可能需要執行維護活動,以確保 Azure 平台的整體健康情況。 此行為可能會影響 VM 可用性,而且通常會導致如先前所述的相同自動復原動作。

非計劃性維護包括下列專案:

  • 緊急節點重組
  • 緊急網路交換器更新

VM 損毀

VM 可能會因為 VM 本身的問題而重新啟動。 在 VM 上執行的工作負載或角色可能會在客體作業系統內觸發錯誤檢查。 如需判斷損毀原因的協助,請檢視 Windows VM 的系統和應用程式記錄,以及 Linux VM 的序列記錄。

Azure 中的 VM 依賴虛擬磁碟來存取裝載於 Azure 記憶體基礎結構上的作業系統和資料記憶體。 每當 VM 與相關聯虛擬磁碟之間的可用性或連線受到影響超過 120 秒時,Azure 平臺就會強制關閉 VM,以避免數據損毀。 在還原記憶體連線之後,VM 會自動重新開啟電源。 關機的持續時間可以短至五分鐘,但可能會大幅延長。

其他事件

在少數情況下,廣泛問題可能會影響 Azure 數據中心內的多部伺服器。 如果發生此問題,Azure 小組會傳送電子郵件通知給受影響的訂用帳戶。 您可以檢查 Azure 服務健康狀態儀錶板和 Azure 入口網站,以了解持續中斷和過去事件的狀態。

診斷 VM 重新啟動

您可以使用 VM 刀鋒視窗上的 [診斷] 和 [解決] 刀鋒視窗來執行其他診斷。 這可能會發現最近 VM 重新啟動的更具體原因。 如果有任何客體 OS 問題,請收集記憶體轉儲並連絡支持人員。

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群