Service Fabric 叢集容量規劃考量

叢集容量規劃對於每個 Service Fabric 生產環境都很重要。 重要考慮包括:

  • 叢集 節點類型 的初始數目和屬性

  • 每個節點類型的 持久性 層級,決定 Azure 基礎結構內 Service Fabric VM 許可權

  • 叢集的 可靠性 層級,可判斷 Service Fabric 系統服務和整體叢集功能的穩定性

本文將逐步引導您瞭解每個區域的重要決策點。

叢集節點類型的初始數目和屬性

節點類型 會定義叢集中一組節點 (虛擬機器) 的大小、數目和屬性。 在 Service Fabric 叢集中定義的每個節點類型都會對應到一個虛擬機器擴展集

因為每個節點類型都是不同的擴展集,所以可以獨立相應增加或相應減少、開啟不同組的埠,並擁有不同的容量計量。 如需節點類型與虛擬機器擴展集之間關聯性的詳細資訊,請參閱Service Fabric 叢集節點類型

每個叢集都需要一個 主要節點類型,它會執行提供 Service Fabric 平臺功能的重要系統服務。 雖然您也可以使用主要節點類型來執行您的應用程式,但建議您只將它們專用於執行系統服務。

非主要節點類型 可以用來定義應用程式角色 (例如 前端後端 服務) ,以及實際隔離叢集中的服務。 Service Fabric 叢集可以有零或多個非主要節點類型。

主要節點類型是使用 isPrimary Azure Resource Manager 部署範本中節點類型定義下的屬性來設定。 如需節點型別屬性的完整清單,請參閱 NodeTypeDescription 物件 。 如需使用方式,請開啟 Service Fabric 叢集範例中的任何 AzureDeploy ,然後 在頁面 搜尋中尋找 nodeTypes 物件。

節點類型規劃考慮

初始節點類型的數目取決於您叢集的用途和在其上執行的應用程式和服務。 請考量下列問題:

  • 您的應用程式是否有多個服務,而且其中是否有任何服務必須是公開或網際網路對向的服務?

    一般應用程式包含可接收用戶端輸入的前端閘道服務,以及一或多個與前端服務通訊的後端服務,前端和後端服務之間會有不同的網路功能。 這些情況通常需要三個節點類型:一個主要節點類型,以及兩個非主要節點類型分別 (前端和後端服務) 的節點類型。

  • 組成您應用程式的服務是否有不同的基礎結構需求,例如更大的 RAM 或更高的 CPU 週期?

    前端服務通常可以在較小的 Vm 上執行 (VM 大小,例如在網際網路上開啟埠的 D2) 。 需要大量運算的後端服務,可能需要在較大的 vm 上執行, (VM 大小,例如 D4、D6、D15) 而非網際網路對向。 針對這些服務定義不同的節點類型,可讓您更有效率且更安全地使用基礎 Service Fabric vm,並可讓它們獨立進行調整。 如需估計所需資源量的詳細資訊,請參閱Service Fabric 應用程式的容量規劃

  • 是否有任何應用程式服務需要向外延展到100節點以外的範圍?

    單一節點類型無法針對 Service Fabric 應用程式,針對每個虛擬機器擴展集可靠地調整超過100節點。 執行超過100個節點需要額外的虛擬機器擴展集 (,因此) 其他節點類型。

  • 您的叢集會跨可用性區域嗎?

    Service Fabric 透過部署釘選至特定區域的節點類型,以支援跨可用性區域的叢集,以確保應用程式的高可用性。 可用性區域需要額外的節點類型規劃和最低需求。 如需詳細資訊,請參閱 跨可用性區域跨越主要節點類型的建議拓撲

當您在初始建立叢集時,判斷節點類型的數目和屬性時,請記住,在部署叢集之後,您隨時都可以新增、修改或移除 (的非主要) 節點類型。 主要節點類型也可以 在執行中的叢集內相應增加或減少,不過,您必須建立新的節點類型、將工作負載移回,然後移除原始的主要節點類型。

節點類型屬性的進一步考慮是持久性層級,可判斷節點類型的 Vm 在 Azure 基礎結構內的許可權。 使用您為叢集選擇的 Vm 大小,以及您為個別節點類型指派的實例計數,以協助為每個節點類型判斷適當的持久性層級,如下所述。

叢集的持久性特性

持久性層級 會指定 Service Fabric vm 與基礎 Azure 基礎結構的許可權。 此許可權可讓 Service Fabric 暫停任何 VM 層級基礎結構要求 (例如,重新開機、重新安裝映射或遷移) ,而這些會影響 Service Fabric 系統服務和具狀態服務的仲裁需求。

重要

持久性層級是針對每個節點類型所設定。 如果未指定,則會使用 層。 生產工作負載需要有銀級的銀級或金級,以協助避免 VM 層級基礎結構要求的資料遺失。

下表列出 Service Fabric 耐久性層、其需求和 affordances。

耐久性層級 所需的 VM 數目下限 支援的 VM 大小 您對虛擬機器擴展集所做的更新 Azure 所起始的更新和維護
金卡 5 專用於單一客戶 (的完整節點大小,例如 L32s、GS5、G5、DS15_v2 D15_v2) 可以延遲到 Service Fabric 叢集核准為止 每個升級網域可以暫停2小時,以允許更多時間讓複本從先前的失敗中復原
銀色 5 具有至少 50 GB 本機 SSD 的單一核心或更高版本 Vm 可以延遲到 Service Fabric 叢集核准為止 無法延遲很長的期間
青銅卡 1 至少具有 50 GB 本機 SSD 的 Vm Service Fabric 叢集不會延遲 無法延遲很長的期間

注意

上述所述 Vm 的最小數目是每個持久性層級的必要需求。 我們已就地驗證,這將會防止建立或修改不符合這些需求的現有虛擬機器擴展集。

警告

使用銅級持久性時,無法使用自動 OS 映射升級。 雖然 修補程式協調流程應用程式 (僅適用于非 Azure 裝載的叢集) 不建議 用於銀級或更高的持久性層級,但這是您唯一可將 Service Fabric 升級網域的 Windows 更新自動化的選項。

重要

無論持久性層級為何,在虛擬機器擴展集上執行 解除配置 作業都會損毀叢集。

青銅卡

執行 Bronze 持久性的節點類型「沒有權限」。 這表示會影響可設定狀態工作負載的基礎結構工作,不會停止或延遲。 針對僅執行無狀態工作負載的節點類型,請使用銅級持久性。 對於生產工作負載,建議執行 Silver 或以上的層級。

銀級和金級

使用銀級或金級持久性,以裝載您預期要相應縮小的具狀態服務的所有節點類型,以及您希望部署作業的延遲和容量減少,以簡化程式。 相應放大案例不會影響您選擇的持久性層級。

優點

  • 減少相應縮小作業的必要步驟數 (節點停用,且 Remove-ServiceFabricNodeState 會自動呼叫) 。
  • 降低因就地 VM 大小變更作業和 Azure 基礎結構作業而造成資料遺失的風險。

缺點

  • 虛擬機器擴展集和其他相關 Azure 資源的部署可能會超時、延遲,或完全被叢集或基礎結構層級的問題封鎖。
  • 因 Azure 基礎結構作業期間的自動化節點停用,而增加複本生命週期事件 (例如主要交換) 的數目。
  • 當 Azure 平台軟體更新或硬體維護活動正在進行時,使節點停止服務一段期間。 您可能會在這些活動期間看到含有正在停用/已停用狀態的節點。 這會暫時減少叢集的容量,但應該不會影響叢集或應用程式的可用性。

銀級和金級持久性節點類型的最佳作法

遵循下列建議來管理具有銀級或金級持久性的節點類型:

  • 使叢集和應用程式持續保持良好的狀況,並確保應用程式會及時回應所有服務複本生命週期事件 (例如當組建中的複本陷入停滯)。
  • 採用更安全的方式來進行 VM 大小變更, (擴大/縮小) 。 變更虛擬機器擴展集的 VM 大小需要謹慎的規劃和警告。 如需詳細資訊,請參閱擴大 Service Fabric 節點類型
  • 針對所有啟用 Gold 或 Silver 持久性的虛擬機器擴展集維持至少五個節點。 如果您的縮減低於此閾值,您的叢集將會進入錯誤狀態,而且您必須手動清除 Remove-ServiceFabricNodeState 已移除節點的狀態 () 。
  • 持久性層級為 Silver 或 Gold 的每個虛擬機器擴展集,都必須對應到它自己在 Service Fabric 叢集中的節點類型。 將多個虛擬機器擴展集對應到單一節點類型,將會使 Service Fabric 叢集與 Azure 基礎結構之間的協調無法正常運作。
  • 請勿刪除隨機的 VM 實例,請一律使用虛擬機器擴展集的擴充功能。 刪除隨機 VM 實例可能會在跨 升級網域容錯網域的 VM 實例中建立失衡。 此不平衡可能會對系統在服務實例/服務複本之間進行適當負載平衡的能力造成負面影響。
  • 如果使用自動調整,請設定規則,以 (移除 VM 實例,) 作業一次只執行一個節點。 一次只能在一個以上的實例中進行調整並不安全。
  • 如果刪除或解除配置主要節點類型上的 Vm,絕對不能將已配置的 Vm 計數減少到低於可靠性層級所需的數目。 在持久性層級為 Silver 或 Gold 的擴展集中,這些作業將會無限期地遭到封鎖。

變更持久性層級

在某些條件約束中,可以調整節點類型持久性層級:

  • 持久性層級為銀級或金級的節點類型無法降級為銅級。
  • 從 Bronze 升級至 Silver 或 Gold 可能需要幾小時的時間。
  • 變更持久性層級時,請務必在虛擬機器擴展集資源的 Service Fabric 延伸模組設定中,以及 Service Fabric 叢集資源的節點類型定義中更新它。 這些值必須相符。

容量規劃是您叢集的可靠性層級時的另一項考慮,它會決定系統服務和整體叢集的穩定性,如下一節所述。

叢集的可靠性特性

叢集 可靠性層級 會決定在叢集的主要節點類型上執行的系統服務複本數目。 複本越多,系統服務 (也越可靠,因此整個) 。

重要

可靠性層級是在叢集層級設定,並決定主要節點類型的節點數目下限。 生產工作負載需要 (大於或等於) 或更高的五個節點,才能使用銀級的銀級。

可靠性層級可以採用以下的值:

  • 白金 級系統服務執行時的目標複本集計數為9
  • 級的系統服務會以七個目標複本集計數執行
  • 級系統服務執行時的目標複本集計數為五
  • 銅牌 -系統服務執行時的目標複本集計數為三

以下是選擇可靠性層級的建議。 種子節點數目也會設定為適用於可靠性層的節點數目下限。

節點數目 可靠性層級
1 請勿指定 reliabilityLevel 參數:系統會計算參數。
3 青銅卡
5 或 6 銀色
7 或 8 金卡
9 以上 Platinum

當您增加或減少叢集的大小 (所有節點類型中) 的 VM 實例總和,請考慮將叢集的可靠性從一個層級更新為另一個層級。 如此一來就會觸發變更系統服務複本集計數所需的叢集升級。 請先等候升級完成,再對叢集進行任何其他變更,例如新增節點。 您可以在 Service Fabric Explorer 上或執行 Get-ServiceFabricClusterUpgrade 監視升級的進度

可靠性的容量規劃

叢集的容量需求取決於您的特定工作負載和可靠性需求。 本節提供可協助您開始進行容量規劃的一般指引。

虛擬機器大小

針對生產工作負載,建議的 VM 大小 (SKU) 是 標準 D2_V2 (或對等的) ,最少 50 GB 的本機 SSD、2核心和 4 GiB 的記憶體。 建議最少使用 50 GB 的本機 SSD,不過某些工作負載 (例如執行 Windows 容器的容器) 需要較大的磁片。 選擇生產工作負載的其他 VM 大小時 ,請記住下列限制:

  • 不支援如標準 A0 的部分核心 VM 大小。
  • A 系列 基於效能考慮,不支援 VM 大小。
  • 不支援低優先順序的 VM。

主要節點類型

Azure 上的 生產工作負載 至少需要五個主要節點 (VM 實例) 和您的銀級可靠性層。 建議將叢集主要節點類型專用於系統服務,並使用放置條件約束將應用程式部署到次要節點類型。

Azure 中的 測試工作負載 最少可執行一或三個主要節點。 若要設定一個節點叢集,請確定您的 reliabilityLevel Resource Manager 範本中的設定完全省略, (指定的空字串值的 reliabilityLevel) 不足。 如果您使用 Azure 入口網站設定一個節點叢集,則會自動完成此設定。

警告

單一節點叢集會以不具可靠性的特殊設定執行,不支援 scale out。

非主要節點類型

非主要節點類型的節點數目下限取決於節點類型的特定 持久性層級 。 您應該根據您想要針對節點類型執行的應用程式或服務複本數目,以及根據工作負載是具狀態或無狀態,來規劃 (和持久性層級) 的節點數目。 請記住,在部署叢集之後,您可以隨時增加或減少節點類型中的 Vm 數目。

具狀態工作負載

針對使用 Service Fabric可靠集合或可靠動作專案的具狀態生產工作負載,建議使用最小和目標複本計數5。 如此一來,在穩定狀態下,您最後會得到複本 (,從每個容錯網域和升級網域中的複本集) 。 一般情況下,請使用您針對「系統服務」所設定的可靠性層級,作為具狀態服務所使用之複本計數的指南。

無狀態工作負載

針對無狀態的生產工作負載,支援的最小非主要節點類型大小為三個維護仲裁,但建議使用節點類型大小5。

下一步

在設定叢集之前,請先檢查叢集 Not Allowed 升級原則 ,以便在稍後因為無法變更系統組態設定而重新建立叢集。

如需叢集規劃的詳細資訊,請參閱: