設計工具
公司

Ceph BlueStore:是快取還是不快取,這是個問題

John Mazzie | 2019 年 3 月

是快取還是不快取,這是個問題。

您還在猶豫不決嗎? 為您的 Ceph® 叢集快取? 答案是:視情況而定。

您可以使用 Micron® 9200 MAX 等高階企業 NVMe™ 硬碟,而不必擔心無法讓 Ceph 叢集發揮最大效能。但若您想在大部分由 SATA 硬碟組成的系統中獲得更多效能提升,該怎麼辦。在此情況下,在 Ceph OSD 伺服器上加裝幾個速度更快的硬碟,用於儲存您的 BlueStore 資料庫和預寫記錄,將是理想的選擇。

美光研發並測試了熱門的加速 Ceph 儲存解決方案,該解決方案利用裝有 Red Hat Ceph 儲存裝置且運行 Red Hat Linux 的伺服器。本人將介紹幾個工作負載情境,並根據我們解決方案測試實驗室的實際結果,向您展示快取可以在哪些方面為您提供幫助。

系統組態

測試使用四個 OSD 節點 Ceph 叢集完成,其組態如下:

 處理器  單插槽 AMD 7551P
 記憶體  256GB DDR4 @ 2666Hz(8x32GB)
 網路  100G
 SATA 硬碟  美光 5210 ION 3.84TB(x12)
 NVMe 硬碟(快取裝置)  美光 9200 Max 1.6TB(x2)
 作業系統  Red Hat® Enterprise Linux 7.6
 應用  Red Hat Ceph Storage 3.2
 每個硬碟/SATA 硬碟的 OSD  2
 資料集  50 個 150GB 的 RBD,每個具有 2 倍副本

表 1:Ceph OSD 伺服器組態

4KiB 隨機區塊測試

對於使用 FIO(彈性 I/O)的 4KiB 隨機寫入,您可以看到,使用快取硬碟可在保持低尾延遲的同時大幅提高效能,即使在高負載下亦然。對於 40 個 FIO 實例,效能高出 71%(190K 比 111K),尾延遲要低 72%(119ms 比 665ms)。

 

Ceph 1

圖 1:4KiB 隨機寫入效能和尾延遲

在 4KiB 隨機讀取測試期間,效能會有所提升,但它的令人信服度要小得多。隨著在讀取測試期間,將不會再使用預寫記錄,且 BlueStore 資料庫不會發生太多變更甚或根本不會改變,該資料也在意料之中。

圖 2:4KiB 隨機讀取效能和尾延遲

混合工作負載 (70% 讀取/30% 寫入)亦顯示出在系統中加裝快取裝置的優勢。效能提升範圍從 64 佇列深度的 30% 到 6 佇列深度的 162%。

圖 3:4KiB 隨機 70% 讀取/30% 寫入效能和尾延遲

4MiB 對象測試

以 4MiB 對象執行 rados bench 命令時,裝有快取裝置時效能會有所提升,但並幅度不像小型區塊工作負載那麼大。由於預寫記錄很小,而對象很大,因此加裝快取裝置對效能的影響要小得多。在運行 10 個 rados bench 實例時,與不使用快取相比,使用快取的傳輸量高出 9%(4.94 GiB/s 相較於 4.53 GiB/s),而平均延遲則低 7%(126 毫秒相較於 138 毫秒)。

圖 4:4MiB 對象寫入效能

透過讀取,我們再次看到整個電路板的效能提升微乎其微。

圖 5:4MiB 對象讀取效能

結論

如您所見,若您的工作負載幾乎全都是讀取,那麼為儲存 BlueStore 資料庫和預寫記錄的 Ceph 叢集加裝快取裝置,不會給您帶來太多效能提升。但對於寫入,情況截然不同。雖然對於大型對象,效能會有所提升,但快取裝置真正的看家本領是小型區塊寫入和混合工作負載。只消花少許錢,在系統中加裝幾個美光效能 9200 NVMe 硬碟,即可充分發揮 Ceph 叢集的最大潛力。

您使用開放原始碼儲存裝置獲得哪些類型的結果? 請前往美光加速 Ceph 儲存裝置,瞭解更多資訊。

在 Twitter 上關注我們 @MicronStorage,並在 LinkedIn 上把美光加為好友,隨時掌握最新資訊。

MTS, Systems Performance Engineer

John Mazzie

John is a Member of the Technical Staff in the Data Center Workload Engineering group in Austin, TX. He graduated in 2008 from West Virginia University with his MSEE with an emphasis in wireless communications. John has worked for Dell on their storage MD3 Series of storage arrays on both the development and sustaining side. John joined Micron in 2016 where he has worked on Cassandra, MongoDB, and Ceph, and other advanced storage workloads.