設計工具
儲存裝置

使用 Aerospike 在實際工作負載上靈活放置資料的好處

John Mazzie | 2024 年 3 月

彈性資料放置 (FDP) 是 Google 和 Meta 提出的 NVMe™ 規格1的一項功能。此功能的目的是在多個應用程式在同一個 NVMe SSD 上寫入和修改資料時,減少寫入放大 (WA)。WA 降低對這些公司的好處包括可用容量增加(由於需要的過度配置較少),以及裝置壽命可能更長(由於磨損減少)。

我們建議進行一項實驗,以確定 FDP 的幫助程度。在此測試中,我們使用了 7.68TB 美光® 7450 PRO SSD,分成四個相等 (1.92TB) 的命名空間,並執行 Aerospike NoSQL 資料庫的平行執行個體。Aerospike 已針對 SSD 使用量進行高度最佳化,並嘗試僅循序寫入裝置。這為單一執行個體提供了極低的寫入放大係數 (WAF),但是當在相同的實體裝置上執行多個執行個體時,這些交易會一起混亂,導致工作負載隨機。

每個 Aerospike 執行個體都設定為以不同的區塊大小(32KB、64KB、128KB、256KB)寫入,以模擬虛擬環境中共用空間的不同客戶。我們亦將這些工作負載分別執行到 4x 1.92TB 的美光 7450 PRO SSD,我們認為這是 FDP 的最佳實作,所有應用程式資料都會接收專用 NAND 空間,因此資料不會在裝置上交錯,如圖 1 所示。

圖 1:無 FDP 的資料配置(交錯)

圖 2:有 FDP 的資料配置(交錯)

 

由於 Aerospike 的最佳化,我們預期在自己的專用儲存裝置上執行單一應用程式執行個體時,WA 係數會接近 1。執行 YCSB 工作負載 A(50% 讀取/50% 更新)直到硬碟填滿多次,可以確認這一點。在理想情況下,大型裝置上的四個命名空間會與四個單一裝置相同。此情境的版面配置如圖 2 所示。

如果沒有 FDP 並在 7.68TB 裝置上執行多個工作負載,硬碟不會透過命名空間分隔 NAND,也無法確定在執行實例的情況下應將哪些 Aerospike 資料分組在一起。交錯意味著從硬碟的角度來看,即使每個工作負載都是連續的,工作負載還是會變得更加隨機,如圖 1 所示。 隨著隨機性增加,我們看到,對於共同位於非 FDP 裝置上的四個實例,WA 相應增加至 1.84,而對於位於其專用裝置上的單一實例,WA 從 1.08 開始增加,如圖 3 所示。

圖 3:Aerospike 寫入放大 – FDP 相較於無 FDP

 

雖然這是一項基本實驗,但它顯示了在未來裝置中實施 FDP 的潛在益處。我們亦可以看到,在爭奪相同的硬碟資源時,一些設計為盡可能循序寫入的應用程式會如何從 FDP 中受益。

1 有關 Chris Sabol (Google) 和 Ross Stenfort (Meta) 向 NVMExpress 簡報中提供的其他詳細資訊,請參閱 https://nvmexpress.org/wp-content/uploads/Hyperscale-Innovation-Flexible-Data-Placement-Mode-FDP.pdf。 

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.