
在產(chǎn)品開發(fā)過程中,有大容量、高性能存儲需求時,SSD會是第一選擇。
同時,為了更方便的管理數(shù)據(jù),一般不會裸盤使用,而是使用文件系統(tǒng)(File System)對SSD進行掛載使用。
但是對于一些嵌入式、定制化產(chǎn)品而言,主機本身的CPU性能較弱,內(nèi)存資源設計有限,運行文件系統(tǒng)會帶來不小的系統(tǒng)開銷,降低了系統(tǒng)效率。
針對這一痛點,憶芯設計了一種文件系統(tǒng)SSD(FS SSD),通過STAR2000主控強大的計算加速能力,將文件系統(tǒng)下沉到SSD上,主機通過定制化的文件系統(tǒng)NVMe命令集(NVM FS Command Set)與FS SSD進行文件交互,以減輕主機的文件系統(tǒng)處理壓力。
本文將主機+標準SSD的架構(gòu)稱為傳統(tǒng)架構(gòu),主機+FS SSD的開發(fā)架構(gòu)稱為 FS SSD架構(gòu),在后文對兩個架構(gòu)進行對比。
01
傳統(tǒng)架構(gòu)與FS SSD架構(gòu)
1.1.傳統(tǒng)架構(gòu)
以最簡嵌入式主機+SSD架構(gòu)為例,應用程序若要將文件落盤,那么至少需要在應用層借助文件系統(tǒng)實現(xiàn)fopen/fwrite等操作,后由文件系統(tǒng)與NVMe驅(qū)動交互,將應用寫入的文件數(shù)據(jù)按照文件系統(tǒng)的寫單元進行拆分,再以LBA為單位向NVMe驅(qū)動下發(fā)直至數(shù)據(jù)寫完。

寫文件時,文件系統(tǒng)將數(shù)據(jù)拆分,每次以write unit(數(shù)據(jù)塊)大小將數(shù)據(jù)以LBA方式落盤,若寫入數(shù)據(jù)較大,那么write unit拆分次數(shù)也會變多,對應的,文件系統(tǒng)會向NVMe驅(qū)動發(fā)起多筆寫請求。如寫入1Gib,write unit=1Mib,那么此次文件寫操作至少向NVMe驅(qū)動發(fā)起了1024筆寫請求,加上每次操作中的塊設備/OS調(diào)度開銷,性能自然就低了。
1.2.憶芯FS SSD架構(gòu)
憑借STAR2000主控強勁的存內(nèi)計算性能,憶芯獨有的FS SSD技術(shù)(StarFSSSD)將文件系統(tǒng)直接嵌入到SSD固件中,通過自定義FS Command Set,制定了豐富的文件系統(tǒng)接口,包括但不限于fopen/fwrite/fread,實現(xiàn)了與傳統(tǒng)架構(gòu)一樣的文件管理功能。
StarFSSSD框圖如下:

對比與傳統(tǒng)架構(gòu),F(xiàn)S SSD架構(gòu)里,數(shù)據(jù)流被簡化到極致,還是以寫文件為例,程序調(diào)用寫接口,僅需要向NVMe驅(qū)動發(fā)起一筆命令請求,即可完成文件寫入操作。
02
性能對比
為了更直觀的對比兩種架構(gòu),這里提供了一組實現(xiàn)對比。
使用STAR2000E 7.68T作為測試盤,分別用標準盤格式化為文件系統(tǒng)和FS SSD通過FS Command進行相同的文件進行對比測試。
測試機配置信息如下,盤的link狀態(tài)為GEN4x4。


傳統(tǒng)架構(gòu)性能
裸盤格式化為文件系統(tǒng),cluster大小2M, 掛載到系統(tǒng)后單線程1Gib文件寫入測試,整體耗時1.14s。

StarFSSSD架構(gòu)性能
采用StarFSSSD技術(shù)后,使用FS Command寫入1Gib文件,整體耗時401ms。

結(jié)果符合設計預期,StarFSSSD帶來了不小的性能提升。
03
應用場景
3.1.低性能嵌入式產(chǎn)品fs加速
在嵌入式產(chǎn)品系統(tǒng)總體性能不強,又有海量文件存儲需求時,可以選擇使用StarFSSSD來承擔文件系統(tǒng)處理壓力。這樣,在得到文件存儲性能提升的同時,不僅提升了主機應用運行效率,還極大程度的節(jié)省了系統(tǒng)內(nèi)存資源,減少成本開銷。
3.2.簡化定制化產(chǎn)品的開發(fā)難度
對于類似以FPGA為核心的定制化設備,有高速文件存儲功能需求時,使用StarFSSSD,可以節(jié)省文件系統(tǒng)處理模塊,降低FPGA端的開發(fā)難度。
3.3.降低RAID設計復雜度
FS SSD在實現(xiàn)RAID上也有傳統(tǒng)架構(gòu)無法比例的優(yōu)勢。以實現(xiàn)RAID1為例,要將文件落盤,那么至少需要實現(xiàn)文件系統(tǒng)及RAID兩個模塊,才能將文件落盤。

但是對于FS SSD而言,數(shù)據(jù)流變得非常簡單,僅需要通過FS Command,將文件直接落入FS SSD即可。

這樣的數(shù)據(jù)流優(yōu)勢,在其他RAID組合上也同樣生效。