Raid

與故障轉移相比,為什麼主動-主動配置會降低性能?

  • September 24, 2021

我們正在為我們正在管理的應用統計、生物資訊學和基因組學的 HPC 計算集群設置新的儲存。

配置

我們有一個帶有 Dell EMC ME4084 (84x12TB 7200rpm) 的主機箱和一個帶有 Dell EMC ME484 (28x12TB) 的附加機箱。EMC ME4084 提供 ADAPT 分佈式 RAID(類似於 RAID6)和雙硬體控制器。

文件伺服器執行 CentOS 7。儲存使用兩根 SAS 電纜連接到文件伺服器。每個 LUN 對應一個具有 ADAPT 的 14 磁碟組,並且兩個 SAS 連接都顯示為設備 sdbsdj. 以下範例針對 LUN ID 0 給出。

我們multipath為主動-主動配置進行瞭如下配置:

$ cat /etc/multipath.conf
defaults {
   path_grouping_policy multibus
   path_selector "service-time 0"
}

$ multipath -ll
mpatha (3600c0ff000519d6edd54e25e01000000) dm-6 DellEMC ,ME4
size=103T features='0' hwhandler='0' wp=rw
`-+- policy=‘service-time 0' prio=1 status=active
 |- 1:0:0:0  sdb 8:16  active ready running
 `- 1:0:1:0  sdj 8:144 active ready running

故障轉移配置:

$ cat /etc/multipath.conf
defaults {
   path_grouping_policy failover
   path_selector "service-time 0"
}

$ multipath -ll
mpatha (3600c0ff000519d6edd54e25e01000000) dm-6 DellEMC ,ME4
size=103T features='0' hwhandler='0' wp=rw
|-+- policy=’service-time 0' prio=1 status=active
| `- 1:0:0:0  sdb 8:16  active ready running
`-+- policy=’service-time 0' prio=1 status=enabled
 `- 1:0:1:0  sdj 8:144 active ready running

我們驗證了寫入會mpatha導致在主動-主動配置中sdbsdjsdb在啟用主動的配置中寫入。我們將mpatha另一個條帶化mpathb到一個邏輯卷中,並使用 XFS 對其進行格式化。

測試設置

fio我們使用以下工作負載對 I/O 性能進行了基準測試:

  • 單個 1MiB 隨機讀/寫程序
  • 單個 4KiB 隨機讀寫程序
  • 16 個並行 32KiB 順序讀/寫程序
  • 16 個並行 64KiB 隨機讀/寫程序

測試結果

                      Failover           Active-Active
                -------------------   -------------------
  Workload        Read       Write      Read       Write
--------------   --------   --------   --------   --------
1-1mb-randrw     52.3MB/s   52.3MB/s   51.2MB/s   50.0MB/s
1-4kb-randrw     335kB/s    333kB/s    331kB/s    330kB/s
16-32kb-seqrw    3181MB/s   3181MB/s   2613MB/s   2612MB/s
16-64kb-randrw   98.7MB/s   98.7MB/s   95.1MB/s   95.2MB/s

我只報告了一組測試,但結果在重複(n = 3)和path_selector.

是否有任何理由主動-主動不能至少與主動啟用的性能相匹配?我不知道問題是否與工作負載和多路徑配置有關。當我們使用線性邏輯捲而不是條帶化時,差異更加驚人(20%)。我真的很好奇我是否忽略了一些明顯的東西。

非常感謝,

尼古拉斯

當您使用 HDD 時,單個控制器 對於您的後端磁碟來說已經*非常快了。*在主動/主動模式下添加另一個控制器意味著沒有額外的 IOP(由於 HDD),但在多路徑級別有更多成本,因此會降低性能。

換句話說:您將在第一個控制器的 CPU之前使 HDD 飽和,因此讓它們處於主動/被動模式。此外,我會嘗試使用單個 28 磁碟陣列並對其進行基準測試,以查看它是否提供了比實際 2x 14 磁碟設置更多或更少的性能。

引用自:https://serverfault.com/questions/1023752