使用單一用戶群節點執行 VM 工作負載的最佳做法


如要在單一用戶群節點上執行 VM 工作負載,請先決定如何部署單一用戶群節點。具體來說,您必須決定需要多少個節點群組,以及節點群組應使用哪種維護政策:

  • 節點群組:如要選擇適當數量的節點群組,您必須權衡可用性和資源用量。雖然少量節點群組可讓您充分運用資源並節省費用,但會限制您只能使用單一可用區。跨多個區域部署節點群組可提高可用性,但可能會導致資源利用率降低。

  • 自動調度資源和維護政策:視您打算執行的作業系統和軟體授權需求而定,節點自動調度資源和您選擇的維護政策可能會影響授權費用和可用性。

如要正確決定如何使用單一用戶群節點,您必須仔細考量自身需求。

評估需求

下列章節列出幾項考量因素,建議您先瞭解這些因素,再決定需要多少節點群組,以及節點群組應使用哪項維護政策。

BYOL 和每個核心的授權

如果您打算自備授權 (BYOL) 至 Compute Engine,單一用戶群節點可協助您滿足這些授權規定的硬體需求或限制。

部分軟體和作業系統 (例如 Windows Server) 可依實體 CPU 核心授權,並可能限制您變更虛擬機器基礎硬體的頻率。節點自動調度資源和預設維護政策可能會導致硬體變更頻率超出授權條款的規定,進而產生額外的授權費用。

如要盡可能節省每個核心的 BYOL 費用,請考慮下列最佳做法:

  • 在基礎架構成本和授權成本之間取得平衡: 如要計算在 Compute Engine 上執行 BYOL 工作負載的總成本, 您必須同時考量基礎架構成本和授權成本。在某些情況下,盡量減少基礎架構費用可能會增加授權費用,反之亦然。舉例來說,就某些工作負載而言,使用具有大量核心的節點類型,在成本/效能方面可能是最佳選擇,但如果授權是依核心計價,可能會導致額外的授權費用。

  • 為 BYOL 和非 BYOL 工作負載使用不同的節點群組:為限制需要授權的核心數量,請避免在單一節點群組中混合使用 BYOL 和非 BYOL 工作負載,改用不同的節點群組。

    如果您使用多個不同的 BYOL 授權模型 (例如 Windows Server Datacenter 和 Standard),依授權模型分割節點群組有助於簡化授權追蹤作業,並降低授權費用。

  • 使用 CPU 超量配置和核心/記憶體比率高的節點類型:節點類型的通訊端、核心和記憶體比率各不相同。使用核心與記憶體比例較高的節點類型,並啟用 CPU 超量配置,有助於減少需要授權的核心數量。

  • 避免自動調度資源縮減: 節點群組自動調度資源可根據目前需求,自動擴充或縮減節點群組。節點群組經常擴大和縮減,表示您經常變更 VM 執行的硬體。

    如果您更換硬體的頻率高於授權在實體電腦間轉移的頻率,這些硬體變更可能會導致您必須授權比實際使用的核心數更多。

    如果實體電腦之間的移動頻率有限制,您可以停用自動調度資源功能,或將自動調度資源功能設為僅向外擴充,避免授權費用過高。

  • 請勿使用預設維護政策:預設維護政策可讓您盡量提高 VM 可用性,但可能會導致硬體頻繁變更。如要盡量減少硬體變更並降低授權費用,請改用「在節點群組內遷移」或「就地重新啟動」政策。

如果工作負載不需要以核心為單位授權,請改用下列最佳做法:

管理

如果您有多個工作負載,或開發和正式版工作負載都需要在單一用戶群節點上執行,請考慮下列最佳做法:

  • 為開發和正式環境使用不同的節點群組: 使用不同的節點群組有助於隔離環境,避免發生下列情況:

    • 開發 VM 可能會過度耗用 CPU、磁碟或網路資源 (「吵雜的鄰居」),進而影響生產 VM 的效能。
    • 開發工作負載可能會耗盡節點群組的容量,導致無法建立新的正式環境 VM。
  • 限制每個環境中的節點群組數量:如果執行多個節點群組,可能難以充分運用每個節點群組。為提高使用率,請合併各環境的工作負載,並排定在少數節點群組上執行。

  • 使用專屬專案管理節點群組:為每個環境建立專屬專案,以便管理節點群組。然後與含有工作負載的專案共用節點群組

    這種做法可為每個工作負載使用個別專案,簡化存取權控管,同時讓您在工作負載之間共用節點群組,進而提高資源使用率。

  • 與個別專案共用節點群組:您可以選擇只與個別專案共用節點群組,而非與整個機構共用。個別選取專案有助於區隔環境,並避免向其他專案揭露節點群組的相關資訊。

  • 建立內部費用歸因程序:執行節點群組的費用會計入包含節點群組的專案。如要將這筆費用歸給個別專案或工作負載,建議追蹤單一租戶 VM 的用量,並使用這項資料執行內部費用歸因。

可用性

工作負載的可用性需求可能有所不同,而且高可用性可能是在應用程式層達成,也可能是在基礎架構層實作:

  • 叢集應用程式:部分工作負載可能會在應用程式中實作高可用性,方法是使用複製和負載平衡等叢集技術。

    這類工作負載的範例包括 Active Directory 網域控制站、SQL Server 容錯移轉叢集執行個體和可用性群組,或在 IIS 中執行的叢集負載平衡應用程式。

    只要大多數 VM 仍可使用,叢集應用程式通常就能承受個別 VM 中斷。

  • 非叢集應用程式:部分工作負載可能未實作任何叢集功能,而是需要 VM 本身保持可用狀態。

    這類工作負載的例子包括未複製的資料庫伺服器或有狀態的應用程式伺服器。

    如要盡量確保個別 VM 的可用性,請務必確保 VM 在即將發生的節點維護事件中可以即時遷移

    預設維護政策在節點群組內遷移維護政策支援即時遷移,但如果您使用就地重新啟動維護政策,則不支援即時遷移。

  • 非重要應用程式:批次工作負載、開發/測試工作負載和其他優先順序較低的工作負載,可能沒有特定的可用性需求。對於這些工作負載,如果節點維護期間個別 VM 無法使用,或許可以接受。

為配合工作負載的可用性需求,請考慮下列最佳做法:

  • 在不同可用區或區域中使用節點群組,部署叢集工作負載: 單一租戶節點和節點群組是區域資源。如要防範可用區中斷,請在不同可用區或區域中部署多個節點群組。使用節點親和性排定 VM,讓叢集應用程式的每個執行個體在不同區域或地區的不同節點上執行。

    如果兩個以上的節點群組使用預設或就地重新啟動維護政策,請設定維護時段,盡量避免重疊。

    如果叢集應用程式的多個執行個體必須在單一區域中執行,請使用反親和性,確保 VM 執行個體排定在不同節點或節點群組上。

  • 避免為需要高可用性的非叢集工作負載使用「就地重新啟動」維護政策: 由於「就地重新啟動」維護政策會在基礎節點需要維護時關閉 VM,因此建議為執行需要高可用性的非叢集工作負載的節點群組,使用不同的維護政策。

  • 使用代管執行個體群組,提高工作負載的復原能力和可用性: 您可以進一步提高部署作業的復原能力和可用性,方法是使用代管執行個體群組監控工作負載的健康狀態,並在必要時自動重新建立 VM 執行個體。 代管執行個體群組可用於無狀態有狀態工作負載

成效

工作負載對效能波動的敏感度可能不同。對於某些內部應用程式或測試工作負載,最佳化成本可能比確保全天效能一致更重要。對於其他工作負載 (例如對外應用程式),效能可能至關重要,比資源使用率更重要。

如要充分運用單一租戶節點,請考慮下列最佳做法:

  • 針對對效能不敏感的工作負載,使用專屬節點群組和 CPU 超額配置: CPU 超額配置可讓您提高單一用戶群節點的 VM 密度,並減少所需的單一用戶群節點數量。

    如要使用 CPU 超額配置,您必須使用支援 CPU 超額配置的節點類型。為節點群組啟用 CPU 超額配置功能時,每個單一用戶群節點都會產生額外費用。

    如果您為適合 CPU 超額配置的工作負載使用專屬節點群組,並只為這個節點群組啟用 CPU 超額配置,則 CPU 超額配置的成本效益最高。如果節點群組需要執行講求效能的工作負載,請停用 CPU 超額配置功能。

  • 使用核心:記憶體比率高的節點類型,進行 CPU 超額配置: 雖然 CPU 超額配置可讓 VM 共用核心,但無法讓 VM 共用記憶體。使用每個 CPU 核心相對有較多記憶體的節點類型,有助於確保記憶體不會成為限制因素。

  • 針對對效能要求嚴苛的工作負載使用節點自動調度功能:如要因應對效能要求嚴苛的工作負載不斷變化的資源需求,請將節點群組設定為使用自動調度功能

部署模式

使用單一用戶群節點的最佳方式取決於您的個別需求。以下各節說明一些模式,您可以從中著手,根據自身需求衍生出合適的架構。

多個節點群組,可滿足不同的效能需求

如果您有對效能要求嚴苛的工作負載 (例如面向客戶的應用程式),以及對效能要求不嚴苛的工作負載 (例如內部應用程式),可以使用多個節點群組,並採用不同節點類型:

多個節點群組,可滿足不同的效能需求

  • 其中一個節點群組使用 CPU 過度配置,以及 vCPU 與記憶體比例為 1:8 的節點類型。這個節點群組用於對效能不敏感的工作負載。
  • 第二個節點群組使用運算最佳化節點類型,vCPU 與記憶體比例為 1:4,且不進行 CPU 超量配置。這個節點群組用於效能關鍵工作負載,並設定為視需求擴充及縮減。

叢集式單一核心授權工作負載的多可用區高可用性

如果您執行使用單一核心授權的叢集工作負載,且需要盡量減少硬體變更,可以透過多個節點群組搭配不重疊的維護時間範圍,在可用性和授權額外負擔之間取得平衡:

叢集式單一核心授權工作負載的多可用區高可用性

  • 多個節點群組會部署在不同區域或地區
  • 所有節點群組都使用重新啟動維護政策。節點群組使用不重疊的維護期間,因此一次不會有多個節點群組發生維護相關中斷。
  • 執行叢集工作負載的 VM 執行個體會使用相依性標籤,確保每個叢集節點都會排定在不同可用區的節點群組中。

混合式每核心授權工作負載的多可用區高可用性

如果您使用每個核心的授權,但並非所有工作負載都已叢集化,則可使用異質維護政策,沿用先前的模式:

混合式每核心授權工作負載的多可用區高可用性

  • 主要節點群組部署在可用區 a,並執行叢集和非叢集工作負載。為盡量減少硬體維護造成的服務中斷,節點群組會採用「在節點群組內遷移」維護政策。
  • 一或多個次要節點群組會部署在其他區域或地區。這些節點群組使用「重新啟動」維護政策,但使用不重疊的維護期間。
  • 執行叢集工作負載的 VM 執行個體會使用相依性標籤,確保每個叢集節點都會排定在不同可用區的節點群組中。
  • 執行非叢集工作負載的 VM 執行個體會使用相依性標籤,以便部署在主要節點群組上。

只在次要節點群組上排定叢集工作負載,可確保重新啟動維護政策造成的暫時性中斷,對整體可用性的影響降到最低。同時,您也可以只對主要節點群組使用「在節點群組內遷移」維護政策,藉此減少授權和基礎架構的負擔。

後續步驟