【云計算】云主機的親和性策略(二):集群節點組

云主機的親和性策略》系列,共包含以下文章:

  • 1?? 云主機的親和性策略(一):快樂旅行團
  • 2?? 云主機的親和性策略(二):集群節點組
  • 3?? 云主機的親和性策略(三):云主機 & 宿主機
  • 4?? 云主機的親和性策略(四):云主機組

😊 如果您覺得這篇文章有用 ?? 的話,請給博主一個一鍵三連 🚀🚀🚀 吧 (點贊 🧡、關注 💛、收藏 💚)!!!您的支持 💖💖💖 將激勵 🔥 博主輸出更多優質內容!!!

云主機的親和性策略(二):集群節點組

  • 1.場景設定
    • 1.1 第一步:創建反親和性云主機組
    • 1.2 第二步:創建節點并加入對應組
      • 1.2.1 創建 Master 節點(3個)
      • 1.2.2 創建 Core 節點(5個)
      • 1.2.3 創建 Task 節點(20個)
    • 1.3 第三步:調度器執行反親和性邏輯
  • 2.故障模擬:宿主機宕機的影響
  • 3.技術組件對應表
  • 4.為什么這樣設計?
  • 5.輸出結果驗證

在上一篇博文《【云計算】云主機的親和性策略(一):快樂旅行團》中,我們用「旅行團分車」的比喻來解釋云主機組如何實現反親和性策略。

本文讓我們將「旅行團分車」的比喻轉化為真實的云計算場景,用 集群節點組Master / Core / Task)和 宿主機調度 來解釋反親和性策略的實現過程。

1.場景設定

目標:在公有云上部署一個高可用大數據集群(如 Spark 集群),包含三類節點:

  • Master 組333 個管理節點(必須高可用,任意兩個不能在同一宿主機)
  • Core 組555 個核心計算節點(承載關鍵服務,需分散部署)
  • Task 組202020 個彈性計算節點(可容忍適度集中)
  • ?? 要求:同組節點必須分散在不同宿主機上(反親和性)!

1.1 第一步:創建反親和性云主機組

在云平臺中創建三個獨立的 反親和性組,每組綁定一類節點:

# 創建Master反親和組(策略:嚴格分散)
aws ec2 create-placement-group --group-name master-anti-group --strategy spread# 創建Core反親和組(策略:嚴格分散)
aws ec2 create-placement-group --group-name core-anti-group --strategy spread# 創建Task反親和組(策略:軟性分散,資源不足時可集中)
aws ec2 create-placement-group --group-name task-soft-group --strategy spread

? 相當于為三類節點制定獨立規則

  • Master 組:必須 1 人/車(宿主機)
  • Core 組:必須 1 人/車
  • Task 組:盡量 1 人/車,但允許拼車

1.2 第二步:創建節點并加入對應組

1.2.1 創建 Master 節點(3個)

for i in {1..3}; doaws ec2 run-instances \--placement-group master-anti-group \  # 加入Master組--tag-specifications "ResourceType=instance,Tags=[{Key=Role,Value=Master}]" \--instance-type m5.xlarge
done

調度規則:每個 Master 必須運行在 不同宿主機(若宿主機不足,則創建失敗)

1.2.2 創建 Core 節點(5個)

for i in {1..5}; doaws ec2 run-instances \--placement-group core-anti-group \    # 加入Core組--tag-specifications "ResourceType=instance,Tags=[{Key=Role,Value=Core}]" \--instance-type c5.4xlarge
done

調度規則:每個 Core 必須運行在 不同宿主機(且不能與 Master 同機)

1.2.3 創建 Task 節點(20個)

for i in {1..20}; doaws ec2 run-instances \--placement-group task-soft-group \    # 加入Task組(軟性策略)--tag-specifications "ResourceType=instance,Tags=[{Key=Role,Value=Task}]" \--instance-type t3.medium
done

調度規則:盡量分散,但宿主機資源緊張時可部署到同一宿主機(每宿主機最多 4 個 Task)

1.3 第三步:調度器執行反親和性邏輯

假設云平臺有 10 臺宿主機(H1~H10),調度器工作流程如下:

  • 1?? 放置 Master 節點
    • ? Master-1 → 隨機選 H1
    • ? Master-2 → 排除 H1 → 選 H2
    • ? Master-3 → 排除 H1 / H2 → 選 H3
  • 2?? 放置 Core 節點
    • ? Core-1 → 排除 H1 / H2 / H3(已有 Master)→ 選 H4
    • ? Core-2 → 排除 H4 → 選 H5
    • ? Core-5 → 排除 H4 / H5 / H6 / H7 → 選 H8
  • 3?? 放置 Task 節點
    • ? Task-1 ~ 4 → 因軟性策略,允許放在 H9(每機 4 個)
    • ? Task-5 ~ 8 → 放 H10(每機 4 個)
    • ? Task-9 ~ 20 → 因 H1-H8 已有Master / Core 但未滿,分散部署到 H1-H8(每機 1-2 個)

? 最終分布

宿主機節點類型
H1Master-1 + Task-9
H2Master-2 + Task-10
H3Master-3 + Task-11
H4Core-1 + Task-12
H9Task-1~4(集中部署)
H10Task-5~8(集中部署)

2.故障模擬:宿主機宕機的影響

假設 H9 宿主機故障:

  • Master 組:H1 / H2 / H3 節點完好 → 集群管理功能正常
  • Core 組:H4 / H5 / H6 / H7 / H8 節點完好 → 核心計算服務正常
  • Task 組:H9 上的 Task-1~4 宕機 → 自動遷移到其他宿主機(損失部分算力但可恢復)

? 關鍵效果

  • Master / Core 組因嚴格反親和,單宿主機故障 不影響同組其他節點
  • Task 組允許集中部署,故障時損失可控(犧牲部分可用性換取成本優化)。

3.技術組件對應表

云計算場景
說明
Master 組集群大腦(如 Spark Master),需最高可用性
Core 組核心服務(如 HDFS DataNode),需高可用
Task 組彈性計算單元(如 Spark Executor),可容忍適度故障
反親和性云主機組聲明 “同組節點必須物理隔離” 的策略載體
宿主機(H1~H10)物理服務器,承載虛擬化的云主機
軟性策略(Task 組)資源不足時允許策略妥協,避免節點創建失敗

4.為什么這樣設計?

  • Master / Core 組嚴格反親和
    • → 避免單宿主機宕機導致 集群管理癱瘓核心數據丟失(如 HDFS 同一塊數據的多個副本被分散)。
  • Task 組軟性反親和
    • → 計算節點可快速重建,優先保證 資源利用率彈性伸縮能力
  • 分層策略
    • → 不同節點重要性不同,反親和性強度需差異化(Master > Core > Task)。

5.輸出結果驗證

通過云平臺 API 查看節點分布:

# 查看Master節點位置(每個宿主機僅1個)
aws ec2 describe-instances \--filters "Name=tag:Role,Values=Master" \--query "Reservations[].Instances[].[InstanceId, Placement.AvailabilityZone]"# 輸出示例:
[["i-001", "us-east-1a (宿主機H1)"],["i-002", "us-east-1b (宿主機H2)"],["i-003", "us-east-1c (宿主機H3)"]
]

💡 這就是公有云反親和性組的本質

  • 通過組策略約束,讓關鍵節點在物理層面 “保持距離”,當單個宿主機爆炸時,你的集群不會全軍覆沒!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/94046.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/94046.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/94046.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【人工智能】AI代理在零售業的崛起:從草莓訂購到全流程購物體驗

《Python OpenCV從菜鳥到高手》帶你進入圖像處理與計算機視覺的大門! 解鎖Python編程的無限可能:《奇妙的Python》帶你漫游代碼世界 在零售業快速演變的格局中,AI代理正作為變革力量崛起,連接消費者需求與無縫履行。本文深入探討AI代理在零售中的興起,從通過對話界面訂購…

【讀論文】從Qwen3技術報告到Qwen3-30B-A3B 模型的深度解讀

引言:當大模型追求又小又好用 最近都是各種新大模型滿天飛,其中Qwen3-30B-A3B-Instruct-2507很是亮眼,這種參數尺寸是相對友好的,效果好而且模型不大。從這里就引發一下疑問,如何在保證強大能力的同時,兼顧模型的效率和可訪問性?毫無疑問,混合專家 (Mixture-of-Expert…

【番外篇15】中心極限定理:從數學原理到生活案例

一、什么是中心極限定理?中心極限定理(Central Limit Theorem, CLT)是概率論與統計學中最重要的定理之一,它揭示了為什么正態分布在自然界和統計學中如此普遍。?定理表述?:設X?, X?, ..., X? 是一組獨立同分布的隨機變量序列&#xff0c…

本地構建Docker鏡像并推送到GitHub Container Registry

一、本地構建并推送鏡像1. 登錄GitHub Container Registry首先,需要登錄到GitHub Container Registry (GHCR):# 使用個人訪問令牌(PAT)登錄 docker login ghcr.io -u 你的GitHub用戶名 -p 你的個人訪問令牌注意:你需要在GitHub上創建一個具有…

DP-v2.1-mem-clean學習(3.6.8-3.6.8.1)

3.6.8 lttpr非透明模式下的鏈路訓練 3.6.8.1 支持8b/10b鏈路層訓練規范 ?默認透明模式? 若上游設備未啟用LTTPR非透明模式(Non-transparent),需在鏈路訓練前將DPCD F0003h寄存器寫入默認值55h38 ?非法中繼器計數值處理? 當DPCD F0002h(PHY_REPEATER_CNT)返回值非有…

kali安裝maven

kali安裝maven 下載maven的安裝包 wget https://dlcdn.apache.org/maven/maven-3/3.9.11/binaries/apache-maven-3.9.11-bin.tar.gz 注意可能返回404,這是因為官網已經更新了版本,這種情況可以自己訪問https://dlcdn.apache.org/maven/maven-3查看一下最…

GEO優化:品牌營銷新戰場的光明與荊棘

在AI重塑信息獲取方式的今天,一種名為GEO(生成式引擎優化)?的策略正悄然成為企業營銷版圖的新坐標。它不追求傳統搜索引擎中的鏈接排名,而是爭奪生成式AI(如ChatGPT、DeepSeek等)答案中的“話語權”——讓…

牛客 - 旋轉數組的最小數字

描述 有一個長度為 n 的非降序數組,比如[1,2,3,4,5],將它進行旋轉,即把一個數組最開始的若干個元素搬到數組的末尾,變成一個旋轉數組,比如變成了[3,4,5,1,2],或者[4,5,1,2,3]這樣的。請問,給定這…

1分鐘臨時共享空間在線小工具實現

運行效果:1分鐘臨時共享空間 - 免注冊即時文件文本共享工具 | 極速傳 直接上代碼: using Microsoft.AspNetCore.Mvc; using SaaS.OfficialWebSite.Web.Utils; using ZXing.QrCode; using ZXing; using SkiaSharp; using ZXing.SkiaSharp.Rendering; usin…

操作系統-lecture5(線程)

進程的缺點 在創建了子進程的時候,得到了可以并發執行的好處 但創建了進程資源會造成浪費 線程的引入 在同一個進程中有這樣兩個執行流,為并發執行的,稱之為線程 這里引用下《操作系統概念》中的線程概述 任務舉例 在復制的過程中&#xf…

FPGA kernel 仿真器調試環境搭建

參考:haps階段說明2:kernel運行和調試 1 仿真器加載FIT及調試步驟 由于使用仿真器,就要額外配置DS-5的軟件環境,有些步驟略復雜,請仔細按照說明操作。 1.1 導入kernel工程 不導入可以運行,但導入方便調試 file——-import 導入后的工程如圖 1.2 創建debug 使用attach方…

MySQL(173)MySQL中的存儲過程和函數有什么區別?

在MySQL中,存儲過程(Stored Procedures)和函數(Functions)是兩種用于封裝可重用SQL代碼的機制。盡管它們在很多方面類似,但仍有一些重要的區別。以下是對存儲過程和函數的詳細解釋,以及如何在My…

可計算存儲(Computational Storage)與DPU(Data Processing Unit)的技術特點對比及實際應用場景分析

以下是對可計算存儲(Computational Storage)與DPU(Data Processing Unit)的技術特點對比及實際應用場景分析,結合引用資料進行綜合說明:一、技術核心對比維度可計算存儲DPU核心差異定位存儲設備內置計算能力…

rag學習-以項目為基礎快速啟動掌握rag

rag從0到放棄黃帝內經rag問答系統RAG 項目版本迭代總覽各版本技術細節如何使用黃帝內經rag問答系統 本項目使用爬蟲獲取了皇帝內經全文以此為數據構建檢索增強系統 本項目以一個系統的多層迭代不斷更新優化技術,由淺入深逐漸理解rag原理及優化技術 話不多說github…

linux 啟動流程?

linux 啟動流程 CPU 上電后最先執行的啟動代碼,通常確實是放在 arch 目錄下對應架構的啟動文件里。這是因為啟動代碼強相關于 CPU 架構和硬件細節,不同架構差異非常大。具體說明 1. 為什么啟動代碼放在 arch 目錄? 啟動代碼要設置 CPU 狀態&a…

《Kubernetes部署篇:基于Kylin V10+ARM64架構CPU使用containerd部署K8S 1.33.3集群(多主多從)》

總結:整理不易,如果對你有幫助,可否點贊關注一下? 更多詳細內容請參考:企業級K8s集群運維實戰 一、架構圖 如下圖所示: 二、環境信息 基于x86_64+aarch64架構使用containerd部署K8S 1.33.3集群資源合集(三主多從) 2、部署規劃 云平臺 主機名 K8S版本 系統版本 CPU架構…

Docker 鏡像打包為 ZIP 文件便于分享和轉發

網上找到的記錄一下方便下次看步驟詳解1. 將鏡像導出為 TAR 文件Docker 提供了 docker save 命令,可以將鏡像導出為 .tar 文件。使用以下命令:docker save -o dify.tar dify說明:docker save:導出鏡像為文件。-o dify.tar&#xf…

一對一交友小程序 / APP 系統架構分析

一對一交友小程序 / APP 系統架構分析一、引言在數字化社交的大背景下,一對一交友小程序和 APP 為人們拓展社交圈提供了便捷途徑。合理且高效的系統架構是保障此類應用穩定運行、提升用戶體驗的基石。本文將深入剖析一對一交友小程序 / APP 的系統架構,涵…

Anthropic最新研究Persona vector人格向量

今天本來就想更一期強化學習,但是突然看了Anthropic的persona vector,所以又來寫這一篇,因為我覺得這個很有價值以往我們玩LLM比較怕的事就事他亂說話作為概率模型,它能說對,它也能亂編,亂編輕癥就是所謂的…

Spring AI集成Elasticsearch向量檢索時filter過濾失效問題排查與解決方案

使用vectorStore.similaritySearch遇到問題 最近需要做一個功能,用到了es做向量數據庫。在使用vectorStore.similaritySearch查詢的時候,發現filterExpression中加的條件并沒有完全生效,導致查詢出來的數據不準確,出現了不符合me…