BeeGFS 與 SupremeRAID HE 高可用性儲存系統部署指南
文件目的
本標部署指南提供全面的指導,用於部署和管理 BeeGFS 與 SupremeRAID HE 高可用性儲存系統 - 一個整合高密度雙節點伺服器平台、SupremeRAID HE 和 BeeGFS 平行檔案系統的高效能儲存解決方案。這套企業級儲存架構提供卓越的效能、可擴展性和可靠性,適用於數據密集型運算環境。
本文件指導系統管理員和儲存工程師完成整個部署生命週期,從初始系統準備到持續維護和故障排除。通過遵循這些程序,技術人員可以高效地實施、驗證和維護 此BeeGFS + SR-HE 叢集儲存系統基礎設施,確保最佳效能和可用性。
介紹
在當今數據驅動的環境中,企業和高效能運算 (HPC) 環境需要提供卓越速度、可擴展性和彈性的儲存解決方案,同時優化成本效益。Graid Technology 推出 SupremeRAID™ HE,這是一款具有陣列遷移和跨節點高可用性 (HA) 功能的 GPU 加速 NVMe RAID 解決方案,結合 2U 全快閃儲存橋接塢 (SBB) 系統和 BeeGFS 平行檔案系統。在效能方面,此架構實現了 2U 系統中最高的吞吐量,能夠飽和 400Gb/s 網絡,本地讀取高達 132 GB/s、寫入高達 83 GB/s,客戶端讀取高達 93 GB/s、寫入高達 84 GB/s,同時透過消除跨節點複製來節省成本並實現無縫擴展。與其他軟體 RAID 方法不同,SupremeRAID™ HE 利用 GPU 並行性最大化 NVMe 效能,消除 CPU 瓶頸,降低總體擁有成本 (TCO)。本白皮書探討這種創新設計如何滿足不斷變化的需求。
解決方案概述
SupremeRAID™ HE 與雙節點 SBB 伺服器和 BeeGFS 整合,形成高效能、高可用性的 NVMe 儲存平台。與消耗大量 CPU 資源的軟體 RAID 不同,SupremeRAID™ HE 將 RAID 操作卸載到 GPU,為 BeeGFS 等關鍵上層應用保留 CPU 容量。這種 GPU 加速方法,結合用於跨節點高可用性 (HA) 的陣列遷移,提供卓越的吞吐量 - 同時在緊湊的 2U 機箱中支援最多 32 個磁碟。通過減少 CPU 開銷,它簡化系統效能,增強可擴展性,降低數據密集型企業和 HPC 工作負載的總體擁有成本 (TCO),為進階軟體 RAID 解決方案提供了具成本效益且高效的替代方案。
Graid Technology 的 SupremeRAID™ HE (HPC 版本)
SupremeRAID™ HE 由 Graid Technology 開發,是一款具有跨節點高可用性 (HA) 陣列遷移功能的 GPU 加速 NVMe RAID 解決方案。它支援最多 32 個磁碟的配置,並提供卓越的吞吐量表現。通過利用 GPU 計算能力和專利的非路徑數據保護技術,它最大化 NVMe 效能,確保零停機時間 HA,並通過消除數據複製降低總體擁有成本 (TCO)。
BeeGFS 平行檔案系統
BeeGFS 是 Fraunhofer 研究所開發的開源 POSIX 檔案系統,專為 HPC 環境設計,具有平行數據訪問、可擴展性和通過分佈式元數據和數據實現的容錯能力。它以低開銷提供高吞吐量 I/O,非常適合可擴展 NVMe 環境中的數據密集型工作負載。
系統設計和高可用性
此解決方案利用伺服器的雙節點架構,結合 SupremeRAID™ HE 的陣列遷移功能,在 2U 機箱內提供卓越的效能和強大的高可用性 (HA)。整合到 400G 網絡中,系統與 BeeGFS 客戶端無縫連接,通過消除跨節點數據複製來優化資源利用並降低成本。設計支援線性擴展,允許根據需要添加額外的 SBB 單元來擴展容量和效能。
硬體配置
該解決方案具有兩個 SBB 節點,每個節點配備一個 PCIe 交換機用於內部數據路由,並通過雙端口背板連接,使兩個節點都能訪問 24 個 NVMe SSD,組織成兩組各 12 個。每個節點包括一個網絡接口卡 (NIC) 和一個 GPU,SupremeRAID™ HE 利用 GPU 加速來卸載 RAID 操作,提高吞吐量並保留 CPU 資源。該設置在 400G 網絡基礎設施上進行測試。
RAID 和儲存設置
SupremeRAID™ HE 管理 24 個雙端口 NVMe SSD,每個節點處理 12 個磁碟。此配置支援系統的高效能功能。
- 元數據目標 (MDT):
- 配置為 RAID 10,每個節點 2 個磁碟(共 4 個),形成 4 個虛擬磁碟,用於低延遲元數據操作。
- 對象儲存目標 (OST):
- 配置為 RAID 5 或 RAID 6,每個節點 10 個磁碟(兩個節點共 20 個),為高容量、容錯數據儲存創建多個虛擬磁碟。
高可用性實現
通過 Pacemaker 確保高可用性,它使用虛擬 IP 管理故障轉移,在節點故障期間維持服務連續性。SupremeRAID™ HE 的陣列遷移功能實現節點間無縫 RAID 陣列轉移,消除複製需求並優化 NVMe 使用。雙端口背板和 400G 網絡連接增強了容錯能力和數據吞吐量。

系統要求
由 Graid 提供的專用部署工具
請注意,本部署指南會使用到 Graid Technology 提供的專用工具,這是完成設定所必需的。這些工具不包含在標準的 SupremeRAID HE 驅動程式套件中。
- BeeGFS + SR-HE 叢集 Setup Manager (
bgfs-setup-manager) 套件: 此套件包含 beegfs_control.py 腳本,用於部署和管理 BeeGFS 叢集。 - SupremeRAID HE RAID Creation Script (
create_bgfs_raid.py): 此腳本用於設定 SupremeRAID 陣列,以實現 BeeGFS 的最佳效能。
若要獲取 create_bgfs_raid.py 和 bgfs-setup-manager 套件,請聯繫您的 Graid Technology 技術支援代表或銷售窗口。
Beegfs node
- 操作系統:RHEL/Rocky Linux 9.x 或 Ubuntu 22.04/24.04
- 所需套件:Python 3.8+、SSH、IB相關所需套件(RDMA/DOCA)
- 硬體:具備共享儲存功能的雙節點伺服器
- SSD:支援雙端口 SSD
- RAID:每個節點中的 SupremeRAID 控制器
- 網絡:高速網絡基礎設施(優先選擇 InfiniBand 或高速以太網)
Beegfs Client node(可選)
- 硬體:通用伺服器即可
- 所需套件:Python 3.8+、SSH、IB相關所需套件(RDMA/DOCA)
- 網絡:高速網絡基礎設施(優先選擇 InfiniBand 或高速以太網)
1.1 網絡配置
- 配置每個節點上的所有網絡接口(管理、儲存和客戶端)。
- 確保適當的子網、網關和 DNS 設置。
- 使用 ping 測試所有節點之間的連接,並驗證延遲是否可接受。
1.1.1 IP 規劃範例
為避免配置衝突,建議在部署前先規劃好 IP 分配。以下為本文件範例所使用的 IP 規劃:
| 角色 (Role) | 主機名 (Hostname) | 管理網路 (System/Mgmt Network) | BMC/IPMI Network | 儲存網路 (Storage/Data) | 心跳網路 (Heartbeat) | 備註 |
|---|---|---|---|---|---|---|
| Node A | bgfs-oss1 | 192.168.10.101 | 192.168.1.101 | 10.16.10.101 (若有多網卡:10.16.11.101) | 192.168.20.101 | 實體 IP |
| Node B | bgfs-oss2 | 192.168.10.102 | 192.168.1.102 | 10.16.10.102 (若有多網卡:10.16.11.102) | 192.168.20.102 | 實體 IP |
| Client | bgfs-client | 192.168.10.201 | N/A | 10.16.10.201 (若有多網卡:10.16.11.201) | N/A | 用戶端 |
| Cluster VIP | (MGT-VIP) | 192.168.10.100 | N/A | N/A | N/A | 管理服務浮動 IP |
| Node A VIPs | (A-VIPs) | N/A | N/A | VIP1: 10.16.10.103 VIP2: 10.16.11.103 | N/A | Node A 服務浮動 IP |
| Node B VIPs | (B-VIPs) | N/A | N/A | VIP1: 10.16.10.104 VIP2: 10.16.11.104 | N/A | Node B 服務浮動 IP |
Note
- VIP (虛擬 IP):必須與實體 IP 位於同一網段,但不可與實體 IP 重複。若使用多網卡模式,每一組儲存網段皆需配置一組獨立的 VIP,並需在 Pacemaker 資源群組中加入對應的 IP 資源。
- 管理網路:用於 SSH 連線、Pacemaker 通訊及 BeeGFS 管理服務。
- 帶外管理網路(BMC/IPMI Network): 用於STONITH Fencing。
- 儲存網路:用於 BeeGFS 資料傳輸 (建議使用高速網路如 InfiniBand/RoCE)。
- 多網卡配置建議:若系統配備多張高速網卡 (如 ib0, ib1),建議為每張網卡配置不同網段的 IP (例如 ib0: 10.16.10.x, ib1: 10.16.11.x),以啟用 BeeGFS 的多路徑傳輸功能 (Multi-Mode),最大化傳輸頻寬。
- 心跳網路:用於 Pacemaker 節點間偵測。若您的伺服器型號配備專用的 Node-to-Node 1GbE 內部連接埠 (無法對外連線),強烈建議將此專用端口配置為心跳網路,以確保不受外部交換機故障影響。
1.2 主機配置
- 為所有節點配置主機名,並確保集群中所有節點的 IP 地址和主機名能夠正確解析。這可以通過配置 DNS 服務 或更新每個伺服器的 /etc/hosts 文件 來實現,確保所有節點之間能透過主機名互相通訊。
Note
在本文檔中,"bgfs-oss1" 指的是 SBB(儲存橋接塢)系統的節點 A,"bgfs-oss2" 指的是 SBB 系統的節點 B,這些主機名代表雙節點機箱內的個別運算節點。
- 確保所有節點間正確配置 SSH 訪問(可選):
- 對於基於密碼的認證:確保已安裝
sshpass - 對於基於密鑰的認證(推薦):如下所示設置 SSH 密鑰
# [請登入 Node A (bgfs-oss1) 執行以下指令] # 如果您還沒有 SSH 密鑰,請生成一個 ssh-keygen -t rsa -b 4096 # 將密鑰複製到每個節點 for node in bgfs-oss1 bgfs-oss2 bgfs-client; do ssh-copy-id root@$node done # 測試到每個節點的 SSH 連接 for node in bgfs-oss1 bgfs-oss2 bgfs-client; do ssh root@$node echo "SSH 連接成功" done
- 對於基於密碼的認證:確保已安裝
1.3 安裝 SupremeRAID 驅動程式
下載最新版本的 SupremeRAID 預安裝(環境設定)腳本:
wget https://download.graidtech.com/driver/pre-install/graid-sr-pre-installer-1.7.2-185-x86_64.runNote
在本文件中,"graid-sr-pre-installer-1.7.2-185-x86_64.run" 是截至 2025/12/15 的最新版本。請訪問 https://docs.graidtech.com/ 以獲取最新版本。
運行 SupremeRAID HE 預安裝(環境設定)以設置環境:
chmod +x graid-sr-pre-installer-1.7.2-185-x86_64.run sudo ./graid-sr-pre-installer-1.7.2-185-x86_64.run下載 SupremeRAID HE 驅動程式套件:
# SR-HE-PRO-AM (SR-1000-AM/GPU: NVIDIA RTX A1000) # 對於 RHEL/Rocky Linux wget https://download.graidtech.com/driver/sr-he/linux/1.7.2/release/\ graid-sr-he-1.7.2-57.gfbd894ea.pam.el9.6.x86_64.rpm # 對於 Ubuntu wget https://download.graidtech.com/driver/sr-he/linux/1.7.2/release/\ graid-sr-he-1.7.2-57.gfbd894ea.pam.x86_64.deb # SR-HE-ULTRA-AD (SR-1010-AD/GPU: NVIDIA RTX 2000 Ada) # 對於 RHEL/Rocky Linux wget https://download.graidtech.com/driver/sr-he/linux/1.7.2/release/\ graid-sr-he-1.7.2-57.gfbd894ea.uad.el9.6.x86_64.rpm # 對於 Ubuntu wget https://download.graidtech.com/driver/sr-he/linux/1.7.2/release/\ graid-sr-he-1.7.2-57.gfbd894ea.uad.x86_64.deb安裝 SupremeRAID HE 驅動程式套件:
- 對於 RHEL/Rocky Linux:
sudo rpm -i graid-<版本>.rpm - 對於 Ubuntu:
sudo dpkg -i graid-<版本>.deb
Note
- 在本文件中,"SupremeRAID HE 驅動程式套件" 是截至 2025/12/15 的最新版本。請訪問 https://docs.graidtech.com/ 以獲取最新版本。
- 若您欲使用 SR-HE-PRO-AM 或 SR-HE-ULTRA-AD 以外的 SupremeRAID HE 版本,請聯繫您的 Graid Technologies 代表詢問。
- 對於 RHEL/Rocky Linux:
應用許可證密鑰以激活驅動程式:
sudo graidctl apply license <您的許可證密鑰>Note
在本文件中,"許可證密鑰" 需要對應的 SupremeRAID HE 密鑰,如果您手上持有的是 SupremeRAID SR 或者其他版本的授權,請聯繫您的 Graid Technologies 代表。
驗證驅動程式安裝:
sudo systemctl status graidImportant
對於雙節點系統,在節點 A(bgfs-oss1)和節點 B(bgfs-oss2)上重複 SupremeRAID 驅動程式安裝,配置相同,以確保雙端口 SSD 功能正常運作。
1.4 安裝 BeeGFS 部署套件
Note
只需要在其中一台節點安裝此部署套件即可, 此範例使用 Node A 部署 BeeGFS。
安裝 BeeGFS 部署套件:
- 對於 RHEL/Rocky Linux:
sudo rpm -i bgfs-setup-manager-<版本>.rpm - 對於 Ubuntu:
sudo dpkg -i bgfs-setup-manager-<版本>.deb
- 對於 RHEL/Rocky Linux:
安裝所需的套件:
- Ubuntu:
apt install -y \ pcs pacemaker corosync resource-agents-extra \ resource-agents-common resource-agents-base python3-pip sshpass- Rocky/Almalinux:
yum install --enablerepo="highavailability" pcs pacemaker corosync fence-agents-all \ python3-pip sshpass -y- RHEL:
subscription-manager repos --enable="rhel-9-for-x86_64-highavailability-rpms" yum install --enablerepo=rhel-9-for-x86_64-highavailability-rpms pcs pacemaker \ corosync fence-agents-all python3-pip sshpass -y安裝所需的 Python 套件:
cd /opt/beegfs_setup_manager sudo pip install -r requirements.txtNote
對於 Ubuntu 22 或 24 版本,如果 pip 無法正常工作,請考慮使用虛擬環境或根據警告訊息添加必要的標誌。例如:
sudo pip install --break-system-packages -r requirements.txt或者,您可以創建一個虛擬環境:
python3 -m venv venv source venv/bin/activate pip install -r requirements.txt
2. SupremeRAID 配置
2.1 為 BeeGFS 創建 SupremeRAID 陣列
使用 create_bgfs_raid.py 腳本創建優化的 BeeGFS RAID 陣列:
# 查看幫助信息
sudo python3 create_bgfs_raid.py --help
# 不需要有Hotspare 設定
# 示例:創建 24 個 SSD 的節點 A 配置
# [請登入 Node A (bgfs-oss1) 執行以下指令]
sudo python3 create_bgfs_raid.py create 24 node_a
# 示例:創建 24 個 SSD 的節點 B 配置
# [請登入 Node B (bgfs-oss2) 執行以下指令]
sudo python3 create_bgfs_raid.py create 24 node_b
# 需要有Hotspare 設定
# 示例:創建 24 個 SSD 的節點 A 配置 + Hotspare
# 請登入 Node A (bgfs-oss1) 執行以下指令]
sudo python3 create_bgfs_raid.py create 24 node_a --hotspare
# 示例:創建 24 個 SSD 的節點 B 配置 + Hotspare
# [請登入 Node B (bgfs-oss2) 執行以下指令]
sudo python3 create_bgfs_raid.py create 24 node_b --hotspare
腳本執行以下關鍵操作:
- 檢測系統中的 NVMe 設備
- 按大小和 PCIe 排列將設備分組
- 以最佳大小配置虛擬磁碟 (VDs)
Note
- 節點 A(bgfs-oss1)和節點 B(bgfs-oss2)需要用不同的命令運行此腳本。
- 若需配置備用磁碟 (Hotspare),務必在 兩個節點上都進行設定,以確保高可用性機制完整運作。單獨配置其中一個節點可能導致 Hotspare 功能異常。
2.2 驗證 RAID 配置
創建 RAID 陣列後,驗證配置:
# 列出陣列組
sudo graidctl ls dg
# 列出虛擬磁碟
sudo graidctl ls vd
# 查詢對應陣列組 UUID(配置所需)或查看 dguuid 文件
# 分別在 Node A 和 Node B 執行以下命令
sudo python3 create_bgfs_raid.py query-dg
預期結果
sudo graidctl ls dg
✔List drive group successfully.
│───────│───────│────────│──────────│─────────│─────────│───────────────────────│─────────│
│ DG ID │ MODE │ VD NUM │ CAPACITY │ FREE │ USED │ CONTROLLER │ STATE │
│───────│───────│────────│──────────│─────────│─────────│───────────────────────│─────────│
│ 0 │ RAID5 │ 2 │ 23 TiB │ 240 MiB │ 23 TiB │ running: 0 prefer: 0 │ OPTIMAL │
│ 9 │ RAID1 │ 9 │ 2.9 TiB │ 0 B │ 2.9 TiB │ │ OPTIMAL │
│───────│───────│────────│──────────│─────────│─────────│───────────────────────│─────────│
graidctl ls vd
✔List virtual drive successfully.
│─────────────│───────│─────────│─────────────│─────────│──────────│
│ VD ID (10) │ DG ID │ SIZE │ DEVICE PATH │ STATE │ EXPORTED │
│─────────────│───────│─────────│─────────────│─────────│──────────│
│ 0 │ 0 │ 12 TiB │ /dev/gdg0n1 │ OPTIMAL │ No │
│ 1 │ 0 │ 12 TiB │ /dev/gdg0n2 │ OPTIMAL │ No │
│ 4 │ 9 │ 638 GiB │ /dev/md55p4 │ OPTIMAL │ No │
│ 2 │ 9 │ 638 GiB │ /dev/md55p2 │ OPTIMAL │ No │
│ 7 │ 9 │ 1.9 GiB │ /dev/md55p7 │ OPTIMAL │ No │
│ 5 │ 9 │ 95 GiB │ /dev/md55p5 │ OPTIMAL │ No │
│ 3 │ 9 │ 638 GiB │ /dev/md55p3 │ OPTIMAL │ No │
│ 1 │ 9 │ 638 GiB │ /dev/md55p1 │ OPTIMAL │ No │
│ 8 │ 9 │ 191 GiB │ /dev/md55p8 │ OPTIMAL │ No │
│ 6 │ 9 │ 1.9 GiB │ /dev/md55p6 │ OPTIMAL │ No │
│─────────────│───────│─────────│─────────────│─────────│──────────│
sudo python3 create_bgfs_raid.py query-dg
uuids:
- id: 0
uuid: 655712732737176961
- id: 9
md_uuid: 524f5cd6:7aa5158d:30a4e1d0:9b02d64f
記下對應陣列組 UUID,它們將用於 BeeGFS 配置。
2.3 清除 RAID 配置
若您希望徹底移除系統上的所有 RAID 設定,可以使用 purge 指令:
Warning
這個命令會完整的清除所有的資料,請在執行此命令之前確定你已經備份所有所需的資料。
# 分別在 Node A 和 Node B 執行以下命令
sudo python3 create_bgfs_raid.py purge
3. BeeGFS 配置和部署
Note
只需要在其中一台節點安裝此部署套件即可, 此範例使用 Node A 部署 BeeGFS。
3.1 配置 BeeGFS 管理器
編輯 BeeGFS 管理器配置文件:
sudo vim /opt/beegfs_setup_manager/config/beegfs_manager_config.yaml更新配置文件中的以下部分:
基本配置部分
此部分包含影響整體操作的基本設置:# 基本配置 config_ver: 1 ssh_password: "您的ssh密碼" # 替換為您的實際 SSH 密碼, # 注意:若使用密碼認證,請確保叢集中所有節點 (Node A, Node B, Client) 的 root 密碼皆相同。 log_file: "/var/log/beegfs_manager.log" root_mount_point: "/mnt/beegfs"config_ver:請勿更改ssh_password:如果基於密鑰的認證失敗,設置用於遠程連接的 SSH 密碼(可選)log_file:日誌寫入的路徑。確保此路徑可訪問且可寫入root_mount_point:BeeGFS 將掛載其儲存和元數據服務的基本目錄
BeeGFS 配置部分
此部分定義 BeeGFS 服務配置:
# BeeGFS 配置 beegfs: mgmtd: # 管理服務配置(必須) base_port: 8008 host: "bgfs-oss1" # 主要管理服務主機 supremeraid: virtual_drive: "md55p5" # 使用您配置中的實際虛擬名稱 meta: # 元數據配置(必須) base_port: 8005 naming_rule: "meta" hosts: - "bgfs-oss1" # 節點 A - "bgfs-oss2" # 節點 B supremeraid: - host: "beegfs-oss1" virtual_drive_pattern: "md55p" # 元數據使用的虛擬陣列組 - host: "beegfs-oss2" virtual_drive_pattern: "md88p" # 元數據使用的虛擬陣列組 storage: # 儲存配置(必須) base_port: 8003 naming_rule: "storage" hosts: - "bgfs-oss1" # 節點 A - "bgfs-oss2" # 節點 B supremeraid: virtual_drive_pattern: "gdg0n" # 儲存使用的虛擬陣列組 client: # 客戶端配置(可選) client_thirdparty_include_path: "/usr/src/ofa_kernel/default/include/" base_port: 8004 helper_base_port: 8006 hosts: - "bgfs-client" # 客戶端節點主機名mgmtd:管理服務的配置host:指定管理服務的主機名(通常是節點 A)virtual_drive:用於管理服務的確切虛擬磁碟名稱,預設值md55p5
meta和storage:元數據和儲存服務的配置count:每個主機的服務數量(必須與創建的虛擬磁碟數量匹配)hosts:這些服務將運行的主機名列表virtual_drive_pattern:虛擬磁碟的命名模式(來自graidctl ls vd)
client:客戶端服務的配置client_thirdparty_include_path:外部庫的路徑(尤其對 InfiniBand 重要)
Pacemaker 配置部分
此部分使用 Pacemaker 配置高可用性:
# Pacemaker 配置 pacemaker: stonith: enable: true devices: - node: bgfs-oss1 # 節點 A name: bgfs-oss1-fence ip: 192.168.1.101 # 替換為節點 A 的 BMC IP 地址 username: ADMIN # 替換為 BMC 用戶名 password: PASSWORD # 替換為 BMC 密碼 host_list: bgfs-oss1 - node: bgfs-oss2 # 節點 B name: bgfs-oss2-fence ip: 192.168.1.102 # 替換為節點 B 的 BMC IP 地址 username: ADMIN # 替換為 BMC 用戶名 password: PASSWORD # 替換為 BMC 密碼 host_list: bgfs-oss2 cluster_name: graid-cluster cluster_username: hacluster cluster_password: p@ssW0rd # 在生產部署中更改此項 cluster_nodes: - node: "bgfs-oss1" # 節點 A addrs: - 192.168.10.101 # 替換為節點 A 的 IP 地址 - 192.168.20.101 # 替換為節點 A 的心跳 IP 地址 - node: "bgfs-oss2" # 節點 B addrs: - 192.168.10.102 # 替換為節點 B 的 IP 地址 - 192.168.20.102 # 替換為節點 B 的心跳 IP 地址 ha_pair: - ["bgfs-oss1", "bgfs-oss2"] # 定義 HA 對enable:設置為true以啟用 Pacemaker 高可用性stonith:為每個節點配置隔離設備- 使用您的實際 BMC(基板管理控制器)詳細信息替換 IP 地址、用戶名和密碼
cluster_nodes:帶有 IP 地址的節點列表- 每個節點應至少有兩個地址:主要地址和心跳地址
ha_pair:定義哪些節點形成高可用性對
資源組配置部分
此部分配置資源的分組和管理方式:
groups: - name: mgt-group prefer_node: "bgfs-oss1" # 管理的主要節點 vip: inet: "192.168.10.100/24" # 管理的虛擬 IP(替換為您的實際 VIP) nic_iflabel: "enp0s1:mgt" # 網絡接口(替換為您的實際接口) dg: resource_name: mgt-dg uuids: - id: 9 md_uuid: <mgt-dg-uuid> # 使用 `create_bgfs_raid.py query-dg` 的實際 UUID (dg8)替換 - name: a-group prefer_node: "bgfs-oss1" # 節點 A vip: - inet: "10.16.10.101/24" # 節點 A 的虛擬 IP(替換為您的實際 VIP) nic_iflabel: "enp0s4:bgfs-a" # 網絡接口(替換為您的實際接口) - inet: "10.16.11.101/24" # 節點 A 的虛擬 IP-2(替換為您的實際 VIP) nic_iflabel: "enp0s5:bgfs-a" # 網絡接口(替換為您的實際接口) dg: uuids: - id: 0 uuid: <a-dg-storage-uuid> # 使用 `create_bgfs_raid.py query-dg` 的實際 UUID (dg0)替換 - id: 9 md_uuid: <a-md-dg-meta-uuid> # 使用 `create_bgfs_raid.py query-dg` 的實際 UUID (dg9)替換 - name: b-group prefer_node: "bgfs-oss2" # 節點 B vip: - inet: "10.16.10.102/24" # 節點 B 的虛擬 IP(替換為您的實際 VIP) nic_iflabel: "enp0s4:bgfs-b" # 網絡接口(替換為您的實際接口) - inet: "10.16.11.102/24" # 節點 B 的虛擬 IP-2(替換為您的實際 VIP) nic_iflabel: "enp0s5:bgfs-b" # 網絡接口(替換為您的實際接口) dg: uuids: - id: 0 uuid: <b-dg-storage-uuid> # 使用 `create_bgfs_raid.py query-dg` 的實際 UUID (dg0) 替換 - id: 9 md_uuid: <b-md-dg-meta-uuid> # 使用 `create_bgfs_raid.py query-dg` 的實際 UUID (dg9) 替換- 每個組代表在故障轉移期間一起移動的資源邏輯集
prefer_node:在正常條件下此組運行的節點vip:虛擬 IP 配置inet:具有子網掩碼的虛擬 IP 地址(CIDR 表示法)nic_iflabel:網絡接口和標籤
dg:陣列組配置uuids:從create_bgfs_raid.py query-dg獲得的陣列組 UUID 列表
Note
mgt-vip 不可與您的 node_a 或 node_b 的 IP 相同,請設置另外一組獨立的IP 位置。
- 關鍵配置注意事項:
- 陣列組 UUID:這些是 RAID 組的唯一標識符,必須正確。使用
create_bgfs_raid.py query-dg命令獲取配置的確切 UUID。 - 網絡接口:確保
nic_iflabel字段中指定的網絡接口在您的系統上實際存在。使用ip link show進行驗證。 - 虛擬 IP 地址:虛擬 IP 必須與您的物理接口位於同一子網,但不應已在使用中。
- 文件系統類型:默認配置對元數據使用
ext4,對儲存使用xfs。只有在有特殊要求時才更改這些設置。 - 掛載選項:
x-systemd.requires=graid.service選項確保在掛載前 SupremeRAID 服務正在運行。這對於正常操作至關重要。 - 安全性:在生產環境中記得更改默認密碼(
ssh_password、cluster_password和 BMC 憑證)。
- 陣列組 UUID:這些是 RAID 組的唯一標識符,必須正確。使用
- 編輯配置文件後,保存並驗證 YAML 語法是否正確:如果沒有錯誤,命令將靜默完成。任何語法錯誤都將被報告。
sudo python3 -c "import yaml; \ yaml.safe_load(open('/opt/beegfs_setup_manager/config/beegfs_manager_config.yaml'))" - 確保配置正確反映您的雙節點系統設置,包括:
- 在適當部分列出兩個節點(bgfs-oss1 和 bgfs-oss2)
- 兩個節點上每個陣列組的正確 UUID
- 每個節點的正確網絡配置
3.2 部署 BeeGFS
使用最新版本部署 BeeGFS:
cd /opt/beegfs_setup_manager/
sudo python3 beegfs_control.py deploy
此命令執行以下操作:
- 獲取最新的 BeeGFS 版本
- 在所有節點上安裝所需的套件
- 配置存儲庫
- 為 BeeGFS 部署準備主機
3.3 設置 BeeGFS 服務
設置 BeeGFS 服務,包括 Pacemaker 資源:
cd /opt/beegfs_setup_manager/
sudo python3 beegfs_control.py setup
此命令執行以下操作:
- 為 mgmtd、meta 和 storage 服務準備掛載點
- 配置防火牆規則
- 設置 Pacemaker 認證和集群(如啟用)
- 創建物理設備和陣列組
- 設置 BeeGFS 服務和資源代理
- 為集群配置認證
3.4 啟動 BeeGFS 服務
啟動 BeeGFS 服務:
# 啟動 Pacemaker BeeGFS 資源
cd /opt/beegfs_setup_manager/
sudo python3 beegfs_control.py start pcs_bgfs
3.5 驗證 BeeGFS 服務
此部署腳本目前基於 BeeGFS 7.4.6 版本設計。對 BeeGFS 8.x 的支援將在未來的更新中提供。這兩個版本之間的驗證指令有所不同。
請根據您使用的 BeeGFS 版本,執行對應的指令。
檢查 BeeGFS 版本:
# 適用於 BeeGFS 8 版本
beegfs version
# 適用於 BeeGFS 7 版本
beegfs-ctl --version
3.5.1 適用於 BeeGFS 7.x
驗證所有 BeeGFS 服務是否正確運行:
# 檢查管理服務狀態
beegfs-ctl --listnodes --nodetype=mgmtd
# 檢查元數據服務狀態
beegfs-ctl --listnodes --nodetype=meta
# 檢查儲存服務狀態
beegfs-ctl --listnodes --nodetype=storage
# 檢查客戶端狀態
beegfs-ctl --clientstats
# 檢查 beegfs 的 df
beegfs-df
# 檢查 beegfs 的網路連線狀況
beegfs-net
3.5.2 適用於 BeeGFS 8.x
BeeGFS 8 引入了統一的 beegfs 指令。舊的 beegfs-ctl 和 beegfs-check-servers 工具已被這個新工具中的子指令取代。
主要語法變更:
beegfs-check-servers➔beegfs health checkbeegfs-ctl --listnodes➔beegfs node listbeegfs-df➔beegfs health dfbeegfs-ctl --getentryinfo➔beegfs entry info
# [推薦] 叢集健康檢查
# 這取代了 beegfs-check-servers,並對叢集中的節點可達性及狀態進行全面檢查。
Export
beegfs health check
# 列出所有管理節點及網路詳細資訊
beegfs node list --node-type=mgmtd --with-nics
# 列出所有元數據節點、網路詳細資訊及可達性狀態
beegfs node list --node-type=meta --with-nics --reachability-check
# 列出所有儲存節點、網路詳細資訊及可達性狀態
beegfs node list --node-type=storage --with-nics --reachability-check
# 列出所有用戶端節點
beegfs node list --node-type=client --with-nics
# 檢查用戶端 I/O 統計資訊
beegfs stats client
# 檢查 BeeGFS 容量使用情況 (磁碟可用空間)
# 顯示儲存目標和儲存池的使用情況
beegfs health df
# 檢查 BeeGFS 連接狀態
beegfs health net
# 驗證特定的掛載路徑 (可選)
# 這取代了 beegfs-ctl --getentryinfo
beegfs entry info /mnt/beegfs
3.6 掛載 BeeGFS 用戶端
如果 beegfs_manager_config.yaml 中的 client (用戶端) 配置部分已正確填寫,beegfs_control.py 腳本將會自動配置並掛載 BeeGFS 用戶端。
或者,如果您偏好在用戶端節點上手動設定 BeeGFS 用戶端服務,請按照以下步驟操作:
- 安裝 BeeGFS 用戶端套件:請參考 BeeGFS 官方網站,以獲取針對您的作業系統安裝所需用戶端套件的詳細說明。
- 複製認證檔案:位於 BeeGFS 伺服器
/etc/beegfs/conn_auth或者/etc/beegfs/auth路徑下的認證檔案conn_auth或者auth,必須複製到每個用戶端節點的/etc/beegfs/conn_auth或者/etc/beegfs/auth,以確保可正確的啟動Beegfs 服務。
3.7 部署後驗證
在進行客戶端掛載與讀寫操作前,必須先確保 PCS Cluster 與 BeeGFS 服務已成功部署且狀態健康。請依序執行以下驗證步驟:
集群狀態檢測 (服務端)
首先在管理節點 (Node A 或 Node B) 確認 Pacemaker 集群狀態,確保所有資源 (VIP, 檔案系統, BeeGFS 服務) 皆已啟動 (Started) 且無錯誤。sudo pcs status預期結果: 所有 Resource Group 應顯示
Started,且分佈在預期的節點上。
Example:pcs status Cluster name: graid-cluster Cluster Summary: * Stack: corosync (Pacemaker is running) * Current DC: bgfs-oss1 (version 2.1.6-6fdc9deea29) - partition with quorum * Last updated: Thu Dec 18 09:40:49 2025 on bgfs-oss1 * Last change: Wed Dec 17 14:31:39 2025 by root via cibadmin on bgfs-oss1 * 2 nodes configured * 38 resource instances configured (1 DISABLED) Node List: * Online: [ bgfs-oss1 bgfs-oss2 ] Full List of Resources: * graid-kv (ocf:heartbeat:Dummy): Stopped (disabled) * mgt-vip (ocf:heartbeat:IPaddr2): Started bgfs-oss1 * a-vip-stor1 (ocf:heartbeat:IPaddr2): Started bgfs-oss1 * a-vip-stor2 (ocf:heartbeat:IPaddr2): Started bgfs-oss1 * b-vip-stor1 (ocf:heartbeat:IPaddr2): Started bgfs-oss2 * b-vip-stor2 (ocf:heartbeat:IPaddr2): Started bgfs-oss2 * mgt-dg9 (ocf:graid:md_dg_daemon_py): Started bgfs-oss1 * a-dg0 (ocf:graid:dg_daemon_py): Started bgfs-oss1 * b-dg0 (ocf:graid:dg_daemon_py): Started bgfs-oss2 * b-dg9 (ocf:graid:md_dg_daemon_py): Started bgfs-oss2 * mgt-fs (ocf:heartbeat:Filesystem): Started bgfs-oss1 * a-fs-meta1 (ocf:heartbeat:Filesystem): Started bgfs-oss1 * a-fs-meta2 (ocf:heartbeat:Filesystem): Started bgfs-oss1 * a-fs-meta3 (ocf:heartbeat:Filesystem): Started bgfs-oss1 * a-fs-meta4 (ocf:heartbeat:Filesystem): Started bgfs-oss1 * a-fs-storage1 (ocf:heartbeat:Filesystem): Started bgfs-oss1 * a-fs-storage2 (ocf:heartbeat:Filesystem): Started bgfs-oss1 * b-fs-meta1 (ocf:heartbeat:Filesystem): Started bgfs-oss2 * b-fs-meta2 (ocf:heartbeat:Filesystem): Started bgfs-oss2 * b-fs-meta3 (ocf:heartbeat:Filesystem): Started bgfs-oss2 * b-fs-meta4 (ocf:heartbeat:Filesystem): Started bgfs-oss2 * b-fs-storage1 (ocf:heartbeat:Filesystem): Started bgfs-oss2 * b-fs-storage2 (ocf:heartbeat:Filesystem): Started bgfs-oss2 * mgt-bgfs (ocf:beegfs:beegfs-mgmt-daemon): Started bgfs-oss1 * a-bgfs-meta1 (ocf:beegfs:beegfs-meta-daemon): Started bgfs-oss1 * a-bgfs-meta2 (ocf:beegfs:beegfs-meta-daemon): Started bgfs-oss1 * a-bgfs-meta3 (ocf:beegfs:beegfs-meta-daemon): Started bgfs-oss1 * a-bgfs-meta4 (ocf:beegfs:beegfs-meta-daemon): Started bgfs-oss1 * a-bgfs-storage1 (ocf:beegfs:beegfs-storage-daemon): Started bgfs-oss1 * a-bgfs-storage2 (ocf:beegfs:beegfs-storage-daemon): Started bgfs-oss1 * b-bgfs-meta1 (ocf:beegfs:beegfs-meta-daemon): Started bgfs-oss2 * b-bgfs-meta2 (ocf:beegfs:beegfs-meta-daemon): Started bgfs-oss2 * b-bgfs-meta3 (ocf:beegfs:beegfs-meta-daemon): Started bgfs-oss2 * b-bgfs-meta4 (ocf:beegfs:beegfs-meta-daemon): Started bgfs-oss2 * b-bgfs-storage1 (ocf:beegfs:beegfs-storage-daemon): Started bgfs-oss2 * b-bgfs-storage2 (ocf:beegfs:beegfs-storage-daemon): Started bgfs-oss2 * bgfs-oss1-fence (stonith:fence_ipmilan): Started bgfs-oss2 * bgfs-oss2-fence (stonith:fence_ipmilan): Started bgfs-oss1 Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled檢查掛載狀態 (客戶端)
確認集群正常後,在客戶端節點檢查 BeeGFS 是否已正確掛載。#[請登入 Client (bgfs-client) 執行以下指令] mount | grep beegfs預期結果: 偵測到名為 beegfs_nodev 的檔案系統類型 BeeGFS。
mount | grep beegfs beegfs_nodev on /mnt/beegfs type beegfs (rw,relatime,cfgFile=/etc/beegfs/beegfs-client.conf,_netdev基本讀寫測試 (客戶端)
在客戶端進行簡單的寫入測試,驗證資料存取權限與網路連通性。- 寫入測試 (1GB)
dd if=/dev/zero of=/mnt/beegfs/testfile bs=1M count=1024 status=progress - 讀取測試
dd if=/mnt/beegfs/testfile of=/dev/null bs=1M status=progress
- 寫入測試 (1GB)
高可用 (HA) 測試
驗證故障轉移功能。建議在客戶端持續進行 I/O (如執行大型檔案寫入) 時,手動將服務資源遷移至另一節點,觀察 I/O 是否中斷。- 在服務端執行:遷移至另一節點
pcs node standby bgfs-oss2
預期結果: bgfs-oss2 的服務都移轉到 bgfs-oss1
pcs status Cluster name: graid-cluster Cluster Summary: * Stack: corosync (Pacemaker is running) * Current DC: bgfs-oss1 (version 2.1.6-6fdc9deea29) - partition with quorum * Last updated: Thu Dec 18 09:40:49 2025 on bgfs-oss1 * Last change: Wed Dec 17 14:31:39 2025 by root via cibadmin on bgfs-oss1 * 2 nodes configured * 38 resource instances configured (1 DISABLED) Node List: * Node bgfs-oss2: standby * Online: [ bgfs-oss1 ] Full List of Resources: * graid-kv (ocf:heartbeat:Dummy): Stopped (disabled) * mgt-vip (ocf:heartbeat:IPaddr2): Started bgfs-oss1 * a-vip-stor1 (ocf:heartbeat:IPaddr2): Started bgfs-oss1 * a-vip-stor2 (ocf:heartbeat:IPaddr2): Started bgfs-oss1 * b-vip-stor1 (ocf:heartbeat:IPaddr2): Started bgfs-oss2 * b-vip-stor2 (ocf:heartbeat:IPaddr2): Started bgfs-oss2 * mgt-dg9 (ocf:graid:md_dg_daemon_py): Started bgfs-oss1 * a-dg0 (ocf:graid:dg_daemon_py): Started bgfs-oss1 * b-dg0 (ocf:graid:dg_daemon_py): Started bgfs-oss2 * b-dg9 (ocf:graid:md_dg_daemon_py): Started bgfs-oss2 * mgt-fs (ocf:heartbeat:Filesystem): Started bgfs-oss1 * a-fs-meta1 (ocf:heartbeat:Filesystem): Started bgfs-oss1 * a-fs-meta2 (ocf:heartbeat:Filesystem): Started bgfs-oss1 * a-fs-meta3 (ocf:heartbeat:Filesystem): Started bgfs-oss1 * a-fs-meta4 (ocf:heartbeat:Filesystem): Started bgfs-oss1 * a-fs-storage1 (ocf:heartbeat:Filesystem): Started bgfs-oss1 * a-fs-storage2 (ocf:heartbeat:Filesystem): Started bgfs-oss1 * b-fs-meta1 (ocf:heartbeat:Filesystem): Started bgfs-oss2 * b-fs-meta2 (ocf:heartbeat:Filesystem): Started bgfs-oss2 * b-fs-meta3 (ocf:heartbeat:Filesystem): Started bgfs-oss2 * b-fs-meta4 (ocf:heartbeat:Filesystem): Started bgfs-oss2 * b-fs-storage1 (ocf:heartbeat:Filesystem): Started bgfs-oss2 * b-fs-storage2 (ocf:heartbeat:Filesystem): Started bgfs-oss2 * mgt-bgfs (ocf:beegfs:beegfs-mgmt-daemon): Started bgfs-oss1 * a-bgfs-meta1 (ocf:beegfs:beegfs-meta-daemon): Started bgfs-oss1 * a-bgfs-meta2 (ocf:beegfs:beegfs-meta-daemon): Started bgfs-oss1 * a-bgfs-meta3 (ocf:beegfs:beegfs-meta-daemon): Started bgfs-oss1 * a-bgfs-meta4 (ocf:beegfs:beegfs-meta-daemon): Started bgfs-oss1 * a-bgfs-storage1 (ocf:beegfs:beegfs-storage-daemon): Started bgfs-oss1 * a-bgfs-storage2 (ocf:beegfs:beegfs-storage-daemon): Started bgfs-oss1 * b-bgfs-meta1 (ocf:beegfs:beegfs-meta-daemon): Started bgfs-oss2 * b-bgfs-meta2 (ocf:beegfs:beegfs-meta-daemon): Started bgfs-oss2 * b-bgfs-meta3 (ocf:beegfs:beegfs-meta-daemon): Started bgfs-oss2 * b-bgfs-meta4 (ocf:beegfs:beegfs-meta-daemon): Started bgfs-oss2 * b-bgfs-storage1 (ocf:beegfs:beegfs-storage-daemon): Started bgfs-oss2 * b-bgfs-storage2 (ocf:beegfs:beegfs-storage-daemon): Started bgfs-oss2 * bgfs-oss1-fence (stonith:fence_ipmilan): Stopped * bgfs-oss2-fence (stonith:fence_ipmilan): Started bgfs-oss1 Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled- 遷移回原本節點
pcs node unstandby bgfs-oss2
預期結果: bgfs-oss2 的服務都從 bgfs-oss1 移轉回 bgfs-oss2
- 在服務端執行:遷移至另一節點
4. 集群擴展(添加節點)
要將其他節點添加到現有 BeeGFS 集群:
4.1 準備新節點
按照 1.1-1.7 部分的步驟準備新節點。
4.2 更新配置
更新 beegfs_manager_config.yaml 文件以包含新節點。
4.3 加入現有集群
使用 join 命令將節點添加到現有集群:
cd /opt/beegfs_setup_manager/
sudo python3 beegfs_control.py join <mgmtd_ip>
其中 <mgmtd_ip> 是管理節點的虛擬 IP 地址。
5. 操作和維護
5.1 停止 BeeGFS 服務
停止 BeeGFS 服務:
# 停止 Pacemaker BeeGFS 資源
cd /opt/beegfs_setup_manager/
sudo python3 beegfs_control.py stop pcs_bgfs
5.2 清除 BeeGFS 服務
完全刪除 BeeGFS 數據和配置(謹慎使用):
cd /opt/beegfs_setup_manager/
# 清除所有 BeeGFS 服務和數據
sudo python3 beegfs_control.py purge
# 清除加入 BeeGFS cluster 的新節點服務和數據
sudo python3 beegfs_control.py purge_join <mgmtd_ip>
# 僅清除 Pacemaker 資源
sudo python3 beegfs_control.py purge --pcs
5.3 檢查版本信息
檢查 BeeGFS 管理腳本的版本:
cd /opt/beegfs_setup_manager/
sudo python3 beegfs_control.py version
6. 故障排除
6.1 日誌文件
查看以下日誌文件進行故障排除:
- BeeGFS 管理器日誌:
/var/log/beegfs_manager.log - BeeGFS 服務日誌:
- 管理:
/var/log/beegfs-mgmtd.log - 元數據:
/var/log/beegfs-meta[N].log - 儲存:
/var/log/beegfs-storage[N].log - 客戶端:
/var/log/beegfs-client.log - 助手:
/var/log/beegfs-helperd.log
- 管理:
- Pacemaker 日誌:
/var/log/pacemaker.log和/var/log/corosync.log
或者下載graid-log-collector 工具收集詳細log
- 下載
graid-log-collectorwget https://download.graidtech.com/misc/tools/graid_log_collector/linux/graid_log_script.tar.gz - 解壓縮
graid-log-collectortar -xvf graid_log_script.tar.gz - 執行
graid-log-collectorcd /graid-logs-tool bash graid-log-collector.sh -k
6.2 常見問題
SSH 連接失敗
- 檢查 SSH 服務狀態:
systemctl status sshd - 驗證 SSH 密鑰權限:
chmod 600 ~/.ssh/id_rsa - 檢查主機密鑰驗證:在 SSH 選項中添加
StrictHostKeyChecking=no
陣列組問題
- 驗證陣列組狀態:
graidctl ls dg - 檢查陣列組詳情:
graidctl desc dg <dg_id> - 導入失敗的陣列組:
graidctl import fd <uuid>
Pacemaker 資源問題
- 檢查資源狀態:
pcs status - 清理失敗的資源:
pcs resource cleanup - 查看約束:
pcs constraint show
掛載點問題
- 檢查掛載狀態:
df -h或mount | grep beegfs - 驗證 fstab 條目:
cat /etc/fstab | grep beegfs - 檢查文件系統:
fsck -N /dev/<device>
6.3 驗證環境
運行驗證以確保滿足所有先決條件:
sudo python3 beegfs_control.py verify
7. 參考
7.1 配置文件結構
主配置文件(beegfs_manager_config.yaml)包含幾個關鍵部分:
- 基本配置:SSH 密碼、日誌文件、認證文件路徑
- BeeGFS 配置:
- 管理服務 (mgmtd)
- 元數據服務 (meta)
- 儲存服務 (storage)
- 客戶端配置
- Pacemaker 配置:
- 集群設置
- STONITH/隔離設備
- 資源組
7.2 命令參考
create_bgfs_raid.py 命令列表
| Command | Description |
|---|---|
create | 建立用於beegfs 的raid 設定 |
purge | 清除所有raid 的設定 |
query-dg | 查詢 DG's UUID |
beegfs_control.py 命令列表
| 命令 | 說明 |
|---|---|
deploy | 在所有節點上部署 BeeGFS 套件 |
setup | 設置 BeeGFS 服務和 Pacemaker 資源 |
start | 啟動 BeeGFS 服務(pcs_bgfs ) |
stop | 停止 BeeGFS 服務(pcs_bgfs ) |
purge | 刪除 BeeGFS 數據和配置 |
purge_join | 刪除使用join 命令加入的集群配置 |
join | 將節點添加到現有 BeeGFS 集群 |
version | 顯示 BeeGFS 管理腳本的版本 |
8. 安全注意事項
- 盡可能使用基於密鑰的 SSH 認證而非基於密碼的認證
- 實施適當的網絡安全措施(防火牆、VLAN)
- 定期將 BeeGFS 軟體更新到最新版本
- 更改所有服務的默認密碼,特別是 Pacemaker 的 hacluster 用戶
- 限制對管理節點的物理和遠程訪問
9. 備份和恢復
- 定期備份 BeeGFS 配置文件
- 記錄集群設置,包括網絡拓撲、硬體和配置
- 定期測試恢復程序
- 考慮為關鍵數據實施基於快照的備份策略