首页> 中国专利> 一种按数据属性分类存放的混合存储方法及系统

一种按数据属性分类存放的混合存储方法及系统

摘要

本发明公开了一种按数据属性分类存放的混合存储方法及系统。考虑到元数据在文件系统中所占空间小、访问频繁等特点,构建了一种由硬盘驱动器和固态硬盘组成的混合架构,将文件系统中的数据按数据属性分为数据和元数据,将数据存放在由HDD组成的RAID5中,将元数据存放在由SSD组成的RAID1中,以达到将文件系统中的数据和元数据分类存放到不同介质、不同阵列级别的设备的目的,提升文件系统I/O性能和可靠性。一方面,将文件系统数据和元数据分别存储到多个设备中,能聚合多个设备的I/O带宽,提高访问数据的性能;另一方面,考虑数据和元数据的特点,使用不同的设备存放数据和元数据,提高了系统性能和可靠性,节约了成本。

著录项

  • 公开/公告号CN104536903A

    专利类型发明专利

  • 公开/公告日2015-04-22

    原文格式PDF

  • 申请/专利权人 华中科技大学;

    申请/专利号CN201410825963.5

  • 申请日2014-12-25

  • 分类号G06F12/02(20060101);

  • 代理机构42201 华中科技大学专利中心;

  • 代理人廖盈春

  • 地址 430074 湖北省武汉市洪山区珞喻路1037号

  • 入库时间 2023-12-18 08:20:29

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-02-23

    授权

    授权

  • 2015-05-20

    实质审查的生效 IPC(主分类):G06F12/02 申请日:20141225

    实质审查的生效

  • 2015-04-22

    公开

    公开

说明书

技术领域

本发明属于计算机存储技术领域,更具体地,涉及一种按数据属性分 类存放的混合存储方法及系统,能有效提升存储系统的I/O性能和可靠性。

背景技术

随着信息技术的发展,人们需要处理和访问越来越多的数据,而文件 系统是用户访问存储设备中数据的主要途径,因此文件系统如何高效地组 织和管理海量数据,提高用户访问数据的效率是一个重要的问题。I/O密集 型应用使I/O子系统成为整个计算机系统的瓶颈,文件系统作为底层存储资 源的管理者,应该为上层应用提供灵活有效的服务,以更有效地利用底层 存储资源。此外,文件系统中元数据的管理也成为了很多数据密集型程序 的瓶颈。

文件系统元数据就是数据的数据。在文件系统领域每一个文件对应一 个元数据结构体。这个结构体包括文件的属性,比如文件创建、修改及访 问的时间,文件拥有者,权限,映射信息等。用户在访问数据之前必须首 先获得数据的元数据信息,进一步讲,对文件的读写都需要先访问文件的 元数据,检查是否有访问的权限,并计算获得要访问的文件的位置并获得 具体数据块的位置,然后才能对数据进行相应的操作,所以在文件系统中 超过50%的用户访问请求都涉及元数据的操作,本地文件系统中元数据I/O 密集型访问使I/O子系统成为了整个计算机系统的瓶颈。但是,在本地文件 系统中元数据操作与数据的操作是混合在一起的,由于元数据的负载与数 据的负载差别很大,当数据密集型操作与元数据密集型操作混合在一起并 发地访问本地文件系统的资源时,元数据的负载与数据的负载必然会相互 影响,造成整个存储系统I/O性能的下降,使I/O子系统对于整个计算机系 统的瓶颈作用更加明显。

一旦元数据丢失或发生错误,整个文件系统中的数据将不可访问,考 虑到文件系统中元数据的特点以及元数据对整个文件系统的重要性,亟需 一种有效的解决方法来保证文件系统中元数据的访问效率及访问可靠性。

发明内容

针对现有技术的以上缺陷或改进需求,本发明提供了一种按数据属性 分类存放的混合存储方法及系统,根据文件系统中数据的属性将数据分类 存放到不同介质、不同阵列级别的设备,能有效提高文件系统中元数据的 访问效率及访问可靠性,从而提高存储系统的性能和可靠性。

为实现上述目的,按照本发明的一个方面,提供了一种按数据属性分 类存放的混合存储方法,其特征在于,包括如下步骤:(1)将文件系统的 数据和元数据分别分配在文件系统的每个块组的不同区间;(2)将文件系 统每个块组中不同区间的数据和元数据分别存放到不同的设备中,使用硬 盘驱动器存放数据,使用固态硬盘存放元数据。

优选地,所述步骤(1)进一步包括如下子步骤:(1-1)将元数据分为 固定分配的元数据和动态分配的元数据;其中,将文件系统的每个块组的 超级块到索引节点表之间的数据作为固定分配的元数据,将文件系统中的 目录块作为动态分配的元数据;(1-2)计算文件系统中动态分配的元数据 需要分配的数据块总数SumMetadata;(1-3)在文件系统的每个块组的索 引节点表后预留SumMetadata个数据块;其中,每个块组中预留的最后一 个数据块的逻辑块号记为M;(1-4)将动态分配的元数据分配在文件系统 的每个块组的索引节点表后预留的SumMetadata个数据块中;将数据分配 在文件系统的每个块组的逻辑块号大于M的数据块中。

优选地,所述步骤(2)进一步包括如下子步骤:(2-1)用固态硬盘创 建RAID1,用硬盘驱动器创建RAID5;(2-2)将RAID1和RAID5创建成 一个混合逻辑设备;(2-3)接收用户向混合逻辑设备发送的读写请求,对 请求的逻辑块号进行检查,根据请求的逻辑块号,对请求进行重定向。

优选地,所述步骤(2-3)中,在请求的逻辑块号小于或等于M时,将 请求重定向到RAID1中;在请求的逻辑块号大于M时,将请求重定向到 RAID5中。

按照本发明的另一方面,提供了一种按数据属性分类存放的混合存储 系统,其特征在于,包括:分类聚集模块,用于将文件系统的数据和元数 据分别分配在文件系统的每个块组的不同区间;混合存储地址映射模块, 用于将文件系统每个块组中不同区间的数据和元数据分别存放到不同的设 备中,使用硬盘驱动器存放数据,使用固态硬盘存放元数据。

优选地,所述分类聚集模块包括:第一模块,用于将元数据分为固定 分配的元数据和动态分配的元数据;其中,将文件系统的每个块组的超级 块到索引节点表之间的数据作为固定分配的元数据,将文件系统中的目录 块作为动态分配的元数据;第二模块,用于计算文件系统中动态分配的元 数据需要分配的数据块总数SumMetadata;第三模块,用于在文件系统的每 个块组的索引节点表后预留SumMetadata个数据块;其中,每个块组中预 留的最后一个数据块的逻辑块号记为M;第四模块,用于将动态分配的元 数据分配在文件系统的每个块组的索引节点表后预留的SumMetadata个数 据块中;将数据分配在文件系统的每个块组的逻辑块号大于M的数据块中。

优选地,所述混合存储地址映射模块包括:第五模块,用于用固态硬 盘创建RAID1,用硬盘驱动器创建RAID5;第六模块,用于将RAID1和 RAID5创建成一个混合逻辑设备;第七模块,用于接收用户向混合逻辑设 备发送的读写请求,对请求的逻辑块号进行检查,根据请求的逻辑块号, 对请求进行重定向。

优选地,所述第七模块在请求的逻辑块号小于或等于M时,将请求重 定向到RAID1中;在请求的逻辑块号大于M时,将请求重定向到RAID5 中。

本发明基于一种普遍存在的现象,即在本地文件系统中元数据的操作 与数据的操作是混合在一起的,由于元数据的负载与数据的负载差别很大, 当数据密集型操作与元数据密集型操作混合在一起并发地访问本地文件系 统的资源时,元数据负载与数据的负载必然会相互影响,造成整个系统I/O 性能下降。因此,本发明考虑到元数据在文件系统中所占空间小、访问频 繁等特点,构建了一种由硬盘驱动器(Hard Disk Drive,HDD)和固态硬盘 (Solid State Drive,SSD)组成的混合架构,将文件系统中的数据按数据属 性分为数据(data)和元数据(metadata),将数据存放在HDD中,将元数 据存放在SSD中,以达到将文件系统中的数据和元数据分类存放到不同介 质、不同阵列级别的设备的目的,使得文件系统I/O性能和可靠性都得到提 升。一方面,将文件系统数据和元数据分别存储到多个大容量的存储设备 中,能聚合多个存储设备的I/O带宽,提高访问数据的性能;另一方面,综 合考虑数据和元数据的特点,使用不同的存储设备来存放数据和元数据, 这样不仅提高了系统性能也节约了成本。

附图说明

图1是本发明实施例的按数据属性分类存放的混合存储方法流程图;

图2是本发明实施例的按数据属性分类存放的混合存储方法的原理示 意图;

图3是混合存储地址映射原理示意图;

图4是用户请求的处理流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图 及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体 实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的 本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可 以相互组合。

如图1所示,本发明实施例的按数据属性分类存放的混合存储方法包 括如下步骤:

(1)将文件系统的数据和元数据分别分配在文件系统的每个块组的不 同区间。

进一步包括如下子步骤:

(1-1)将元数据分为固定分配的元数据和动态分配的元数据;其中, 将文件系统的每个块组的超级块到索引节点表之间的数据作为固定分配的 元数据,将文件系统中的目录块作为动态分配的元数据。

(1-2)计算文件系统中动态分配的元数据需要分配的数据块总数 SumMetadata。

(1-3)在文件系统的每个块组的索引节点表后预留SumMetadata个数 据块;其中,每个块组中预留的最后一个数据块的逻辑块号记为M。

(1-4)将动态分配的元数据分配在文件系统的每个块组的索引节点表 后预留的SumMetadata个数据块中;将数据分配在文件系统的每个块组的 逻辑块号大于M的数据块中。

通过修改文件系统的数据块分配策略,使得文件系统中的所有元数据 集中在一起。

(2)将文件系统每个块组中不同区间的数据和元数据分别存放到不同 的设备中,使用硬盘驱动器存放数据,使用固态硬盘存放元数据。

进一步包括如下子步骤:

(2-1)用固态硬盘创建RAID1,用硬盘驱动器创建RAID5。

(2-2)在Linux内核中的Device mapper框架下,将RAID1和RAID5 创建成一个混合逻辑设备。

(2-3)接收用户向混合逻辑设备发送的读写请求,对请求的逻辑块号 进行检查,根据请求的逻辑块号,在Device mapper的映射函数中对请求进 行重定向。具体地,在请求的逻辑块号小于或等于M时,将请求重定向到 RAID1中;在请求的逻辑块号大于M时,将请求重定向到RAID5中。

其中,在将元数据和数据分别存放到不同的设备中时,并不需要进行 数据的迁移,只需在请求下发时将其重定向到不同的设备即可,减少了数 据迁移的代价以及在内存中存放地址映射的映射表的开销。

下面结合图2~4对本发明的按数据属性分类存放的混合存储方法进行 详细说明。

如图2所示,按数据属性分类存放的混合存储方法主要由两部分组成: 文件系统内的数据按属性分类聚集100和混合存储地址映射200。

文件系统包括虚拟文件系统110和具体文件系统120。在文件系统中主 要实现数据按属性分类聚集,对于虚拟文件系统不需要进行修改,针对某 种具体的文件系统,例如Ext2,通过控制数据块分配策略,以块组内预留 的数据块的最后一个逻辑块号M为界限,使得元数据和数据分别集中存放 于每个块组的前后两个部分,实现文件系统内数据按属性分类聚集。通过 这种方式使得混合存储系统进行地址映射时能够通过简单的检查逻辑块号 (LBN)是否小于等于或者大于M就能区分数据请求和元数据请求,从而 实现不同的地址映射。

混合存储地址映射200中,逻辑块设备的创建部分210的逻辑块设备 主要是在Device mapper下创建的混合逻辑设备,其中包括一个映射算法用 来检查上层请求的逻辑块号与M的大小关系,以判断上层请求是元数据请 求还是数据请求,然后根据判断结果来选择重定向请求到SSD组成的 RAID1 230或者HDD组成的RAID5 220中。如此,存储系统通过简单的判 断就能够将元数据和数据定位到不同的存储介质,不同级别的阵列上,这 样不仅提高了元数据的访问效率同时使用RAID1来存放元数据也提高了元 数据的可靠性。

图3为混合存储地址映射的原理示意图。对于用户来说,只能对由 RAID1 250和RAID5 240组成的逻辑块设备260进行操作,能够对该逻辑 块设备进行分区和创建文件系统。该逻辑块设备的物理地址与RAID5一一 对应,因此RAID5存放了其中所有的数据(data)请求,而RAID1只是用 于存放通过映射算法重定向之后的元数据请求(metadata),这样刚好能满 足SSD相对于HDD容量小的特征。

图4是用户请求的处理流程图。首先,对于用户发出到逻辑块设备260 的所有读写请求,该系统接收到之后,通过已经修改了数据块分配策略的 文件系统120将数据按属性分类聚集,然后下发请求到混合逻辑设备实现 地址映射。因为通过修改文件系统的数据块分配策略已经在每个块组内以 M为界限将元数据和数据分别集中在每个块组的前后两个部分,所以对于 到达混合逻辑设备的所有请求,只需要通过映射算法对请求的LBN进行检 查就能够判断该请求是元数据请求还是数据请求,从而将请求重定向到不 同的存储设备RAID1 230或RAID5 220中。

综合上述的所有过程,使得混合存储系统实现了利用数据的属性将元 数据和数据分开存放以提高整个存储系统的性能以及保证元数据存放的可 靠性。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等 同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号