在产品开发过程中,有大容量、高性能存储需求时,SSD会是第一选择。
同时,为了更方便的管理数据,一般不会裸盘使用,而是使用文件系统(File System)对SSD进行挂载使用。
但是对于一些嵌入式、定制化产品而言,主机本身的CPU性能较弱,内存资源设计有限,运行文件系统会带来不小的系统开销,降低了系统效率。
针对这一痛点,beat365体育官网平台设计了一种文件系统SSD(FS SSD),通过STAR2000主控强大的计算加速能力,将文件系统下沉到SSD上,主机通过定制化的文件系统NVMe命令集(NVM FS Command Set)与FS SSD进行文件交互,以减轻主机的文件系统处理压力。
本文将主机+标准SSD的架构称为传统架构,主机+FS SSD的开发架构称为 FS SSD架构,在后文对两个架构进行对比。
01
传统架构与FS SSD架构
1.1.传统架构
以最简嵌入式主机+SSD架构为例,应用程序若要将文件落盘,那么至少需要在应用层借助文件系统实现fopen/fwrite等操作,后由文件系统与NVMe驱动交互,将应用写入的文件数据按照文件系统的写单元进行拆分,再以LBA为单位向NVMe驱动下发直至数据写完。
写文件时,文件系统将数据拆分,每次以write unit(数据块)大小将数据以LBA方式落盘,若写入数据较大,那么write unit拆分次数也会变多,对应的,文件系统会向NVMe驱动发起多笔写请求。如写入1Gib,write unit=1Mib,那么此次文件写操作至少向NVMe驱动发起了1024笔写请求,加上每次操作中的块设备/OS调度开销,性能自然就低了。
1.2.beat365体育官网平台FS SSD架构
凭借STAR2000主控强劲的存内计算性能,beat365体育官网平台独有的FS SSD技术(StarFSSSD)将文件系统直接嵌入到SSD固件中,通过自定义FS Command Set,制定了丰富的文件系统接口,包括但不限于fopen/fwrite/fread,实现了与传统架构一样的文件管理功能。
StarFSSSD框图如下:
对比与传统架构,FS SSD架构里,数据流被简化到极致,还是以写文件为例,程序调用写接口,仅需要向NVMe驱动发起一笔命令请求,即可完成文件写入操作。
02
性能对比
为了更直观的对比两种架构,这里提供了一组实现对比。
使用STAR2000E 7.68T作为测试盘,分别用标准盘格式化为文件系统和FS SSD通过FS Command进行相同的文件进行对比测试。
测试机配置信息如下,盘的link状态为GEN4x4。
传统架构性能
裸盘格式化为文件系统,cluster大小2M, 挂载到系统后单线程1Gib文件写入测试,整体耗时1.14s。
StarFSSSD架构性能
采用StarFSSSD技术后,使用FS Command写入1Gib文件,整体耗时401ms。
结果符合设计预期,StarFSSSD带来了不小的性能提升。
03
应用场景
3.1.低性能嵌入式产品fs加速
在嵌入式产品系统总体性能不强,又有海量文件存储需求时,可以选择使用StarFSSSD来承担文件系统处理压力。这样,在得到文件存储性能提升的同时,不仅提升了主机应用运行效率,还极大程度的节省了系统内存资源,减少成本开销。
3.2.简化定制化产品的开发难度
对于类似以FPGA为核心的定制化设备,有高速文件存储功能需求时,使用StarFSSSD,可以节省文件系统处理模块,降低FPGA端的开发难度。
3.3.降低RAID设计复杂度
FS SSD在实现RAID上也有传统架构无法比例的优势。以实现RAID1为例,要将文件落盘,那么至少需要实现文件系统及RAID两个模块,才能将文件落盘。
但是对于FS SSD而言,数据流变得非常简单,仅需要通过FS Command,将文件直接落入FS SSD即可。
这样的数据流优势,在其他RAID组合上也同样生效。