一种用于大数据量的存储系统.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种用于大数据量的存储系统

一种用于大数据量的存储系统   摘要:随着科学技术的发展,嵌入式系统对于大数据量高速率的存储要求越来越高,因此,该文提出一种用于嵌入式系统的高速存储系统模块。它作为一个独立模块存在于整个系统中,为系统中的所有成员提供文件服务,是通过SRIO以及网络进行通信以及数据交互。 中国论文网 /8/view-7221156.htm   关键词:嵌入式;存储系统;高速存储   中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)35-0021-02   随着嵌入式的发展,越来越多的嵌入式平台对于存储性能的要求也越来越高。大数据量的存储,高速率的读写已经成为越来越多嵌入式用户的基本需求了。在嵌入式领域,串行Rapid IO(简称SRIO)作为一种高可靠、高性能、基于包交换的新一代高速互联技术,已经成为嵌入式系统互联的最佳选择之一。在嵌入式领域,很多产品都是在一个相对复杂的环境(震动、噪音等)下工作,老式的机械硬盘无法在这种环境下工作,而由NAND组成的固态盘克服了这些缺点,所以本文介绍的存储系统,就是通过SRIO进行互联,本地采用NAND阵列进行数据存储,以实现高速的读写。而用户在编程的过程中,只需要调用编程API即可,屏蔽了底层的协议以及数据传输。   1 存储系统   存储系统为用户提供远程的文件访问服务,其基本功能有文件的读写、文件的创建以及删除、文件系统的格式化、服务的连接与断开等。存储系统和用户之间采用请求-应答的模式进行通信,用户向存储系统发送请求,而存储系统则执行用户的请求,对本地的文件进行操作并将操作的结果以及数据返还给用户。系统对外有2种通信链路,分别是千兆以太网以及SRIO。以太网在系统中用作协议的传输,SRIO则用作数据传输,通过这种方式将数据与协议进行分离,同时确保SRIO只进行单纯的数据传输从而提高SRIO的传输速率。   存储系统的对外通信功能由以太网和SRIO组成,其本地存储功能是由NAND阵列和文件系统组成。NAND阵列是通过PCIe与系统互连的。NAND阵列作为存储介质的优势在于其容量大、性价比高、没有机械特性(可以在震动环境下工作)。文件系统用于管理NAND阵列,为系统提供文件管理服务。   2 系统实现   存储系统可以分为2各部分来实现,本地文件系统和服务程序。   本地文件系统在实现过程中,主要有2方面的考虑,NAND驱动以及文件系统的类型选择。一个大容量的存储系统,其容量应该在10TB以上,对于这个容量并不是所有的文件系统都可以支持的。本文选择使用Linux下的EXT4文件系统,该文件系统可以支持的容量达到1EB,而文件大小也由16TB。采用该文件系统,在后期可以对系统的容量进行较大的扩充,同时对于大型文件的支持也是相当不错。   拥有了一个文件系统后,则是考虑如何接收用户的请求并将用户的请求转换为本地操作,这就是服务程序。服务程序的功能是将用户的请求转换为本地操作并将操作结果以及数据传输给用户。服务程序需要关注的2个方面,分别是通信和数据传输。用户与存储系统通信时,是请求-应答的模式。这种模式下,存储系统完成本地的初始化后,就开始被动地等待用户请求,一旦接收到用户的请求就开始工作。   图1示了服务程序的基本流程,服务程序从接收到一个连接请求,到服务结束的基本流程。主线程在程序中的角色,是请求的接收者与分发者,从外部接收请求,将请求的内容分发给子线程来处理,主线程不处理请求。而子线程则是请求的执行者,完成用户的请求,当请求执行完,子线程也就结束消亡了。   在服务程序运行的过程中,需要保证各个子线程之间使用的资源是互斥的。以避免出现读写不一致、SRIO发送失败的情况。   下面对单用户以及多用户的情况进行分析。   单用户连接时,系统资源都被该用户所占有,并不会有其他用户或程序来抢占资源,所以单用户情况下系统在逻辑上不会有问题。   当有多个用户连接时,服务程序中将有多个子线程。当他们不操作同一个文件时,这些子线程是独立运行的。如果有2个用户同时打开某个文件时,其中有个用户必然会打开失败。那么该用户只能等待这个文件被关闭后再打开,这时子线程会通知用户文件打开失败。这样子线程对于文件的操作是互斥的。   再考虑2个子线程同时向用户发送数据的情况,这时必然发生资源抢占的问题。因此要为SRIO发送创建一个信号量,所有需要使用SRIO的子线程都必须先获取该信号量,才能使用SRIO来发送数据。这样做,在所有子线程都需要使用SRIO发送数据时,会使得多数子线程进入等待,但SRIO速率高,子线程的等待时间不会过长,应该在可以接受的范围内。所以对于SRIO发送,采用一个信号量来互斥多个子线程的操作。   可以看出,在单用户和多用户的情况下,通过信号量

文档评论(0)

langhua2016 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档