使用單一用戶群節點執行 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 可能會過度耗用 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 超額配置。這個節點群組用於效能關鍵工作負載,並設定為視需要擴充及縮減。

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

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

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

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

多可用區高可用性,適用於混合式按核心授權的工作負載

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

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

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

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

後續步驟