一种模拟云存储设备的虚拟文件系统设计方法技术方案

技术编号:12666768 阅读:75 留言:0更新日期:2016-01-07 04:46
本发明专利技术设计了一种模拟云存储设备的虚拟文件系统的实现方法,以Linux的ext3文件系统为基础,扩展其数据存储的物理结构,根据文件挂载时传入的参数,计算相关的配置阈值,使其在开始写入的时候在配置阈值范围内与普通的文件系统一样,当超过配置阀值的时候只写入元数据信息,并不写入数据信息,从而利用有限的物理设备模拟出庞大的存储容量。

【技术实现步骤摘要】

本专利技术涉及计算机集群NAS存储领域,特别涉及一种利用有限存储设备模拟大规模云存储集群的设备的方法。
技术介绍
随着互联网时代的到来,全世界各行各业每天都产生了大量的数据,包括个人的数据也产生了爆炸性的增长,为了收集管理这些数据,一些大的互联网企业或者其他产生大量数据的公司都建立了公共的或者私有的数据中心,传统的存储模式已经不能满足数据爆炸性的增长,并且每个企业建立一个数据中心将产生极大的资源浪费,云存储技术在这个背景下应运而生。云存储是在云计算概念上延伸和发展出来的一个新的概念,是一种新兴的网络存储技术,是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。目前比较主流的存储供应商都在该领域投入了巨大的人力物力。在研发的过程中不可避免的需要存储集群环境去进行测试和调试,但是要想用真实的物理设备区搭建集群,将是一笔非常大的开销,而且如果集群非常庞大,整个调试开发周期将很长。
技术实现思路
为了解决上述技术问题,本专利技术在linux ext3文件系统的基础上进行改造升级,将其在块设备上的物理存储结构重新规划,使其在开始写入的时候在配置阈值范围内与普通的文件系统一样,当超过配置阀值的时候只写入元数据信息,并不写入数据信息。由于一个Inode数据所占空间为256字节,这样就可以再很小的设备内部模拟出超大的设备。为了解决上述技术问题,本专利技术提供了一种模拟云存储设备的虚拟文件系统实现方法,包括:扩展数据存储的物理结构;根据文件挂载时传入的参数,计算扩展区域的大小以及配置阈值;比较所述文件与配置阈值的大小,根据比较结果只写入元数据而不存储实际数据。进一步地,所述扩展为以Iinux的ext3文件系统为基础,在块组内添加扩展索引节点位图EIB和扩展索引节点表EIT。进一步地,所述EIB和EIT分别位于索引节点位图和索引节点表之后。进一步地,所述参数为要模拟的文件数量上限N或者实际物理块设备的百分比P。进一步地,如果文件系统选项内传入的参数为要模拟的文件数量上限N,则通过以下公式计算EIB和EIT的大小:size (EIT) = N*size(inode)/size(block);size (EIB) = N/8/size (block);如果文件系统选项内传入的参数为实际物理块设备百分比P,则通过以下公式计算EIB和EIT的大小:Extent_itsize = size (普通块)*P;size (EIT) = Extent_itsize/size(block);size (EIB) = Extent_itsize/size(inode)/8/size(block)。进一步地,所述配置阈值为size (普通块)-size (EIB) -size (EIT)。进一步地,当文件超过配置阈值大小时,写入的文件的inode写入扩展索引节点表,只记载元数据而不存储实际数据。进一步地,在inode中写入自定义属性来确定是否是虚拟文件。【附图说明】附图用来提供对本专利技术技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本专利技术的技术方案,并不构成对本专利技术技术方案的限制。图1示出了根据本专利技术的一实施例的模拟云存储设备的虚拟文件系统块设备物理结构布局。【具体实施方式】为使本专利技术的目的、技术方案和优点更加清楚明白,下文中将结合附图对本专利技术的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。本专利技术设计了一种模拟云存储设备的虚拟文件系统的一种实现方法,以Linux的ext3文件系统为基础,扩展其数据存储的物理结构,根据文件挂载时传入的参数,计算相关的配置阈值,使其在开始写入的时候在配置阈值范围内与普通的文件系统一样,当超过配置阀值的时候只写入元数据信息,并不写入数据信息,从而利用有限的物理设备模拟出庞大的存储容量。ext3文件系统将磁盘分区划分成多个块组(Block group),若干个相邻的块(Block)组成一个块组,每个块组大小相同。从结构上看,块组由超级块(Super block)、组描述符表(Group descriptor table)、块位图(Block bitmap)、索引节点位图(Inodebitmap)、索引节点表(Inode table)、多个数据块(Data blocks)构成。参考附图1,本专利技术以Linux的ext3文件系统为基础,对其在磁盘上的存储结构进行改造,在块组内添加扩展索引节点位图EIB(extent inode bitmap)和扩展索引节点表EIT (extent inode table),并且EIB和EIT分别位于索引节点位图和索引节点表之后。在创建文件系统的时候文件系统选项内传入要模拟的文件数量上限N(N存在上限)或者实际物理块设备的百分比P (0〈P< I),之后根据传入的不同参数计算EIB的大小和EIT的大小,之后按照计算结果初始化元数据区域。扩展区域大小计算方式如下:如果文件系统选项内传入的参数为要模拟的文件数量上限N,则通过以下公式计算EIB和EIT的大小:size (EIT) = N*size(inode)/size(block);size (EIB) = N/8/size (block)。如果文件系统选项内传入的参数为实际物理块设备百分比P,则通过以下公式计算EIB和EIT的大小:Extent_itsize = size (普通块)*P ;size (EIT) = Extent_itsize/size(block);size (EIB) = Extent_itsize/size(inode)/8/size(block)。根据上述所计算的扩展区域的大小,计算配置阈值,所述配置阈值为size (普通块)-size (EIB)-size (EIT)。在挂载文件系统下写数据,当文件超过配置阈值大小时,之后写入的文件的inode全部写入扩展索引节点表,所有的文件只记载元数据而不存储实际数据,并且在inode中写入自定义属性来确定是否是虚拟文件。否则,按常规方式写数据。通过以上方法可以将小容量的设备模拟出超大规模的集群,可达PB级,来测试云存储系统的功能完备性和系统稳定性。但是该文件系统无法测试数据读写性能,但是可以用于文件系统元数据读写的评估测试。在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由一装置的处理器执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是R0M、随机存取存储器(RAM)、CD-R0M、磁带、软盘和光数据存储设备等。虽然本专利技术所揭露的实施方式如上,但所述的内容仅为便于理解本专利技术而采用的实施方式,并非用以限定本专利技术。任何本专利技术所属领域内的技术人员,在不脱离本专利技术所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本专利技术的专利保护范围,仍须以所附的权利要求书所界定的范围为准。【主权项】1.一种模拟云存储设备的虚拟文件系统的方法,其特征在于,包括: 扩展数据存储的物理结构; 根据文件挂载时传入本文档来自技高网...

【技术保护点】
一种模拟云存储设备的虚拟文件系统的方法,其特征在于,包括:扩展数据存储的物理结构;根据文件挂载时传入的参数,计算扩展区域的大小以及配置阈值;比较所述文件与配置阈值的大小,根据比较结果只写入元数据而不存储实际数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:李杰
申请(专利权)人:浪潮北京电子信息产业有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1