同時 IO 到外部 USB 3.0 外殼中的多個 SSD

同時 IO 到外部 USB 3.0 外殼中的多個 SSD

更新:剛剛在帶有八個額外 SATA 連接埠的主機板上嘗試了這種情況,它可以工作。比我想像的要慢,但仍然可以接受。根據與 David Schwartz 的討論,我相信他可能是正確的,即存在一些病理性錯誤,或者 Ali Chen 可能是正確的,RHEL 只是無法同時處理那麼多主機控制器。自從我已經走到這一步以來,我將進行更多的實驗,並且在這一點上我基本上是因為好奇而得到報酬的。 :)

開始原始帖子

所以,設定有點冗長。我們的系統中有兩張 RocketU 1144D 4 連接埠 USB 3.0 卡,一張​​位於 PCIe 2.0 插槽,一張位於 PCIe 3.0 插槽,以避免頻寬問題。每張 USB 卡均配有四個 Crucial MX300 1TB SSD,位於外部供電的 Silver Stone Raven 外殼中。根據客戶的需求,能夠同時將同一組檔案寫入八個磁碟中的四個磁碟,同時從其他四個磁碟讀取檔案以計算 MD5 校驗和。每個磁碟將盡可能接近容量,檔案大小約為 1GB,無論是在讀取時還是在寫入所有檔案後。

現在,如果我們只存取或寫入文件到其中一張卡上的磁碟,速度並沒有那麼糟糕。在整個 TB 中,每個檔案平均需要 3 到 4 秒(讀取/計算或寫入)。問題是,當我們嘗試同時執行這兩項操作時,讀寫速度會很快下降,從每個檔案大約 1.5 秒到每個檔案超過 60 秒。

系統中唯一的其他卡片是 PCIe 3 16x 插槽中的顯示卡和另一個 PCIe 3 8x 插槽中的 Intel X540-T2 轉接器(目前未使用)。

我們有一個雙 CPU X10DRL-i 伺服器 MOBO,上面有兩個 6 核心 Zenon 處理器,以及另一個連接到 SATA 連接埠的 Crucial MX300 運行 RHEL 7.2 的 64 GB RAM。

因此,問題是,是否有可能在相當長的時間內完成上述操作,定義為:每個SSD 讀取1001 GB 文件,從連接到卡1 的4 個SSD 讀取,寫入到連接到卡2 的4 個SSD,操作必須可以在不到一小時的時間內並行完成(因為客戶)?

從我所了解到的情況來看,我開始傾向於“不”,但我想我會問一下,看看是否有比我知識更多的人有更明確的信息。非常感謝任何幫助、建議,尤其是答案。

根據 David Schwartz 的建議進行編輯:

每卡所需頻寬 每個 USB 3.0 連接埠 x4 連接埠 5Gbps = 20 Gbps

可用頻寬 PCIe 2.0 x4,每頻道 500 MBps = 16 Gbps

由於一張卡使用 PCIe 3 通道,另一張卡使用 PCIe 2 通道,據我了解,這些資源不應該發生衝突。

筆記:

我知道該卡的頻寬已超額出售,但每個 GB 檔案的讀取和寫入不應持續數分鐘。

編輯2:

根據 David Schwartz 的建議,我使用系統監視器和 htop 來監控核心使用情況。對於前十幾個檔案 IO,系統顯示 100% 或接近 100% 使用率或四個核心。然後系統會凍結幾秒鐘,此時就會發生檔案 IO 降級。此外,此後核心利用率很少達到 100%,而且達到 100% 的時間也非常短暫。

編輯 3:很可能是最終編輯。

經過一些研究和實驗後,我想我們可以說這不適用於手頭上的卡,我敢打賭評論中提到的 StarTech 卡也不會工作。我相信我們可以根據幾件事得出這個結論。簡而言之,一塊 SSD 在該卡上表現出色。兩個工作正常,但速度有點慢;我猜是開銷。然而,三個或更多人開始做壞事。我想這是因為我們試圖將 20Gbps 的 PCIe 通道推至 16Gbps 之上,但傳輸兩側的控制器並沒有達到 16Gbps 的理論最大值,可能會互相絆倒,通常會導致事情回退到以下程度:資料傳輸速度減慢。這只是一個理論,但它足以讓客戶放棄 USB 要求並允許我們嘗試 SATA 和其他方法。 SATA 的表現要好得多,所以我認為我們有贏家。感謝 David Schwartz 和 Ali Chen 的協助和建議。

編輯4:實際的最終編輯

因此,昨天我在查看 SATA 解決方案時,在多個部分中偶然發現了我的問題的答案。實際問題有兩個,只有在第一個問題被發現後才變得明顯。

所以,第一個問題是記憶體管理。在測試了讀取大檔案進行寫入的軟體位元後,看起來這些檔案被讀取一次,然後寫入多次。此情況並非如此。因此,我們不斷發生對多個 1GB 檔案的多個讀取請求。為什麼這在測試中有效但在實踐中無效,我不確定,但我們沒有時間進行事後分析,因此這一切都成為歷史。

第二個問題是我們不是硬體專家,所以我們在 Linux 系統上工作時不知道一個非常重要的細節。由於 NTFS 不是 Linux 原生的(這一點我們知道),顯然它的運行速度會慢近一個數量級(這一點我們不知道)。如果這是一個 Windows 盒子,我們就不會有任何問題。

將這兩個因素結合在一起,你就會得到我們所經歷的不穩定行為。一旦我們將所有磁碟完全重新格式化為 EXT4,我們就不再看到任何不可預測的讀取/寫入時間,一切都按預期進行。我們可以在允許的參數範圍內同時進行寫入和讀取/md5 計算。

相關內容