NVMe是新一代的PCIe固態硬盤接口規范,其目的是統一主流廠商的SSD接口交互標準,并更好的對上層系統釋放效率潛能。NVMe標準的倡導者包括英特爾、三星、美光、Oracle、微軟、Dell、HGST、希捷等行業領先企業,2014年11月發布版本1.2標準。
市售的基于NVMe硬盤動輒可達到單盤GB級的讀寫帶寬和十萬量級的隨機IOPS,為SATA固態硬盤的5~10倍。然而,由于Linux內核驅動實現與調度機制的限制,主流的軟件定義存儲系統并不能完全釋放其性能,同時,對CPU等系統資源消耗巨大,為構建融合存儲系統帶來挑戰。
繼為SDN和NFV領域帶來福音的DPDK之后,英特爾于2015年9月開始,逐步將為NVMe等新一代存儲規范優化的Linux性能工具包SPDK(Storage Performance Development Kit)對合作伙伴與社區開源,試圖將Linux用戶態存儲服務程序與底層硬件設施打通,大幅度縮短IO路徑,充分利用無鎖機制,為NVMe等新一代的存儲介質打通軟件層瓶頸,使其能夠在有限的系統資源消耗下支撐關鍵業務存儲系統足夠的帶寬和延時要求。
SPDK系統架構圖
如同DPDK一樣,SPDK作為開源的代碼實現,并不僅僅支持英特爾品牌的閃存設備。它面向整個基于Linux平臺的軟件生態系統,為業界“軟件定義存儲”(SDS,Software Defined Storage)提供了又一性能與架構利器,勢必影響深遠。
作為開源軟件定義存儲的首選系統,Ceph長期以來就其計算資源占用率和性能方面,雖不斷提高,但在閃存環境下仍難覓突破性進展。順應業界趨勢,將SPDK的支持在Ceph中實現勢在必行。
Ceph與SPDK結合架構圖
XSKY(星辰天合)是國內SDS初創企業,其團隊在Ceph開源社區代碼貢獻量在全球行業內領先。作為英特爾在中國的首批SPDK合作伙伴之一,XSKY率先將SPDK與Ceph用戶態文件系統BlueFS整合,大幅度提高Ceph在NVMe介質上的落盤效率,相較于此前的NVMe公版內核驅動,數據落盤模塊性能提升在20%以上(在英特爾 P3700 SSD上已測試驗證)。結合Intel DPDK后,性能達到雙倍提高。隨著對Ceph上層模塊的優化,可以期待整個系統更好的性能表現。
該創新實踐已得到Red Hat方面Ceph社區領袖Sage Weil等人的認可,XSKY已將此部分代碼貢獻到開源Ceph主線,并承諾持續對此部分進行整合優化工作,推動該技術在實際生產環境中的應用。