[发明专利]一种Linux文件系统的数据读写加速方法无效
申请号: | 201210018942.3 | 申请日: | 2012-01-20 |
公开(公告)号: | CN102609486A | 公开(公告)日: | 2012-07-25 |
发明(设计)人: | 张庆敏;张衡;胡刚;谢海威 | 申请(专利权)人: | 无锡众志和达存储技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F3/06 |
代理公司: | 江苏英特东华律师事务所 32229 | 代理人: | 邵鋆 |
地址: | 214000 江苏省无锡市新区*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 linux 文件系统 数据 读写 加速 方法 | ||
技术领域
本发明涉及计算机技术,尤其涉及Linux系统的数据读写(I/O)方法。
背景技术
传统的 Linux 文件系统的标准 I/O 接口是基于数据拷贝操作的,即数据读写(I/O)操作会导致数据在操作系统内核地址空间的缓冲区和应用程序用户层地址空间定义的缓冲区之间进行拷贝(copy)。在这种机制中,磁盘驱动采用DMA 方式可以将数据直接从磁盘读到页缓存中,或者将数据从页缓存直接写回到磁盘上,而不能直接在应用程序地址空间和磁盘之间进行数据传输,这样的话,数据在传输过程中需要在应用程序地址空间和页缓存之间进行多次数据拷贝操作。这样做最大的好处是可以减少磁盘 I/O 的操作,因为如果所请求的数据已经存放在操作系统的高速缓冲存储器中,那么就不需要再进行实际的物理磁盘 I/O 操作。但是数据传输过程中的数据拷贝操作却导致了极大的 CPU 开销,限制了系统进行数据传输的性能。
对于这个问题,Linux工作者为应用程序提供标准I/O的接口引入了直接I/O的功能。凡是通过直接 I/O 方式进行数据传输,数据均直接在用户地址空间的缓冲区和磁盘之间直接进行传输,完全不需要页缓存的支持。这样就降低了应用程序做磁盘I/O时CPU开销。这种技术在硬件配置性能较高的服务器或个人计算机中能带来显著的效果。但在CPU配置较低的嵌入式系统中,无法给系统的性能设计带来帮助。而嵌入式系统却广泛使用Linux系统。
嵌入式系统的I/O受限于硬件的配置,又要达到很高的性能,只能把I/O处理模块以内核模块的方式实现,这种方式可以避免应用程序调用系统调用时,操作系统在用户层和内核层做频繁的切换。所以尽管用户层直接I/O的接口虽然已经存在,但在嵌入式的系统中,往往无法被利用。另外例如Linux上NFS server的I/O,也是在内核里实现,就无法使用标准的直接I/O接口。嵌入式系统如果需要提供网络文件系统(NFS)功能,性能就会很差。
现有的嵌入式系统中,由于I/O处理模块以内核模块的形式实现,所以尽管在用户层中存在带直接I/O功能的标准I/O接口,但无法利用直接I/O功能。导致嵌入式系统的文件系统效率比较低。尤其是遇到大量连续数据的传输,尤其困难。
发明内容
为了克服背景技术所述的问题,本发明提出了一种Linux文件系统数据读写加速方法。
本发明运行于一个嵌入式数据存储设备,所述数据存储设备是基于现场可编程门阵列(FPGA)的Linux数据存储装置,含有虚拟存储模块、内核I/O模块和文件系统构成的小型操作系统,连接SCSI/FC接口和网络接口,虚拟存储模块提供虚拟磁带机、虚拟磁盘服务,存储介质是磁盘。本发明的数据读写方法运行于文件系统中,具体是:
1)在Linux 文件系统标准接口增加一个快速标识指针,作为进行快速模式的判断标识;需要做I/O的内核模块通过标准的filp_open()接口,传入快速标识指针和传统的文件标识O_DIRECT参数,打开文件。以页面(page)长度为单位,分配好缓冲区;
2)当内核模块通过filp_write()接口传入缓冲区的指针,开始写入数据时,Linux文件系统判断文件是否以快速标识指针方式打开, 如果是,文件系统先锁定内核模块缓冲区,然后使用缓冲区的地址,通过磁盘的驱动写入到磁盘;如果不是,文件系统的写流程将传入的数据拷贝(copy)到文件系统的page cache中;
3)写入以快速标识指针的方式完成后,缓冲区被文件系统所释放。
本发明的有益效果是:内核模块通过此方法写入文件,就不必通过文件系统page cache copy, 降低了CPU的开销。这样在内核态实现的各种软件程序都能够在做I/O的时候,显著的降低CPU开销,提高整个系统的性能。
附图说明
图1,本发明的实施例硬件组成结构图;
图2,本发明的流程图;
图3,本发明的数据存储装置的结构框图;
图4,现有技术的一般的数据写入系统的步骤示意图;
图5,本发明的技术的数据写入步骤示意图。
具体实施方式
本实施例是一个地震数据采集存储系统,地震数据是连续不断的采集的地震波信息,具有连续性、大容量的特点,根据现有的地震监测组织的数据格式,往往一组数据的容量要有几百兆,而且传输存储过程中不能有缺损,否则会影响监测的准确性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡众志和达存储技术有限公司,未经无锡众志和达存储技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210018942.3/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置