公有雲 Azure Windows Server 2022 熱修補

Azure雲環境部署VM支援熱修補 多機更新又快又放心

熱修補更新系統免重啟 地端建雲版虛機也能享用

2022-12-05
本文將說明Hotpatch的運作架構和機制,以及如何在Azure公有雲環境中部署支援熱修補機制的Windows Server 2022虛擬主機,並同時管理單台和多台Azure VM虛擬主機的安全性更新,除了能夠有效降低企業的時間成本,還能確保主機具備最新安全性更新。

過去,時常困擾企業和組織的難題之一,多是安全性更新的安裝時機和重新啟動主機的問題。雖然微軟已經盡力將安裝更新後重新啟動主機的次數減少,然而對於企業的營運服務來說,每次重新啟動主機的動作,都可能造成營運服務產生中斷時間,但是不安裝安全性更新又會讓主機暴露在高資安風險當中。

此外,對IT預算及管理人員充足的大型企業來說,每項重要服務都有建立高可用性和容錯移轉叢集機制,因此更新後重新啟動主機的動作,並不會對營運服務造成任何中斷影響。然而,對IT預算和管理人員本就不多的中小型企業來說,每次安裝安全性更新後重新啟動主機的動作,便會中斷運作中的營運服務。同時,有可能在管理人員不足的情況下,並未測試和檢查安全性更新是否有任何影響,而貪圖方便冒然地為營運服務主機直接安裝更新,將可能因為更新導致營運服務啟動失敗,或產生其他非預期性的錯誤,造成營運服務停止而導致企業更多的損失,或者索性不更新避免營運服務中斷,但是主機卻反而遭受惡意攻擊的新聞也時有所聞。

因此,微軟在2021年6月時,推出「熱修補」(Hotpatch)的「公開預覽」(Public Preview)版本,並在2022年2月時推出熱修補的「正式發行」(General Availability,GA)版本。簡單來說,透過最新的熱修補技術,如圖1所示,執行安全性更新安裝作業時,將會直接針對Windows Server伺服器中,記憶體內部運作的系統程序進行程式碼修補的動作,不僅主機的運作不受干擾,同時其他運作的執行程序和服務也無須停止,並且修補完畢後的Windows Server也無須重新啟動,順利達成安全性更新和修補的目的,且不影響企業組織的「服務等級協議」(Service Level Agreement,SLA)。

圖1  熱修補Code Flow運作架構示意圖。 (圖片來源:Hotpatching on Windows - Microsoft Tech Community)

在Hotpatch熱修補GA展示影片中,可以看到二台VM虛擬主機皆採用Windows Server 2022 Azure Edition版本,左側主機採用傳統Windows Update,右側主機採用最新的熱修補技術,並且在安裝安全性更新的同時,還進行檔案複製作業,以便證明熱修補技術在進行更新作業時,也絲毫不影響主機的運作,可以看到右側主機在「51秒」時,已經安裝好二個安全性更新,而左側主機仍在處理第一個安全性更新,並且安裝進度僅到13.4%,如圖2所示,並且傳統Windows Update安裝完畢後,系統會提示必須重新啟動主機才能套用生效。

圖2  傳統Windows Update機制和最新熱修補技術更新比較。 (圖片來源:Announcing General Availability of Hotpatch for Windows Server 2022 Azure Edition)

值得注意的是,最新的Hotpatch熱修補技術,在傳統的Windows Server 2022 Standard或Datacenter版本中並未支援,必須採用Windows Server 2022 Datacenter: Azure Edition版本才能支援。此外,提醒企業組織的管理人員,倘若有整合新的特色功能時務必確認採用的版本是否支援,舉例來說,Azure擴充網路、透過QUIC的SMB等等這幾項最新技術都必須採用Azure Edition版本才能支援,如圖3所示。

圖3  Windows Server 2022版本功能差異比較表。 (圖片來源:Windows Server 2022 Standard、Datacenter和Datacenter Azure Edition版本的比較 | Microsoft Learn)

此時,管理人員可能會問,那麼企業組織的地端資料中心是否也能運作Windows Server 2022 Datacenter: Azure Edition版本?答案是可以的,只要採用Azure Stack HCI 21H2和後續版本,那麼便可以透過「Azure權益」(Azure Benefits)機制建立VM虛擬主機,並安裝Windows Server 2022 Datacenter: Azure Edition作業系統,運作在地端資料中心內的Azure Stack HCI超融合基礎架構中。

簡單來說,只要在Azure Stack HCI 21H2環境中啟用Azure權益機制,系統就會在AzSHCI叢集環境中為每台AzSHCI叢集節點主機啟動HciSvc服務,並且啟動後的HciSvc服務會至Azure公有雲取得通過簽署的憑證,並將憑證存放在AzSHCI叢集節點主機記憶體保護區內。屆時將透過Azure平台驗證服務,讓AzSHCI叢集環境中的VM虛擬主機以為自己運作在Azure公有雲環境中。 因此,在AzSHCI叢集內建立VM虛擬主機,並安裝Windows Server 2022 Datacenter : Azure Edition作業系統之後,當Azure Edition作業系統執行自我驗證機制,驗證所處環境是否為Azure公有雲環境時,HciSvc服務將會傳遞不可路由的REST端點,給予AzSHCI叢集環境中運作的VM虛擬主機進行存取。此時,HciSvc服務便會將剛才儲存在記憶體保護區內憑證進行回應,讓VM虛擬主機以為自己運作在Azure公有雲環境中,但實際上VM虛擬主機是運作在企業地端資料中心內的AzSHCI叢集,如圖4所示。

圖4  地端Azure Stack HCI叢集啟用Azure權益機制運作架構示意圖。 (圖片來源:Azure Stack HCI上的Azure權益- Azure Stack HCI | Microsoft Learn)

了解熱修補運作機制

事實上,熱修補的運作方式為針對Windows Update最新累積更新建立基準線,一般來說累積更新包含所有安全性和品質更新,而且安裝後需要重新啟動主機才能套用生效,而熱修補則是以無須重新啟動主機的更新為基礎,並將基準線以新的累積更新後定期更新。

因此,當使用熱修補機制後,VM虛擬主機將具備更高的可用性(較少的重新啟動主機次數),以及更快速的更新作業(較小型的安裝套件,且無須重新啟動的程式),同時達到安裝最新安全性更新的目的。

當熱修補機制建立具備Windows Update最新累積更新的基準線之後,負責熱修補技術的團隊將會定期發行,例如基準線建立月份的第二個星期二。接著,熱修補機制將無須重新啟動的安全性更新,每三個月定期使用最新的累積更新來重新整理計畫性基準線。基準線有兩種類型,分別是「計畫性基準線」(Planned Baselines)和「非計畫性基準線」(Un-planned Baselines):

‧計畫性基準線:定期發行,並在兩者之間發行適用於熱修補的安全性更新。計畫性基準線包含該月份最新累積更新中的所有更新,並且安裝後需要重新啟動主機才能套用生效。如圖5所示,從範例排程中可以看到,日曆年度中共有五個計畫性基準線版本,以及八個熱修補安全性更新版本。

‧非計畫性基準線:一旦有重大事件,必須立即發行安全性更新時,例如Zero-Day修補程式等等,並且無法快速發行熱修補時,便會啟動非計畫性基準線。一旦發行非計畫性基準線後,將會以該月份的非計畫性基準線取代熱修補版本。事實上,非計畫性基準線也包含該月份的最新累積更新中的所有更新,並且安裝後需要重新啟動主機才能套用生效。如圖5所示,在範例排程說明中,共有兩個非計畫性基準線版本,這些月份將會取代當月的熱修補版本。

圖5  熱修補技術安全性更新發行版本、計畫性基準線、非計畫性基準線示意圖。 (圖片來源:Windows Server Azure Edition的Hotpatch | Microsoft Learn)

建立支援熱修補的虛機

了解熱修補運作架構和機制之後,接下來將實戰演練如何在Azure公有雲環境中,建立支援熱修補機制的Azure VM虛擬主機。

事實上,在Windows Server 2022 Datacenter: Azure Edition版本中,仍然有區分為容易操作和管理的GUI圖形模式「桌面體驗」(Desktop Experience)模式,以及著重整體效能僅支援文字介面的「伺服器核心」(Server Core)模式。

當需要部署Azure Edition版本,並且體驗相關特色功能時,先參考官方說明文件,確保所採用的VM虛擬主機映像檔,支援所需要的特色功能,如圖6所示。舉例來說,由於熱修補機制,是透過直接在記憶體中修補需要更新的程式碼,需要花費大量的開發時程,所以目前僅Server Core模式支援,但微軟官方已經說明,熱修補機制的預計目標為支援所有GUI圖形模式的Windows作業系統,不僅是Windows Server連客戶端Desktop版本也將支援熱修補機制。

圖6  不同Azure Edition版本映像檔,支援的特色功能清單。 (圖片來源:適用於Windows Server的Automanage | Microsoft Learn)

首先,登入Azure Portal管理畫面,在部署VM虛擬主機時,於Image欄位選擇目前支援熱修補機制的映像檔。請注意,若選擇尚未支援的映像檔版本,將無法順利為VM虛擬主機註冊和啟用熱修補機制,並且系統也會提醒目前支援熱修補機制的映像檔名稱,如圖7所示。

圖7  選擇未支援的映像檔時,將無法為VM虛擬主機註冊和啟用熱修補機制。

因此,在Azure Portal畫面Basics頁籤中請確保選擇正確的VM映像檔版本,目前支援熱修補機制的映像檔版本為「Windows Server 2022 Datacenter: Azure Edition Core - Gen2」,如圖8所示,而其他欄位設定值,依照管理習慣進行設定即可。

圖8  選擇目前支援熱修補機制的VM虛擬主機映像檔。

一旦選擇到正確支援熱修補機制的VM虛擬主機映像檔時,預設情況下系統將會自動為VM虛擬主機註冊熱修補機制。也可以在部署階段中切換到「Management」頁籤,查看Guest OS updates下的「Enable hotpatch」欄位是否已經自動勾選,如圖9所示,確保即將部署的VM虛擬主機已經啟用熱修補機制,並且在Patch orchestration options下拉選單中也自動選擇「Azure-orchestrated」選項。

圖9  確認部署的VM虛擬主機啟用熱修補機制。

組態設定單台VM熱修補機制

當VM虛擬主機部署作業完成後,可以在Azure Portal的VM虛擬主機管理頁面中,點選左側選單「Operations > Updates」項目,便會看到針對該台VM虛擬主機熱修補機制的管理方式。目前支援Hotpatch、Update Management Center、Automation等三種方式進行安全性更新,可以依據管理習慣進行挑選,如圖10所示。

圖10  支援三種方式管理VM虛擬主機更新機制。

首先,點選「Go to Hotpatch」項目,進入單台VM虛擬主機的熱修補機制管理頁面後,可以按下「Check for updates」進行更新檢查,檢查之後系統會回報此台VM虛擬主機的更新情況。如果在部署VM虛擬主機時忘記勾選啟用熱修補技術的話,此時看到的Hotpatch status欄位狀態便為「停用中」(Disabled),如圖11所示。

圖11  部署VM虛擬主機時未啟用熱修補機制。

此時,點選上方Update settings項目,在Change update settings中,於Update settings to change下拉式選單中可以看到以下三個選項:

‧Periodic assessment:指定主機每24小時進行自動評估作業。

‧Hotpatch:指定主機使用熱修補機制進行安全性更新作業,並且安裝安全性更新後無須重新啟動主機,同時在安裝更新期間運作中的應用程式和服務也無須停止。

‧Patch orchestration:指定主機採用傳統Windows Update方式,自動或手動方式進行安全性更新安裝作業,或是針對啟用Azure Arc機制的伺服器,透過Azure Orchestration機制進行安全性的更新安裝作業。

在本文實作環境中,勾選「Hotpatch」項目,並且勾選下方Enable Hotpatch項目後按下〔Next〕按鈕。在Machines頁面中,勾選本台VM虛擬主機後按下〔Next〕按鈕。在Review and change頁面中,確認無誤之後再按下〔Review and change〕按鈕,即可套用生效,如圖12所示。

圖12  為單台VM虛擬主機啟用熱修補機制。

此時,可以看到Hotpatch status欄位值,從原本的已停用轉變成「已啟用」(Enabled)。點選「See details」,可以看到Enablements status欄位為Enabled,表示VM虛擬主機已經順利啟用熱修補機制,而Readiness status欄位為Unknown,表示主機尚未接收到相關的熱修補安全性更新,如圖13所示。後續待微軟釋出熱修補的安全性更新時,系統將會自動於離峰時間進行安裝並且無須重新啟動主機。

圖13  順利為單台VM虛擬主機啟用熱修補機制。

管理和設定多台VM啟用熱修補機制

剛才的操作步驟,僅能針對「單台」VM虛擬主機進行操作,如果企業和組織中有「多台」Azure VM虛擬主機時,可以透過「更新管理中心」(Update Management Center)進行管理。在更新管理中心介面中,可以看到目前的VM虛擬主機數量,同時企業組織可以針對更新需求進行下列條件的過濾:

‧Subscription:針對訂閱帳戶進行過濾,預設將會選取所有訂閱帳戶。

‧Resource Group:針對資源群組進行過濾,預設選取所有資源群組。

‧Resource Type:針對資源種類進行過濾,支援已經啟用Azure Arc機制的主機以及Azure VM虛擬主機,預設選取所有資源種類。

‧Location:針對Azure資料中心進行過濾,預設選取所有Azure資料中心。

‧OS:針對VM虛擬主機客體作業系統過濾,支援Linux和Windows作業系統,預設選取所有作業系統。

在本文實作環境中,針對其中一個「Weithenn Labs - MSDN」訂閱帳戶中,名稱為「RG-EastAsia-Hotpatch」的資源群組,並且VM虛擬主機為「Windows」作業系統進行過濾。從Overview頁面中,可以看到過濾後的VM虛擬主機數量、安全性更新方式、安全性更新狀態等等資訊,如圖14所示。

圖14  透過更新管理中心組態設定多台VM虛擬主機安全性更新機制。

舉例來說,想要確保所有支援熱修補的VM虛擬主機皆啟用熱修補機制的話,點選「Manage > Machines > Select all > Update settings」,此時系統同樣開啟Change update settings畫面,選擇「Hotpatch」項目和勾選下方Enable Hotpatch項目。如圖15所示,在Machines頁面中,系統已經發現勾選的VM虛擬主機中有包含尚未支援熱修補機制的VM虛擬主機,可以先全選所有VM虛擬主機後,再勾選「Update selection to remove unsupported resource」項目,即可自動排除未支援Hotpatch機制的VM虛擬主機,在Review and change頁面中,確認無誤之後按下〔Review and change〕按鈕,就能夠一次大量啟用VM虛擬主機熱修補機制。

圖15  自動排除未支援熱修補機制的VM虛擬主機。

管理多台VM安全性更新

原則上,在Azure公有雲環境中,已經啟用熱修補機制的VM虛擬主機,將會自動安裝安全性更新並且無須重新啟動主機,而未支援熱修補機制的VM虛擬主機,系統預設值會自動安裝最新安全性更新。

同時,管理人員也可以很方便地透過更新管理中心,一次查看所有VM虛擬主機的更新狀態組態設定,並且一次為大量VM虛擬主機執行檢查、套用、安全更新等等動作。在本文實作環境中,可以看到目前三台主機皆有安全性更新需要安裝,其中二台主機已啟用熱修補機制,另一台則採用傳統Windows Update的預設值,總共有9個安全性更新可進行安裝,如圖16所示。

圖16  透過安全管理中心一覽大量VM虛擬主機的安全性更新情況。

首先,切換到「Manage > Machines」頁面,勾選Select all項目以選取所有VM虛擬主機後,選擇「Check for updates > Access now」,確保所有VM虛擬主機再次檢查安全性更新情況。檢查完成後,在每台VM虛擬主機的Update status欄位,將會顯示該台VM虛擬主機有多少安全性更新需要安裝,可以交由系統機制在適當時間自動安裝,或是立即幫所有VM虛擬主機安裝安全性更新。

確認要為所有VM虛擬主機立即安裝更新,按下「One-time update > Install Now」,然後在Machines頁面中勾選希望立即安裝更新的VM虛擬主機,如果選單中未顯示時,可以按下Add Machine手動加入。值得注意的是,目前僅支援一次最多部署「20台」VM虛擬主機的更新作業。

在Updates頁面中,可以針對安全性更新的類別、KB號碼、更新釋出時間等等進行過濾,如圖17所示,舉例來說,按下Include update classification後,可以僅勾選Critical Updates和Security Updates這二項進行更新,確認後按下〔Next〕按鈕。

圖17  確認為VM虛擬主機立即安裝哪些安全性更新。

在Properties頁面中,可以在Reboot options下拉式選單中,選擇主機重新啟動的選項,分別支援「在必要時重新啟動」(Reboot if required)、「永不重新啟動」(Never reboot)、「一律重新啟動」(Always reboot)。至於維護時間,則是指定允許安裝更新的時間,支援的上限時間為「235」分鐘。最後,在Review + install頁面中確認組態設定,若無誤後按下〔Install〕按鈕即可。

待所有VM虛擬主機完成安裝更新作業後,回到安全管理中心的Overview頁面,即可看到所有主機的安全性更新狀態(圖18)。若需要,可點選Update installation status中安全性更新的相關數字,查看每台主機安裝哪些安全性更新和細節資訊。

圖18  透過安全管理中心一覽所有主機安全性更新狀態。

結語

透過本文的深入剖析和實作演練後,管理人員應該已經理解Hotpatch的運作架構和機制,以及實務上如何在Azure公有雲環境中部署支援熱修補機制的Windows Server 2022虛擬主機,並同時管理單台和多台Azure VM虛擬主機的安全性更新,無論是支援或不支援熱修補機制的VM虛擬主機,都可以透過安全管理中心進行管理,除了有效節省企業和組織管理人員的時間成本外,更確保主機具備最新安全性更新,減少被網際網路惡意攻擊的機會。

<本文作者:王偉任,Microsoft MVP及VMware vExpert。早期主要研究Linux/FreeBSD各項整合應用,目前則專注於Microsoft及VMware虛擬化技術及混合雲運作架構,部落格weithenn.org。>


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!