PowerEdge:適用於 HPC BeeGFS 儲存的 Dell Ready Solutions 功能
Summary: 適用於 HPC BeeGFS 儲存的 Dell Ready Solutions 功能
Instructions
目錄
簡介
此部落格探討最近發表的 適用於 HPC BeeGFS 儲存裝置的 Dell Ready Solutions 的顯著功能。本文是關於 BeeGFS 高效能儲存解決方案系列的第三篇部落格。第一個博客宣佈發佈該解決方案。第二篇部落格探討 適用於 HPC BeeGFS 儲存的 Dell Ready Solutions 擴充能力。它提供了有關基本配置、靈活的可擴展配置以及測量的各種配置的順序讀/寫性能的詳細資訊,表明可伸縮性對於解決方案中的伺服器數量是線性的。目前的部落格強調如何使用「StorageBench」,這是 BeeGFS 的整合式儲存目標效能指標。
BeeGFS 是開放原始碼檔案系統,可從 www.beegfs.io 下載。它是一個並行檔案系統,可跨多個儲存目標分配數據。它是一種軟體定義的存儲,可將邏輯文件系統與底層存儲硬體分離,從而允許使用者定義數據的存儲方式和位置。檔案系統軟體包括企業功能,如高可用性、配額強制和訪問控制清單。BeeGFS 的主要特性在於易用性、擴充能力及彈性。它的易用性源於這樣一個事實,即所有伺服器端元件都是用戶空間守護進程,而用戶端是一個內核模組,不需要對內核本身進行任何補丁。所有 BeeGFS 元件均可安裝和更新,無須將伺服器重新開機。因此,我們可以在沒有任何停機時間的情況下將用戶端和伺服器添加到現有系統中。藉由新增伺服器與磁碟機,可在此連結的部落格中進一步擴充檔案系統效能和容量。BeeGFS 支援多個 Linux 發行版本,專為搭配任何符合 POSIX 標準的本機檔案系統而設計。BeeGFS 也支援在同一部伺服器上執行特定服務的多個例項。
適用於 HPC BeeGFS 儲存的 Dell Ready Solutions 充分運用了 BeeGFS 檔案系統的所有重要功能,且專為高效能而設計。此解決方案使用 PowerEdge R740xd 伺服器來儲存、供應及/或處理中繼資料和資料。每部 PowerEdge R740xd 伺服器配備 24 個 1.6 TB Intel P4600 NVMe SSD,被認為是磁碟機技術的第二大飛躍,而 SSD 則是第一位。在 HPC 環境中,暫存空間通常是一個限制因素。它可能太小或太慢。適用於 HPC BeeGFS 儲存的 Dell EMC Ready Solutions 設計為臨時解決方案,可使用 BeeGFS 檔案系統為臨時儲存裝置提供服務。
BeeGFS 包括兩個集成的基準測試工具,可以幫助分別表徵或評估網路或存儲 NetBench 和 StorageBench 。啟用 NetBench 模式時,伺服器會丟棄收到的寫入請求,而不是寫入數據。同樣,在讀取請求的情況下,僅將記憶體緩衝區發送到用戶端,而不是從底層文件系統讀取。NetBench 模式旨在測試獨立於底層磁碟的網路流輸送量。另一方面,StorageBench 旨在獨立於網路性能測量底層文件系統的流輸送量。StorageBench 是不使用網路的儲存目標效能指標。storage-bench 命令只是將要求傳送到儲存目標,以開始寫入/讀取資料。這樣,我們消除了網路的影響。如果網路性能理想,我們從存儲工作台獲得的輸出是系統可以達到的最佳性能。本部落格說明如何使用 StorageBench 來比較不同儲存目標的效能,進而找出有缺陷或設定錯誤的目標。
StorageBench - 比較不同 RAID 組態的效能
StorageBench 不使用掛接的檔案系統。執行 StorageBench 時,每個檔案只有一個目標。Storagebench 在系統上創建與測試線程數相等的測試檔的每個存儲目標上創建一個目錄。數據直接流式傳輸到此位置,以顯示每個存儲目標可用的低級別輸送量。在沒有任何網路通訊的情況下,無法模擬檔案等量。因此,存儲基準測試結果與禁用條帶化的用戶端 IO 相當。執行效能指標時,如果採用預設等量模式,檔案會跨四個儲存目標進行等量分割。
為了測試不同的儲存目標,我們使用了 Dell BeeGFS 儲存解決方案擴充性部落格中所述的中小型組態。這兩種組態的中繼資料目標數量均配置在 RAID 1 中。它們的不同之處在於儲存目標的 RAID 配置。小型設定具有儲存裝置,目標是設定在 RAID 0 中 (共 6 個磁碟機),而中型組態則具有以 RAID 10 (共 6 個磁碟機) 設定的儲存目標。在小型和中型設定上設定的儲存目標表格如下表所示:
| 表 1 試驗平台組態 | ||
|---|---|---|
| 組態 | 中 - RAID 10 用於儲存目標 | Small – RAID 0 適用於儲存目標 |
| 中繼資料目標數量 | 6 | 6 |
| 中繼資料服務的例項數 | 6 | 6 |
| 儲存伺服器數量 | 5 | 2 |
| 儲存目標數量 | 22 | 10 |
| 每部伺服器的儲存服務數量 | 4 | 4 |
| 每個 NUMA 區域的儲存服務數量 | 2 | 2 |
| 每個儲存服務執行個體的目標數 | 2 | 2 |
注意:上述媒體設定組態僅用於測試使用 StorageBench 工具,在不同 RAID 組態中設定的儲存目標輸送量。
StorageBench 寫入效能指標 - 在儲存目標設定為 RAID 0 的小型組態上
隨即會使用 beegfs-ctl 工具啟動並監控儲存效能指標。beegfs-utils 套裝提供 beegfs-ctl 命令列工具,可用於執行儲存目標效能指標。下列範例針對 I/O 區塊大小為 512KB 的所有 BeeGFS 儲存伺服器的所有目標,為每個目標使用 16 個執行緒,每個目標會將 200 Gb 的資料寫入其自己的檔案。
[root@stor1 ~]# beegfs-ctl --storagebench --alltargets --write --blocksize=512K --size=200G --threads=16 Write storage benchmark was started. You can query the status with the --status argument of beegfs-ctl. Server benchmark status: Running: 10
「執行中:10“ 輸出表示系統中總共配置了 10 個儲存目標。
要查詢所有目標的基準測試狀態/結果,可以運行以下命令:
[root@stor1 ~]# beegfs-ctl --storagebench --alltargets --status Server benchmark status: Finished: 10 Write benchmark results: Min throughput: 4692435 KiB/s nodeID: stor1-numa0-2 [ID: 6], targetID: 50 Max throughput: 5368537 KiB/s nodeID: meta-stor-numa1-2 [ID: 2], targetID: 48 Avg throughput: 4907091 KiB/s Aggregate throughput: 49070915 KiB/s
將 verbose 新增至上述命令,會顯示所有目標的清單及其各自的輸送量。
[root@meta-stor ~]# beegfs-ctl --storagebench --alltargets --status --verbose Server benchmark status: Finished: 10 Write benchmark results: Min throughput: 4692435 KiB/s nodeID: stor1-numa0-2 [ID: 6], targetID: 6 Max throughput: 5368537 KiB/s nodeID: meta-stor-numa1-2 [ID: 2], targetID: 2 Avg throughput: 4907091 KiB/s Aggregate throughput: 49070915 KiB/s List of all targets: 1 5368477 KiB/s nodeID: meta-stor-numa1-1 [ID: 1] 2 5368537 KiB/s nodeID: meta-stor-numa1-2 [ID: 2] 3 4706368 KiB/s nodeID: stor1-numa0-1 [ID: 3] 4 4896077 KiB/s nodeID: stor1-numa1-1 [ID: 4] 5 4872876 KiB/s nodeID: stor1-numa1-2 [ID: 5] 6 4692435 KiB/s nodeID: stor1-numa0-2 [ID: 6] 7 4879054 KiB/s nodeID: stor2-numa1-2 [ID: 7] 8 4864737 KiB/s nodeID: stor2-numa1-1 [ID: 8] 9 4696152 KiB/s nodeID: stor2-numa0-1 [ID: 9] 10 4726202 KiB/s nodeID: stor2-numa0-2 [ID: 10]
從輸出推斷:
在 RAID 0 中設定的每個儲存目標的平均輸送量為 5.02 GB/秒。
StorageBench 寫入效能指標 - 在中型組態上,搭配以 RAID 10 設定儲存目標
下列範例針對 I/O 區塊大小為 512KB 的所有 BeeGFS 儲存伺服器的所有目標,為每個目標使用 16 個執行緒,每個目標將 200 Gb 的資料寫入其自己的檔案,開始寫入寫入效能指標。
[root@node001 ~]# beegfs-ctl --storagebench --alltargets --write --blocksize=512K --size=200G --threads=16 Write storage benchmark was started. You can query the status with the --status argument of beegfs-ctl. Server benchmark status: Running: 22
將 verbose 新增至上述命令,會顯示所有目標的清單及其各自的輸送量。
[root@node001 ~]# beegfs-ctl --storagebench --alltargets --status --verbose Server benchmark status: Finished: 22 Write benchmark results: Min throughput: 2705987 KiB/s nodeID: node006-numa0-1 [ID: 19], targetID: 1 Max throughput: 3364311 KiB/s nodeID: node001-numa1-1 [ID: 1], targetID: 1 Avg throughput: 3212845 KiB/s Aggregate throughput: 70682603 KiB/s List of all targets: 1 3364311 KiB/s nodeID: node001-numa1-1 [ID: 1] 2 3361591 KiB/s nodeID: node001-numa1-2 [ID: 2] 3 3309530 KiB/s nodeID: node002-numa0-1 [ID: 3] 4 3312840 KiB/s nodeID: node002-numa0-2 [ID: 4] 5 3332095 KiB/s nodeID: node002-numa1-1 [ID: 5] 6 3323319 KiB/s nodeID: node002-numa1-2 [ID: 6] 7 3313000 KiB/s nodeID: node003-numa0-1 [ID: 7] 8 3321214 KiB/s nodeID: node003-numa0-2 [ID: 8] 9 3335072 KiB/s nodeID: node003-numa1-1 [ID: 9] 10 3339743 KiB/s nodeID: node003-numa1-2 [ID: 10] 11 3302175 KiB/s nodeID: node004-numa0-1 [ID: 11] 12 3309474 KiB/s nodeID: node004-numa0-2 [ID: 12] 13 3329879 KiB/s nodeID: node004-numa1-1 [ID: 13] 14 3328291 KiB/s nodeID: node004-numa1-2 [ID: 14] 15 3306132 KiB/s nodeID: node005-numa0-1 [ID: 15] 16 3307096 KiB/s nodeID: node005-numa0-2 [ID: 16] 17 3318436 KiB/s nodeID: node005-numa1-1 [ID: 17] 18 3329684 KiB/s nodeID: node005-numa1-2 [ID: 18] 19 2705987 KiB/s nodeID: node006-numa0-1 [ID: 19] 20 2716438 KiB/s nodeID: node006-numa0-2 [ID: 20] 21 2707970 KiB/s nodeID: node006-numa1-1 [ID: 21] 22 2708326 KiB/s nodeID: node006-numa1-2 [ID: 22]
從輸出推斷:
每個存儲目標的平均輸送量為 3.29 GB/s。
從在兩種不同 BeeGFS 設定上的 StorageBench 效能指標測試輸出結果,其中一個設定的儲存目標設定為 RAID 0,另一個則設定為 RAID 10 的儲存目標,很明顯,在 RAID 0 中設定儲存目標比在 RAID 10 中設定的儲存目標更佳。使用 dd 命令寫入區塊大小為 10M 的 10G 檔案並「oflag=direct」時,設定在 RAID 0 中的小型系統的平均輸送量約為 5.1 GB/秒,而設定為 RAID 10 的中型系統的平均輸送量約為 3.4 GB/秒,這與使用 storagebench 工具所獲得的結果相當。
StorageBench - 找出有瑕疵或設定錯誤的儲存目標
StorageBench 在 公開發表部落格 中所述的中型組態上執行,以瞭解系統中是否有任何組態錯誤或有瑕疵的儲存目標。
[root@node001 ~]# beegfs-ctl --storagebench --alltargets --status --verbose Server benchmark status: Finished: 33 Read benchmark results: Min throughput: 2830479 KiB/s nodeID: node003-numa1-2 [ID: 14], targetID: 14 Max throughput: 3025500 KiB/s nodeID: node005-numa0-1 [ID: 22], targetID: 22 Avg throughput: 2917836 KiB/s Aggregate throughput: 96288596 KiB/s List of all targets: 1 2950039 KiB/s nodeID: node001-numa1-1 [ID: 1] 2 2956121 KiB/s nodeID: node001-numa1-2 [ID: 2] 3 2954473 KiB/s nodeID: node001-numa1-3 [ID: 3] 4 2957658 KiB/s nodeID: node002-numa0-1 [ID: 4] 5 2947109 KiB/s nodeID: node002-numa0-2 [ID: 5] 6 2969886 KiB/s nodeID: node002-numa0-3 [ID: 6] 7 2892578 KiB/s nodeID: node002-numa1-1 [ID: 7] 8 2886899 KiB/s nodeID: node002-numa1-2 [ID: 8] 9 2888972 KiB/s nodeID: node002-numa1-3 [ID: 9] 10 2861995 KiB/s nodeID: node003-numa0-1 [ID: 10] 11 2874314 KiB/s nodeID: node003-numa0-2 [ID: 11] 12 2879096 KiB/s nodeID: node003-numa0-3 [ID: 12] 13 2832635 KiB/s nodeID: node003-numa1-1 [ID: 13] 14 2830479 KiB/s nodeID: node003-numa1-2 [ID: 14] 15 2830971 KiB/s nodeID: node003-numa1-3 [ID: 15] 16 2986890 KiB/s nodeID: node004-numa0-1 [ID: 16] 17 2979197 KiB/s nodeID: node004-numa0-2 [ID: 17] 18 2983958 KiB/s nodeID: node004-numa0-3 [ID: 18] 19 2897974 KiB/s nodeID: node004-numa1-1 [ID: 19] 20 2900880 KiB/s nodeID: node004-numa1-2 [ID: 20] 21 2904036 KiB/s nodeID: node004-numa1-3 [ID: 21] 22 3025500 KiB/s nodeID: node005-numa0-1 [ID: 22] 23 3021558 KiB/s nodeID: node005-numa0-2 [ID: 23] 24 3017387 KiB/s nodeID: node005-numa0-3 [ID: 24] 25 2921480 KiB/s nodeID: node005-numa1-1 [ID: 25] 26 2930226 KiB/s nodeID: node005-numa1-2 [ID: 26] 27 2930548 KiB/s nodeID: node005-numa1-3 [ID: 27] 28 2900018 KiB/s nodeID: node006-numa0-1 [ID: 28] 29 2898520 KiB/s nodeID: node006-numa0-2 [ID: 29] 30 2907113 KiB/s nodeID: node006-numa0-3 [ID: 30] 31 2855079 KiB/s nodeID: node006-numa1-1 [ID: 31] 32 2853527 KiB/s nodeID: node006-numa1-2 [ID: 32] 33 2861480 KiB/s nodeID: node006-numa1-3 [ID: 33]
從上述輸出可以明顯看出,所有儲存目標執行一致,系統中沒有瑕疵目標。
結論和未來工作
本部落格探討了 BeeGFS 的重要功能,並說明了儲存工作台效能指標的實用性,以評估或比較不同 RAID 組態的效能,以及識別是否有任何儲存目標有瑕疵或設定錯誤。作為後續步驟的一部分,我們將在稍後發佈一份白皮書,其中包含元數據性能和 IOR 性能,以及有關設計注意事項、調整和配置的其他詳細資訊。
參考資料
1) 適用於 HPC BeeGFS 儲存 PowerEdge 的 Dell EMC Ready Solutions:適用於 HPC BeeGFS 高效能儲存
的 Dell Ready Solutions2) 適用於 HPC BeeGFS 儲存 PowerEdge 的 Dell Ready Solutions 擴充能力:適用於 HPC BeeGFS 儲存的 Dell Ready Solutions 擴充能力
3) BeeGFS 說明文件:
https://www.beegfs.io/wiki/4) 如何連接同一子網上的兩個介面:
https://access.redhat.com/solutions/305645) 使用外接式記憶體的 PCI Express 直接記憶體存取參考設計:https://www.intel.com/content/www/us/en/programmable/documentation/nik1412547570040.html#nik1412547565760