關於大量使用的文件儲存伺服器中的驅動器的問題
我有一個中型文件儲存網站,允許人們線上備份他們的數據。許多這些文件是共享的,並接收大量流量。我有幾種類型的伺服器,但我還沒有找到可以利用大部分硬碟空間而不達到驅動器 IO 限制的“最佳位置”。
我擁有的最強大的伺服器是 raid5 4K 塊中的 8 個 128Gb SSD。它的峰值隨機讀取速度約為 320MB/s,看起來它還有一些空間可以推動更多。然後我有一個 3 x 300GB 15k SAS raid0 盒子,在達到 io 限制之前幾乎不能達到 45MB/s,並且負載猛增。
當我查看各種驅動器基準時,我發現大多數現代 SSD 可以進行約 50MB/s 的隨機讀取。這是否意味著它或多或少地線性擴展?所以如果我在 raid0 中有 12 個這樣的,我可以做大約 600MB/s 的隨機讀取?raid5 性能下降到什麼程度?
另外我聽說如果使用 RAID,TRIM 會被禁用,因此性能會下降得更快。我說的是真的嗎?
如果 SAS 驅動器是您的 IO 模式的良好指標,那麼您的讀取 IO 大小似乎約為 64k - 假設驅動器正常且模式大多是隨機的。這對於您描述的案例類型是有意義的。
如果這同樣適用於您的 SSD,那麼您每個驅動器只能獲得大約 600IOPS,這對於 SSD IMO 來說非常糟糕。使用一個不錯的控制器,從 RAID 5 包中讀取的成本應該很小 - 所有磁碟上都有數據(分佈式奇偶校驗),因此如果您對控制器有足夠的請求,讀取應該能夠並行發送到所有磁碟做它的事。問題可能是您的控制器無法處理整體 IO 負載或以您嘗試推送的數據速率達到最大值 - 它是什麼類型的控制器?另一件事是,如果有任何寫入發生,那麼它們將極大地影響事物 - 使用 RAID 5,您的寫入 IO 容量是讀取速率的四分之一(使用良好的控制器,壞的更糟)並且SSD寫入通常比讀取慢,因此帶有SSD的RAID 5的寫入損失通常接近6倍。如果您確定寫作不會混淆問題,那麼您可以打折。
如果您沒有將這些因素考慮在內,則條帶大小和分區對齊可能會佔用相當大的一部分。您說您在 RAID 5 中配置了帶有 4K 塊的 SSD - 如果 4K 是您的條帶大小,那麼這就很遙遠了。條帶大小應該是 SSD 讀取塊大小的倍數,這將遠大於 4K,具體取決於 SSD,讀取塊將是 64k/128k 或更多。嘗試在不知道 SSD 型號和控制器的情況下嘗試條帶大小已經看到,如果控制器被最大化,那麼這是您需要解決的第一個瓶頸。
50Meg/sec 隨機讀取速率取決於 IO 大小 - 對於像樣的 SSD(Intel X-25E,35k 隨機讀取 IOP)上的小讀取(在 4K 範圍內),您應該看到 140Meg/sec。較便宜的消費級驅動器會慢一些,但無論使用什麼驅動器,您的 RAID 包都嚴重達不到要求。
您是正確的,目前 TRIM 不能與 RAID 一起使用 - 要正確執行此操作,需要在作業系統視為已刪除數據塊的內容與如何將其轉換為物理磁碟上的塊之間進行映射。這現在不可用,我不會很快屏住呼吸,只有當您向驅動器寫入大量數據並反复填充然後刪除數據時,這才是一個問題。如果您的 IO 模式主要是讀取,並且您沒有重複填充和刪除數據,那麼 TRIM 支持對您來說不是那麼重要。