英创信息技术Linux工控主板的高速大容量存储方案简介

英创公司针对目前销售的工控主板,都推出了一些扩展存储的方案,比如所有型号的板卡都可以通过usb外接存储器件(u盘、移动硬盘等),还有大部分的主板都可以支持tf卡,所以也可以根据实际需求使用相应大小的tf卡。同时i.mx6系列的主板esm6800h、esm6800v、esm6802以及即将推出i.mx7系列主板都已经板载了4gb大小的emmc,根据实际测试,板载的emmc存储读盘速度最高可达78mb/s,写盘速度最高为29mb/s,而常用的tf卡(sdhc格式,最大32gb)读盘速度最高约10m/s,写盘速度最高为4.3mb/s,尽管这些存储方式已可以满足大部分常规的应用需求,但对一些对存储容量、存储速度有特殊要求的应用,就显得不够了。
本文将介绍一种基于英创主板的pcie接口的高速大容量存储方案。经过实际的评估和测试,本方案可完全满足客户对于存储大小和速度有特殊要求的应用。目前能够支持pcie接口的主板包括cortex-a9双核的esm6802g(v2.2以上版本)和基于cortex-a7双核的esm7100(基于i.mx7d)。主板如下图所示:
esm7100 esm6802g
本方案使用的是符合nvme规范的m.2接口固态硬盘。m.2接口前身为next generation form factor (ngff),是一种计算机内部扩展卡及相关连接器规范,m.2有两种接口定义:socket 2和socket 3。socket 2支持sata、pci-ex2通道的ssd,socket 3专为高性能存储设计,支持pci-ex4,而主板支持的是socket3类型。nvme(nvm express)为易失性内存主机控制器接口规范,该规范依托于pcie总线,比起sata3的ahci规范性能有着较大的提升,所以使用主板的pcie总线配合socket3类型的m.2接口就能够和符合nvme规范的固态硬盘链接。
为了方便客户评估,esmarc通用评估底板(v9.0及以上版本)上将增加支持nvme协议的m.2接口,用户可以将固态硬盘直接连上方便的进行测试。固态硬盘的尺寸比较常见的有两种,宽度都为统一的22mm,长度一种是42mm规格称为2242,另一种为80mm规格称为2280,在这次的测试中就选择了一款三星2280的固态硬盘进行测试。另外,在选择固态硬盘的时候需要注意,主板支持的m.2的socket3接口类型都是m-key,有一些固态硬盘是b-key类型的接口,这种类型是不能在英创的板卡上使用的,可以参考下图:
m key和b key的区别
esm6802g主板上的pcie总线为1.0版本,理论最高传输速度为250 mb/s,esm7100主板的pcie总线为2.0标准,理论最高速度为500mb/s。本次测试选择esm6802g作为平台,而固态硬盘选用了一款128gb大小的ssd,硬件连接非常简单,如下图:
固定好后即可进行上电,一旦pcie总线识别到m.2存储设备,系统会自动加载驱动模块,如果没有自动加载输入命令modprobe nvme即可。进入系统后可以使用lspci命令查看pcie总线下的设备,这时在终端应该能看到有固态硬盘的设备信息,同时驱动加载后在/dev目录下应该会生成相应的设备节点,因为是使用的nvme驱动,所以设备节点会以nvme开头:
ssd设备信息
如果是新的硬盘没有分区,只会看到nvme0和nvme0n1两个设备节点,可以使用fdisk或者sfdisk命令操作nvme0n1设备节点进行分区操作,具体的分区操作可以查询这两个命令的详细使用方法。如果只有一个分区,就会和上图一样,多出现一个nvme0n1p1节点,多个分区的话就会有多个设备节点,即nvme0n1pn1~nvme0n1pn。对于存储容量较大的设备,建议客户使用ext4格式的文件系统,ext4为日志型的文件系统,在每次文件系统操作的时候都会生成相应的日志,一旦出现实际内容和日志不匹配,就会通过日志内容进行恢复,安全性很高,是目前linux系统中使用最广泛的文件系统。格式化ext4文件系统可以使用mkfs.ext4命令,参数为对应的分区设备节点,比如要把上图中的分区格式化为ext4,输入命令mkfs.ext4 /dev/ nvme0n1p1即可:
制作ext4分区
文件系统格式制作好之后,可以通过mount命令挂载到需要的目录下,这样就能通过访问这个目录来访问主板连接的固态硬盘了,mount会自动识别ext4格式,所以不需要修改文件系统格式,只需要对应的设备节点和挂载目录即可,以这次的测试为例,把固态硬盘挂载到/mnt/nvme这个目录下,使用命令mount /dev/nvme0n1p1 /mnt/nvme,挂载好之后,可以使用df –h命令查看空间大小:
挂载ssd
可以看到硬盘总的大小为118gb,这个时候在/mnt/nvme这个目录中读取或者写入文件,就相当于在固态硬盘中读取和写入文件了。接下来测试esm6802g上连接固态硬盘的读写速度,使用的测试工具为fio,这是一款专业测试固态硬盘的工具,因为fio的使用较为灵活需要设置的参数较多,这里就不一一介绍了,有兴趣的客户可以查询fio命令的详细资料来了解。首先测试读取速度,设置读取块大小为64k,队列深度为32,测试大小为5gb,采用顺序读取的方式,并且绕过系统缓存,测试结果如下:
测试顺序读
可以看到顺序读的速度为160mb/s,这应该是可达到的最高读取速度,接下来测试随机读取的速度,其他的参数都不改变:
测试随机读取
根据上图的结果,随机读取的速度大约为140mb/s,对于随机读写还有个指标iops是比较重要的,这个参数代表了每秒的读取次数,但是这个参数仅仅是用来衡量硬盘本身的性能,所以在这里就不做参考了。然后是测试写盘速度,采用顺序写的方式,其他参数不变:
顺序写盘测试
根据上图结果,顺序写盘的速度大约为165mb/s,这也应该是可达到的最高写盘速度,最后测试随机写的性能,同样其他参数不变:
随机写盘测试
根据上图结果,随机写盘的速度大约为158mb/s。
最后总结一下测试结果,esm6802g外接nvme规范的m.2接口固态硬盘读写速度如下表:
测试平台 读写操作 测试文件 读写方式 测试结果
esm6802g 读盘 5gb 顺序 160mb/s
esm6802g 读盘 5gb 随机 140mb/s
esm6802g 写盘 5gb 顺序 165mb/s
esm6802g 写盘 5gb 随机 158mb/s
esm7100 读盘 5gb 顺序 262mb/s
esm7100 读盘 5gb 随机 262mb/s
esm7100 写盘 5gb 顺序 284mb/s
esm7100 写盘 5gb 随机 307mb/s
这个结果应该能够满足对读写速度要求很高的客户了,并且对于存储空间也没有太大的限制,从128gb到1tb的存储空间都有很多硬盘模块可以选择。在体积上采用nvme规范的硬盘比sata接口的硬盘要小很多,可以通过固定孔方便的固定在底板上,非常适合作为嵌入式设备,目前我们也已经测试过了一些硬盘,下图是测试通过的硬盘,供客户在购买硬盘的时候参考:
有兴趣的客户可以和英创公司的工程师联系,了解更详细的情况。

中芯国际将联合华为共同打造中国芯
Aspen将传统AS/400系统重组为谷歌云平台,实现了牙科管理的现代化
采埃孚斥资120亿欧元战略布局无人驾驶领域
DVD-RW
hadoop是什么_华为大数据平台hadoop你了解多少
英创信息技术Linux工控主板的高速大容量存储方案简介
特朗普:将把“中芯国际”拉入黑名单
HUAWEI DATS 3.0动态自适应扭矩控制系统
AMBA总线结构图,AHB/ASB/APB总线的主要特征
电源高温测试方法是什么?电源模块测试系统功能怎么助力?
4K/8K如何与5G、云实现产业正循环?
Microchip推出基于Arm®的新型PIC®单片机系列产品,以更简便方式添加Bluetooth®低功耗连接功能
基于MSP430的高功率因数电源设计方案
音箱声音发闷的原因是什么
河南首个通过国家验收的智慧城市时空信息云平台项目
配电变压器损耗的产生及降低损耗的方法
550W电源比850W电源更省点吗?
脉冲雷达发射机的电磁兼容性设计方案解析
剖析AV1硬件的采用及未来发展
魅族发布的新款蓝牙耳机怎么样