Raid
單個 16 埠適配器上的多個 RAID 選擇
我有一個 16 埠的 Areca ARC-1260D PCIe RAID 卡,我打算將它用作一個大型陣列(RAID 10 或 RAID 6)。我沒有考慮是否可以將 RAID 卡分成兩個(或更多)不同的 RAID 陣列。有問題的卡支持多個 RAID 選擇。
在單個適配器上使用多個 RAID 選擇是否會導致性能大幅下降(或任何其他警告)?通常,我一次將 RAID 適配器用於單個陣列,因此我不確定在單個適配器上使用多個 RAID 集是否明智/不明智。最初我計劃將整個陣列用於 XenServer 的 VM,但現在有了這個選項,我正在考慮為 VM 創建一個陣列,另一個用於簡單的文件儲存。
編輯:這是針對 SATA,而不是 SAS。最初我希望用 1.5TB SATA 磁碟填充陣列,但 2TB 磁碟的價格已經大幅下降,我正在考慮在卡上安裝兩個 RAID 陣列;1 個陣列有 6-8 個 1.5TB 磁碟,另一個陣列有 6-8 個 2TB 磁碟。
有幾個原因可能會讓您看到多個 RAID 陣列導致性能略有下降——首先,您可能會在一定程度上拆分記憶體,但這應該不會造成特別大的影響。您也更有可能引入隊列/匯流排爭用,但這也不應該有太大的不同。影響更大的是實際陣列中的磁碟更少,這可能會產生更大的整體影響。
您不會看到與 RAID-10 有任何區別。使用 RAID-5 和 RAID-6,理論上您可能會在同時大量寫入兩個 LUN 時看到寫入吞吐量的微小差異,具體取決於 Areca 的實現。您所關心的本質上是過早的優化,在轉向特定於供應商的實現怪癖之前,您可能應該關注這些一般規則:
- 確保您的直寫記憶體正常執行。一個好的直寫記憶體在奇偶校驗條帶中佔了很大一部分寫入性能,尤其是隨機寫入。
- 了解分區對齊。我相信在 Linux 上,大多數圖形分區工具(例如 GParted)會預設對齊您的分區,但 fdisk 和 parted 不會。這會導致邊界交叉,這可能會將單個寫入操作轉換為多次讀取和多次寫入,從而降低您的性能。
- 當您寫入 RAID-5 或 RAID-6 時,控制器需要從整個條帶中讀取數據以重新計算奇偶校驗。了解段大小的含義以及它與您的數據的關係,尤其是在部分寫入方面(在修改塊的一部分之前需要讀取)。通常,條頻寬度越大,順序讀取吞吐量越大,但在寫入時重新計算奇偶校驗時需要讀取的數據越多。您的條頻寬度越小,您不進行部分寫入的可能性就越大,並且根本不需要重新計算奇偶校驗,但是您需要更多的磁碟來滿足 I/O 請求。這是一種權衡,您確實需要了解您的應用程序。
- 聽取供應商關於應用程序性能的建議。Areca 允許您在一個卷集中創建多個 RAID 陣列——如果您的應用程序需要 I/O 性能,請利用此功能。您可以創建具有不同條頻寬度的多個 RAID 卷。