共用方式為


叢集資源管理員架構概觀

Service Fabric 叢集資源管理員是在叢集中執行的中央服務。 它會管理叢集中服務的所需狀態,特別是關於資源耗用和任何放置規則。

若要管理叢集中的資源,Service Fabric 叢集資源管理員必須具備幾個部分的資訊:

  • 目前有哪些服務
  • 每個服務的目前 (或預設) 資源耗用量
  • 剩餘叢集容量
  • 叢集中節點的容量
  • 每個節點上所耗用的資源數量

特定服務的資源耗用量會隨時間而改變,服務通常會關心一種以上的資源。 在不同的服務之間,可能會同時測量真正實物和實體資源。 服務可能追蹤實體計量,例如記憶體和磁碟耗用量。 服務可能較關心邏輯計量,例如 "WorkQueueDepth" 或 "TotalRequests"。 在相同叢集中可以使用邏輯與實體計量。 計量可以跨多個服務共用,或是限定於特定服務。

其他考量

叢集的擁有者和操作員可以與服務和應用程式作者不同,或至少是同一人身兼多職。 當您開發應用程式時,您知道它所需的一些事項。 您估計了將會耗用的資源,以及服務的部署方式有何不同。 例如,Web 層需要在公開到網際網路的節點上執行,而資料庫服務則不應該這麼做。 另舉一例,Web 服務可能會受到 CPU 和網路限制,而資料層服務則比較在意記憶體和磁碟耗用量。 但是,在生產環境中處理該服務現場情況的人,或管理服務升級的人,有不同的作業,需要不同的工具。

叢集和服務都是動態的:

  • 在叢集中的節點數目可能增加和縮減
  • 不同大小和類型的節點可能轉瞬即逝
  • 服務可能建立、移除和變更所需的資源配置和放置規則
  • 升級或其他管理作業可以在基礎結構層級上應用程式的叢集內展開
  • 隨時都可能發生問題。

叢集資源管理員元件和資料流程

叢集資源管理員必須追蹤每個服務的需求,以及這些服務中每個服務物件的資源耗用量。 叢集資源管理員有兩個概念性元件︰在每個節點上執行的代理程式和一個容錯服務。 每個節點上的代理程式會追蹤服務的負載報告、將報告彙總,並定期回報。 叢集資源管理員服務會彙總來自本機代理程式的資訊,並根據目前設定做出反應。

讓我們看看下圖︰

此圖顯示叢集 Resource Manager 服務會匯總本機代理程式的所有資訊,並根據目前的組態做出反應。

執行階段可能發生許多變化。 例如,假設某些服務耗用的資源數量改變、某些服務失敗,以及某些節點加入和離開叢集。 節點上的所有變更會彙總,並定期傳送到叢集資源管理員服務 (1,2),它們會在其中再次彙總、分析及儲存。 每隔幾秒鐘,服務就會查看變更,並判斷是否需要採取任何動作 (3)。 例如,它可能會注意到某些空的節點已新增至叢集。 如此一來,它會決定要將某些服務移至這些節點。 叢集資源管理員可能也會注意到特定節點是超載的,或者某些服務已失敗或刪除,而在別處釋放資源。

讓我們看看以下圖表,並看看接下來會發生什麼情況。 假設叢集資源管理員判斷需要變更。 它會與其他系統服務 (尤其是容錯移轉管理員) 進行協調,以進行必要的變更。 接著將必要的命令傳送至適當的節點 (4)。 例如,假設資源管理員注意到節點 5 已超載,因此決定要將服務 B 從節點 5 移至節點 4。 重新設定 (5) 結束時,叢集看起來像這樣︰

Resource Balancer 架構

下一步

  • 叢集資源管理員有許多描述叢集的選項。 若要深入了解這些選項,請參閱關於描述 Service Fabric 叢集一文
  • 叢集資源管理員的主要責任是重新平衡叢集,以及強制執行放置規則。 如需有關設定這些行為的詳細資訊,請參閱平衡 Service Fabric 叢集