當前大資料環境下,高效能、大容量的儲存系統的需求日益突出。大規模資料儲存系統中,傳統關係型資料庫檢索效能較慢,檢索語句較複雜,已無法滿足海量資料處理對高效能資料檢索的要求。因此,以鍵值對(Key-Value Pairs,簡稱KVP)為基礎的資料檢索技術以其高擴充套件、低延時及高效能等優點,被廣泛應用到承載海量資料的儲存系統高速檢索場景中,但是傳統的儲存系統由於其自身架構的先天不足,限制了KV本該發揮的效能表現。
具體來說,由於單機記憶體總量的限制,記憶體KV在實際應用中會出現不少問題,包括極高的寫放大、快取未命中時的讀放大、與裝置效能不匹配的業務效能以及極低的空間使用率等等。
百度攜手寶存科技,軟硬相結合,硬剛KV短板
針對這些問題,百度結合對KV的深入理解以及SSD的特性把控,選擇聯合寶存科技在其Open-Channel SSD(簡稱OCS)平臺上實現一套高效能原生KV架構,以改變當前KV儲存平臺存在的不足,充分發揮KV在SSD上應有的效能。
經過短短一年的時間,百度就將全新的Open-Channel KV成功實現。SSD不再以傳統塊裝置的形式存在,而是以KV服務的形式呈現給上層業務。KV邏輯向上層提供KV介面,KV介面接收到的鍵值對將被直接寫入物理介質NAND的某個地址上並在記憶體中記錄對映關係,無需經過檔案系統/虛擬記憶體/塊裝置的層層轉換,讀取時同理。資料透過軟體層面最短的路徑進行傳輸,因此延遲大幅度縮短。
此次聯合專案的開發過程中,由於Open Channel介面本身具備的靈活性,如何做到軟體與硬體的高效協同,對雙方團隊來說都極具價值和挑戰,為此,百度專門對硬體部分提出了多項定製化的需求。在不斷試錯、不斷學習的過程中,結合寶存科技在SSD產品開發中的經驗,進行了多次迭代。終於將Open-Channel SSD的底層全部開啟,透過掌握SSD內部邏輯,獲得了底層儲存硬體更多的控制許可權,最終透過軟硬體一體的設計,實現了工業界首例Bypass Kernel、直接基於Open-Channel SSD硬體實現的KV儲存引擎。籍此單盤吞吐能力相比rocksdb實現了大幅度提升,配以面向雲原生設計的分散式儲存框架,無限制混布,全自動化運維,極大降低了業務資料單位成本。
儲存硬體加速,OCS最佳化僅僅是開始
作為一個獨立的儲存引擎,百度Open-Channel KV契合了公司軟硬一體化儲存的發展方向,對於未來,百度基於儲存硬體加速的場景也會不斷豐富。
之前的問題在此次聯合開發中都一一得到了改善和解決,包括但不僅限於實現了極小的寫放大、消除讀放大、充分發揮硬體效能、巨幅提升QoS水平以及更高的空間使用率等等。簡單來說,軟體棧得到了很大的最佳化,應用延遲也有很大的改善,並且精簡了平臺架構。因為這些優勢,百度Open-Channel KV專案已成功接入多個重要業務,實現了同級別產品中僅提升儲存效能和僅最佳化軟體邏輯都無法達到的業務效能提升幅度。百度也成為國內第一家落地使用者態OCS的廠商。
作為下一代資料中心架構的技術方向,Open-Channel SSD的生態和標準也在逐步完善。百度儲存專家認為ZNS(Zoned Namespace)模式是Open Channel SSD的一個重要發展演進方向。ZNS模式透過將SSD底層物理儲存空間劃分為多個分割槽提供給上層直接資料儲存管理的能力,同時把NAND相關的底層邏輯保留在SSD內部。減輕主機端SSD後臺邏輯處理壓力的同時,依然保留了對底層資料存取進行定製化控制的能力,這對於開發者是非常友好的。目前NVMe組織已經認可了ZNS的命令集規範,這將有助於OCS的生態發展。百度也將與寶存科技繼續合作開發,推動ZNS模式下的OCS產品早日上線應用。