基于虚拟化的文件系统容量的测试系统和方法转让专利

申请号 : CN201010620506.4

文献号 : CN102063326B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱立谷阳小珊

申请人 : 中国传媒大学

摘要 :

本发明涉及一种基于虚拟化的文件系统容量的测试系统和方法,在被测试的所述文件系统之下创建出用于所述文件系统容量测试的虚拟存储模块,容量测试管理模块管理所述文件系统对所述虚拟存储模块进行包括创建、读写和删除的文件操作;用于虚拟存储所述容量测试管理模块写入的文件的虚拟存储模块;用于实际存储所述容量测试管理模块写入所述虚拟存储模块的文件的物理存储模块;映射管理模块,在操作系统块设备驱动层中动态管理所述虚拟存储模块到所述物理存储模块的映射,将对所述虚拟存储模块的文件操作直接映射成对所述物理存储模块的存储单元的文件操作。进而保证虚拟出的虚拟存储模块可进行正常读写,实现对文件系统容量的有效测试。

权利要求 :

1.一种基于虚拟化的文件系统容量的测试系统,其特征在于,包括:

容量测试管理模块,在被测试的所述文件系统之下创建出用于所述文件系统容量测试的虚拟存储模块,并管理所述文件系统在所述虚拟存储模块上进行的包括创建、读写和删除的文件操作;

虚拟存储模块,具有所述文件系统所能支持的最大容量,用于虚拟存储所述容量测试管理模块写入的文件;

物理存储模块,用于实际存储所述容量测试管理模块写入所述虚拟存储模块的文件;

映射管理模块,在操作系统块设备驱动层中动态管理所述虚拟存储模块到所述物理存储模块的映射,将对所述虚拟存储模块的文件操作直接映射成对所述物理存储模块的文件操作;限制所有写入所述虚拟存储模块的文件容量小于或者等于所述物理存储模块的容量。

2.根据权利要求1所述的测试系统,其特征在于:所述映射管理模块通过一个映射表实现所述动态管理;所述映射表存储有所述虚拟存储模块的存储单元与所述物理存储模块的存储单元的映射关系,所述映射管理模块通过动态维护所述映射表实现被映射物理空间的查询、分配和回收。

3.根据权利要求2所述的测试系统,其特征在于:所述虚拟存储模块的存储单元被映射到所述物理存储模块的存储单元,映射单元的大小由所述容量测试管理模块根据测试需要调整。

4.根据权利要求3所述的测试系统,其特征在于:所述映射管理模块通过增加或者删除表项,动态分配或者动态回收所述物理存储单元。

5.一种基于虚拟化的文件系统容量的测试方法,使用权利要求1-4任一所述的系统,其特征在于:包括如下步骤,①创建虚拟存储模块,其具有所述文件系统所能支持的最大容量,用于虚拟存储所述文件系统创建的文件;

②设置物理存储模块,其具有预定容量,用于实际存储所述文件系统创建的文件;

③容量测试管理模块管理所述文件系统在所述虚拟存储模块上进行的包括创建、读写和删除的文件操作,所述容量测试管理模块指定多个所述文件至少要分别占用虚拟存储模块的存储空间的开始处和结束处;

④通过动态映射,将对所述虚拟存储模块进行的文件操作直接映射为对所述物理存储模块的文件操作;

⑤文件操作成功,则判定测试的文件系统能支持标称的所述最大容量。

6.根据权利要求5所述的测试方法,其特征在于:所述映射管理模块通过一个映射表实现所述动态管理;所述映射表存储有所述虚拟存储模块的存储单元与所述物理存储模块的存储单元的映射关系,所述映射管理模块通过动态维护所述映射表实现映射目标空间的查询、分配和回收。

7.根据权利要求6所述的测试方法,其特征在于:所述虚拟存储模块的存储单元被映射到所述物理存储模块存储单元,映射单元的大小由所述容量测试管理模块根据测试需要调整。

8.根据权利要求7所述的测试方法,其特征在于:所述映射管理模块通过增加或者删除表项,动态分配或者动态回收所述物理存储单元。

9.根据权利要求8所述的测试方法,其特征在于:在包括创建和写入多个文件的操作过程中,所述容量测试管理模块指定多个所述文件至少要分别占用虚拟存储模块的存储空间的开始处、中间处以及结束处。

说明书 :

基于虚拟化的文件系统容量的测试系统和方法

技术领域

[0001] 本发明涉及到一种测试系统和方法,具体是一种基于虚拟化的文件系统容量的测试系统和方法。

背景技术

[0002] 为了存储日益增长的海量信息数据,国内外的研究机构提出了多种单机的或者分布式的文件系统,例如ext3(全称为Third extended file system)、Lustre(由Linux和Clusters演化而来,是为解决海量存储问题而设计的全新文件系统)等。这些文件系统所能支持的最大容量各不相同,例如ext3最大支持8TB(全称为TeraByte,太字节),而Lustre理论上至少支持64PB(全称PetaByte)空间。虽然目前磁盘阵列的发展早就超过了TB级别的限制,但一般情况下要达到PB级别尚有技术以及成本等各种因素的制约。因此当测试文件系统支持的容量时,需要有一种切实可行的测试方法,该方法的关键是要能够提供测试所需的大容量存储空间。
[0003] 根据现代操作系统架构,在操作系统底层进行虚拟化,构建虚拟存储设备如硬盘等是可能的。目前已经有一些类似的存储设备虚拟化工具,如DiskSim和Device mapper等。DiskSim包含丰富的组件,能够仿真存储子系统的各种行为。但是由DiskSim虚拟出来的存储设备不能实际的存储和读取数据,无法运用在文件系统容量测试上。另外一个工具Device mapper理论上能够虚拟出任意容量的存储设备,但是虚拟存储模块只能够部分正常的读写。这是由于Device mapper在设计上只是简单地、一对一地将虚拟存储模块的部分block映射到了实际存储设备,导致虚拟存储模块中只有被映射了的block(物理块,等于512B)可以正常读写,因此实际的存储设备的容量和待测文件系统的容量必须完全一致,而要提供如此大容量的存储设备,技术上和成本上都不太现实。。因此,上述工具和方法都无法满足文件系统容量测试的要求。

发明内容

[0004] 为此,本发明所要解决的是现有存储设备虚拟化工具无法虚拟出能进行正常读写的存储设备的技术问题,提供一种可进行正常读写数据的基于虚拟化的文件系统容量的测试系统和方法。
[0005] 为解决上述技术问题,本发明采用的技术方案如下:
[0006] 一种基于虚拟化的文件系统容量的测试系统,包括:
[0007] 容量测试管理模块,在被测试的所述文件系统之下创建出用于所述文件系统容量测试的虚拟存储模块,并管理所述文件系统在所述虚拟存储模块上进行包括创建、读写和删除的文件操作;
[0008] 虚拟存储模块,具有所述文件系统所能支持的最大容量,用于虚拟存储所述容量测试管理模块写入的文件;
[0009] 物理存储模块,用于实际存储所述容量测试管理模块写入所述虚拟存储模块的文件;
[0010] 映射管理模块,在操作系统块设备驱动层中动态管理所述虚拟存储模块到所述物理存储模块的映射,将对所述虚拟存储模块的文件操作直接映射成对所述物理存储模块的存储单元的文件操作;限制所有写入所述虚拟存储模块的文件容量小于或者等于所述物理存储模块的容量。
[0011] 所述映射管理模块通过一个映射表实现所述动态管理;所述映射表存储有所述虚拟存储模块的存储单元与所述物理存储模块的存储单元的映射关系,所述映射管理模块通过动态维护所述映射表实现映射目标空间的查询、分配和回收。
[0012] 所述虚拟存储模块的存储单元被映射到所述物理存储模块的存储单元,映射块的大小由所述容量测试管理模块根据测试需要调整。
[0013] 所述映射管理模块通过增加或者删除表项,动态分配或者动态回收所述物理存储单元。
[0014] 同时,提供一种测试虚拟化的文件系统容量的方法,包括如下步骤,[0015] ①创建虚拟存储模块,其具有所述文件系统所能支持的最大容量,用于虚拟存储所述文件系统创建的文件;
[0016] ②设置物理存储模块,其具有预定容量,用于实际存储所述文件系统创建的文件;
[0017] ③容量测试管理模块管理所述文件系统对所述虚拟存储模块进行包括创建、读写和删除的文件操作;
[0018] ④通过动态映射,将对所述虚拟存储模块进行的文件操作直接映射为对所述物理存储模块的文件操作。
[0019] 所述映射管理模块通过一个映射表实现所述动态管理;所述映射表存储有所述虚拟存储模块的存储单元与所述物理存储模块的存储单元的映射关系,所述映射管理模块通过动态维护所述映射表实现映射目标空间的查询、分配和回收。
[0020] 所述虚拟存储模块的存储单元被映射到所述物理存储模块的存储单元,映射单元的大小由所述容量测试管理模块根据测试需要调整。
[0021] 所述映射管理模块通过增加或者删除表项,动态分配或者动态回收所述物理存储单元。
[0022] 在创建和读写文件中,所述容量测试管理模块指定多个所述文件至少要分别占用虚拟存储模块的存储空间的开始处、中间处以及结束处。
[0023] 本发明的上述技术方案相比现有技术具有以下优点:
[0024] 本发明的基于虚拟化的文件系统容量的测试系统,包括:容量测试管理模块,在被测试的所述文件系统之下创建出用于所述文件系统容量测试的虚拟存储模块,管理所述文件系统对所述虚拟存储模块进行包括创建、读写和删除的文件操作;虚拟存储模块,具有所述文件系统所能支持的最大容量,用于虚拟存储所述容量测试管理模块写入的文件;物理存储模块,用于实际存储所述容量测试管理模块写入所述虚拟存储模块的文件;映射管理模块,在操作系统块设备驱动层中动态管理所述虚拟存储模块到所述物理存储模块的映射,将对所述虚拟存储模块的文件操作直接映射成对所述物理存储模块的存储单元的文件操作;限制所有写入所述虚拟存储模块的文件容量小于或者等于所述物理存储模块的容量;进而通过动态智能的按需映射方式实现虚拟存储模块到物理存储模块的映射,保证虚拟出的虚拟存储模块可进行正常读写,便于测试大容量的文件系统的容量。

附图说明

[0025] 为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中
[0026] 图1为本发明一个实施例中虚拟存储模块到物理存储模块在操作系统中的映射层次图;
[0027] 图2为图1所示实施例中分布式文件系统Lustre的容量测试环境配置图;
[0028] 图3为图2中所示Lustre的容量测试过程中数据流向示意图;
[0029] 图4为本发明中动态智能的按需映射关系示意图;
[0030] 图5为图4中所示映射关系对应的映射表。

具体实施方式

[0031] 作为本发明一个实施例中虚拟存储模块到物理存储模块在操作系统中的映射层次结构如图1所示,文件系统容量测试管理模块在用户空间运行,能够在指定设备上按照POSIX(Portable Operating System Interface of Unix的缩写,表示可移植操作系统接口)文件系统访问接口进行文件创建、读写以及删除等操作。内核空间中由虚拟文件系统VFS(全称为Virtual FileSystem)提供POSIX标准文件访问接口函数。VFS之下是待测试文件系统如日志式文件系统ext3、分布式文件系统Lustre等。在待测文件系统之下,是块设备驱动层,虚拟存储模块工作在该层,并由该层提供虚拟存储模块到实际物理存储模块的动态智能映射。块设备驱动之下是物理存储模块驱动以及物理存储模块。
[0032] 块设备驱动层中,从虚拟存储模块到实际物理存储模块的映射采取动态智能的按需映射(Intelligent on-demand dynamic mapping)方式。通过这种方式虚拟出来的所述虚拟存储模块在一定程度上能够正常的读写。动态智能的按需映射方式主要是指操作系统动态维护一个映射表,该表中记录了虚拟存储模块的存储单元和物理存储模块的存储单元之间的具体映射关系。并且,只有当用户申请数据存储空间时才进行被映射的物理存储空间分配,当用户删除文件时,回收物理存储空间。通过查询,增加和删除映射表项,在测试管理模块通过文件系统读写虚拟存储模块时,将读写命令和数据流等重定向到物理存储模块。采用上述技术实现的虚拟存储模块是可读可写的,保证了文件系统容量测试的需求,并且采用该映射方法,理论上可以虚拟出任意容量的虚拟存储设备用于文件系统容量测试。
[0033] 文件系统容量测试管理模块在虚拟存储模块上进行创建、读写以及删除等操作,由于映射表的作用,实际上数据存储在物理存储模块上。由于文件系统在具体测试中只需要少量的存物理储空间进行读写测试,因此虚拟存储模块可以有足够大的存储空间,而实际存储数据的物理存储模块只需要满足文件系统格式化,以及创建、写入等操作所需的少量空间。
[0034] 因此,采用上述技术,在实际的文件系统容量测试中,理论上可以虚拟出任意容量的存储空间,并且虚拟存储模块的容量以及映射块大小均为可调参数,极大地增强了测试的灵活性。虽然物理存储模块容量较小,但是由于采取动态智能的按需映射方式,测试程序每次向虚拟存储模块写入的数据总量只要不超过物理存储模块的可用容量,虚拟存储模块就像普通的物理存储模块一样正常可读可写。由于上述映射过程全部发生在操作系统内核驱动中,在文件系统看来,直接用于存储数据的是大容量的虚拟存储模块,并且是正常可读可写的,这样就达到了容量测试的目的。
[0035] Lustre分布式文件系统是目前广泛应用的一种分布式开源文件系统,理论上支持至少64PB的存储空间。图2为一个Lustre分布式文件系统的典型测试环境,该测试环境由客户端(clientl-clientx)、元数据服务器(MDS)、对象存储服务器(OSD)以及连接上述设备的以太网(GE/10GE)或者光纤网络(FC)组成。client上运行文件系统容量测试管理模块,相当于图1中在用户空间访问Lustre文件系统以及管理虚拟存储设备。MDS提供元数据服务,OSD提供物理存储设备。在对象存储服务器OSD上,通过图1所示的虚拟化方法,虚拟出足够容量的虚拟存储设备,并且采用动态智能的按需映射,将文件系统容量测试管理模块对虚拟存储模块的读写映射到实际的物理存储模块。
[0036] 在创建、写入和格式化等需要分配存储空间的多个文件操作中,所述容量测试管理模块指定多个所述文件要分别占用包括虚拟存储模块的存储空间的开始处、中间处以及结束处等具有代表性的容量位置,至少要占用所述虚拟存储模块的存储空间的开始处和结束处。通过上述特定存储空间的选择,保证文件系统容量测试时对容量空间的有效覆盖,进而保证测试结果的正确、可靠。如多个所述文件操作成功,则判定被测试的文件系统能支持标称的最大容量。
[0037] 图3表示在实际的文件系统容量测试中数据的流向。文件系统容量测试管理模块在用户空间进行POSIX文件操作(如create、read和write等)。上述命令以及数据的直接操作对象是虚拟存储模块,但是在底层经过单元映射表转换之后,实际的操作对象是物理存储模块。通过映射表将读写命令和数据流等重定向到物理存储模块,这样创建出的虚拟存储模块是可读可写的,保证了文件系统容量测试的需求。
[0038] 图4和图5表示从虚拟存储模块到物理存储模块的动态智能的按需映射方式示意图。动态智能的按需映射体现在如下几个方面:首先,映射的基本单元可以是存储模块的物理块,也可以是根据测试需求而定义的一个映射单元,比如容量为4k、1M、2M的映射单元等。其次,只有当用户申请数据存储空间时才进行被映射的物理存储空间分配,当用户删除文件时,回收物理存储空间。第三,被映射的虚拟存储模块的存储单元和作为映射目标的物理存储模块的存储单元记录在动态的映射表中,上述分配和回收映射空间的过程就简化为映射表表项的增加和删除过程。通过如图4所示的动态智能的按需映射方式,保证了有限的物理容量能够被充分利用,并且理论上能够虚拟出任意容量的虚拟存储模块。这种情况下,所述物理存储模块只需要具有测试所需的容量即可,一般所述物理存储模块的容量不超过文件系统所能支持的最大容量的1%。
[0039] 采用上述测试方法,可以虚拟出足够容量的虚拟存储设备用于Lustre文件系统容量测试。由于在具体的文件系统容量测试中,不可能也没必要做到所有空间全部覆盖的测试,而只需要少量的存储空间进行读写测试,因此测试程序向虚拟存储模块写入的数据总量只要不超过被映射物理存储模块的可用容量,虚拟存储模块就像物理存储模块一样正常可读可写。由于上述映射过程全部发生在操作系统块设备驱动层中,在Lustre文件系统看来,直接用于存储数据的是大容量的虚拟存储模块,并且是正常可读可写的,这样就达到了Lustre文件系统容量测试的目的。
[0040] 显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。