CN107037975B - 卷的空间分配方法和装置 - Google Patents

卷的空间分配方法和装置 Download PDF

Info

Publication number
CN107037975B
CN107037975B CN201510418973.1A CN201510418973A CN107037975B CN 107037975 B CN107037975 B CN 107037975B CN 201510418973 A CN201510418973 A CN 201510418973A CN 107037975 B CN107037975 B CN 107037975B
Authority
CN
China
Prior art keywords
space
volume
accumulation layer
size
pool
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510418973.1A
Other languages
English (en)
Other versions
CN107037975A (zh
Inventor
刘卯银
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201510418973.1A priority Critical patent/CN107037975B/zh
Priority to PCT/CN2016/082351 priority patent/WO2017008571A1/zh
Publication of CN107037975A publication Critical patent/CN107037975A/zh
Application granted granted Critical
Publication of CN107037975B publication Critical patent/CN107037975B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种卷的空间分配方法,包括步骤:获取待创建的卷的空间大小;根据所述卷的空间大小和预设的分配策略,计算所述卷占用资源池中每个存储层的空间大小;根据计算得到的所述卷占用每个存储层的空间大小,在每个存储层中分配对应的空间给所述卷。本发明还公开了一种卷的空间分配装置。本发明实现了提高顺序访问I/O的性能,同时兼顾热点迁移的效果。

Description

卷的空间分配方法和装置
技术领域
本发明涉及存储领域,尤其涉及一种卷的空间分配方法和装置。
背景技术
传统的存储系统是以物理磁盘作为RAID(Redundant Arrays of IndependentDisks,磁盘阵列)成员盘,一般组成RAID的成员盘数是个位数级别。虚拟化资源池pool的存储系统使用虚拟磁盘,即使用卷作为RAID的成员盘,通过将虚拟磁盘划分成小块进行地址映射,让更多的小块虚拟磁盘和小块虚拟磁盘之间建立RAID关系网。虚拟化pool存储系统一般有数十到上百个成员盘。当存储系统有磁盘发生故障的时候。传统的RAID存储系统的磁盘重建性能会受限于热备磁盘的性能。而虚拟化pool存储系统在磁盘发生故障时,虚拟化pool的存储系统的恢复速度远大于传统RAID存储系统。
相对于传统RAID存储系统,虚拟化pool存储系统因为将虚拟磁盘划分成了小块,使原本连续的地址访问有可能会变成随机访问。然而当发生故障时,需要重建的I/O(input/output,输入输出端口)就是典型的顺序I/O,当所述磁盘块划分的较小时,重建I/O的连续性降低,使得重建I/O的性能降低。现有的解决上述问题的方法为增大对所述磁盘块的划分,增大所述磁盘块的大小可以减少顺序I/O变成随机I/O的概率,但是增大磁盘块会带来热点迁移的问题,热点迁移的磁盘块越大,对热点的把控就会越不准确,使得整体的热点迁移效果变差。
发明内容
本发明的主要目的在于提供一种卷的空间分配方法及装置,解决顺序访问I/O性能差,且不能兼顾热点迁移效果的技术问题。
为实现上述目的,本发明提供的一种卷的空间分配方法,包括步骤:
获取待创建的卷的空间大小;
根据所述卷的空间大小和预设的分配策略,计算所述卷占用资源池中每个存储层的空间大小;
根据计算得到的所述卷占用每个存储层的空间大小,在每个存储层中分配对应的空间给所述卷。
优选地,所述根据计算得到的所述卷占用每个存储层的空间大小,在每个存储层中分配对应的空间给所述卷的步骤包括:
将所述卷划分成分配粒度AS的大小;
根据所述AS的大小在每个存储层中分配对应的空间给所述卷;
根据地址映射粒度CK建立所述卷到所述资源池的地址映射表,所述AS是所述CK的整数倍。
优选地,所述根据所述AS的大小在每个存储层中分配对应的空间给所述卷的步骤之后,还包括:
当某个存储层的空间分配完之后,重新建立所述存储层,或者分配新的空间给所述存储层;
当重新建立所述存储层或者分配新的空间给所述存储层失败时,检测所述存储层的AS内是否有未分配的CK;
若所述存储层的AS内有未分配的CK,则根据所述CK的大小在每个存储层中分配对应的空间给所述卷。
优选地,所述根据CK建立所述卷到所述资源池内的地址映射表,所述AS是所述CK的整数倍的步骤之后,还包括:
当侦测到热点迁移的指令时,以CK作为热点迁移的粒度对资源池内的资源进行迁移。
优选地,所述根据CK建立所述卷到所述资源池内的地址映射表,所述AS是所述CK的整数倍的步骤之后,还包括:
当所述存储层中的磁盘出现故障时,根据所述存储层中磁盘的个数和磁盘阵列参数,同时启动多个AS的重建。
优选地,所述根据所述卷的空间大小和预设的分配策略,计算所述卷占用资源池中每个存储层的空间大小的步骤之后,还包括:
判断所述资源池中是否存在固态硬盘;
若所述资源池中存在固态硬盘,则所述根据计算得到的所述卷占用每个存储层的空间大小,在每个存储层中分配对应的空间给所述卷的步骤包括:
将固态硬盘对应存储层中的卷划分成CK的大小,根据所述CK的大小在固态硬盘中分配对应的空间给所述卷,根据CK建立所述卷到所述资源池的地址映射表。
此外,为实现上述目的,本发明还提供一种卷的空间分配装置,所述装置包括:
获取模块,用于获取待创建的卷的空间大小;
计算模块,用于根据所述卷的空间大小和预设的分配策略,计算所述卷占用资源池中每个存储层的空间大小;
分配模块,用于根据计算得到的所述卷占用每个存储层的空间大小,在每个存储层中分配对应的空间给所述卷。
优选地,所述分配模块包括:
划分单元,用于将所述卷划分成分配粒度AS的大小;
第一分配单元,用于根据所述AS的大小在每个存储层中分配对应的空间给所述卷;
建立单元,用于根据地址映射粒度CK建立所述卷到所述资源池的地址映射表,所述AS是所述CK的整数倍。
优选地,所述分配模块还包括:
处理单元,用于当某个存储层的空间分配完之后,重新建立所述存储层,或者分配新的空间给所述存储层;
检测单元,用于当重新建立所述存储层或者分配新的空间给所述存储层失败时,检测所述存储层的AS内是否有未分配的CK;
第二分配单元,用于若所述存储层的AS内有未分配的CK,则根据所述CK的大小在每个存储层中分配对应的空间给所述卷。
优选地,所述分配模块还包括迁移单元,用于当侦测到热点迁移的指令时,以CK作为热点迁移的粒度对资源池内的资源进行迁移。
优选地,所述分配模块还包括启动单元,用于当所述存储层中的磁盘出现故障时,根据所述存储层中磁盘的个数和磁盘阵列参数,同时启动多个AS的重建。
优选地,所述卷的空间分配装置还包括判断模块,用于判断所述资源池中是否存在固态硬盘;
所述分配模块,还用于将固态硬盘对应存储层中的卷划分成CK的大小,根据所述CK的大小在固态硬盘中分配对应的空间给所述卷,根据CK建立所述卷到所述资源池的地址映射表。
本发明通过计算卷在资源池中占用每个存储层的空间大小,在每个存储层中分配对应的空间给所述卷,使所述卷能够利用资源池内多个物理磁盘的性能,通过分配较大的连续空间AS来实现了I/O在卷上的连续访问能够有效的转换成在存储层磁盘上的连续访问,减少磁头转动对磁盘的性能的影响,提高顺序访问I/O的性能,同时通过设置较小的映射粒度CK,将所述AS切成多个CK来建立地址映射表,进而兼顾热点迁移的效果。
附图说明
图1为本发明卷的空间分配方法第一实施例的流程示意图;
图2为本发明卷的空间分配方法第二实施例的流程示意图;
图3为本发明卷的空间分配方法第三实施例的流程示意图;
图4为本发明卷的空间分配方法第四实施例的流程示意图;
图5为本发明卷的空间分配装置第一实施例的功能模块示意图;
图6为本发明卷的空间分配装置第二实施例的功能模块示意图;
图7为本发明卷的空间分配装置第三实施例的功能模块示意图;
图8为本发明卷的空间分配装置第四实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:获取待创建的卷的空间大小;根据所述卷的空间大小和预设的分配策略,计算所述卷占用资源池中每个存储层的空间大小;根据计算得到的所述卷占用每个存储层的空间大小,在每个存储层中分配对应的空间给所述卷。通过计算卷在资源池占用每个存储层的空间大小,在每个存储层中分配对应的空间给所述卷,使所述卷能够利用资源池内多个存储层的性能,通过分配较大的连续空间AS来实现了I/O在卷上的连续访问能够有效的转换成在磁盘上的连续访问,减少磁头转动对磁盘的性能的影响,提高顺序访问I/O的性能,同时通过设置较小的映射粒度CK,将所述AS切成多个CK来建立地址映射表,进而兼顾热点迁移的效果。
由于现有的存储系统在重建I/O时连续性较低,使得重建的性能降低,且热点迁移的整体效果不佳。
基于上述问题,本发明提供一种卷的空间分配方法。
参照图1,图1为本发明卷的空间分配方法第一实施例的流程示意图。
在本实施例中,所述卷的空间分配方法包括:
步骤S10,获取待创建的卷的空间大小;
步骤S20,根据所述卷的空间大小和预设的分配策略,计算所述卷占用资源池中每个存储层的空间大小;
虚拟化资源池pool存储系统获取其用户指定待创建的卷的空间大小,根据所述卷的空间大小和其用户预设的分配策略,计算所述卷在所述pool中占用每个存储层的空间大小,得到所述卷占用每个存储层的空间大小。所述虚拟化pool存储系统的存储阵列的volume层到pool层有一层地址空间的映射(当卷为thin卷时,除了所述映射外,还会有一层thin卷的映射。所述thin卷是指有自动精简配置功能的卷。所述自动精简配置是一种存储管理的特性,核心原理是“欺骗”客户端操作系统,让客户端操作系统认为已经分配了很大逻辑资源,比如客户端操作系统看到一个2TB(terabyte,太字节)的逻辑资源,而实际上网络存储设备上只为这个资源分配了几十或者几百GB(Gigabyte,十亿字节)的物理空间,其余空间都是虚拟出来的。随着应用程序写入越来越多的数据,物理存储利用率也会越来越高,当实际分配的物理空间不足时,再分配额外的物理空间,随需扩展)。所述Pool内有三个层级,分别为tier0,tier1,tier2。所述tier0级为SSD(Solid State Drives,固态硬盘),tier1级为SAS(Serial Attached SCSI,串行连接SCSI接口),tier2级为SATA(Serial ATA,串口硬盘)。如当所述虚拟化pool存储系统用户定义所述卷的空间为100GB,所述预设的分配策略为tier0,tier1和tier2层级的卷在所述pool内存储层的空间分配比例为2:3:5,则所述虚拟化pool存储系统根据所述预设的分配策略计算得出所述卷在所述pool内的SSD的空间为20GB,在SAS的空间为30GB,在SATA的空间为50GB。
步骤S30,根据计算得到的所述卷占用每个存储层的空间大小,在每个存储层中分配对应的空间给所述卷。
虚拟化pool存储系统根据计算得到的所述卷占用所述pool内每个存储层的空间大小,在每个存储层中分配对应的空间给所述卷。如所述虚拟化pool存储系统根据所述卷在所述pool内的SSD,SAS和SATA内空间的大小,在所述pool内SSD中分配20GB的空间给所述卷,在所述pool内的SAS中分配30GB的空间给所述卷,在所述pool内的SATA中分配50GB的空间给所述卷。
本实施例通过计算卷在资源池中占用每个存储层的空间大小,在每个存储层中分配对应的空间给所述卷,使所述卷能够利用资源池内多个物理磁盘的性能,通过分配较大的连续空间AS来实现了I/O在卷上的连续访问能够有效的转换成在存储层磁盘上的连续访问,减少磁头转动对磁盘的性能的影响,提高顺序访问I/O的性能,同时通过设置较小的映射粒度CK,将所述AS切成多个CK来建立地址映射表,进而兼顾热点迁移的效果。
参照图2,图2为本发明卷的空间分配方法第二实施例的流程示意图,基于第一实施例提出本发明卷的空间分配方法第二实施例。
在本实施例中,所述步骤S30包括:
步骤S31,将所述卷划分成分配粒度AS的大小;
步骤S32,根据所述AS的大小在每个存储层中分配对应的空间给所述卷;
虚拟化pool存储系统根据计算得到的所述卷占用每个存储层的空间大小,当所述存储层内的磁盘为机械盘或者是SSD时,将所述卷在其pool内每个存储层中的空间大小划分成AS(Alloc Size,分配粒度)的大小,并根据所述AS的大小,在所述存储层内的磁盘阵列组RAID group中分配对应的空间给所述卷。
步骤S33,当某个存储层的空间分配完之后,重新建立所述存储层,或者分配新的空间给所述存储层;
步骤S34,当重新建立所述存储层或者分配新的空间给所述存储层失败时,检测所述存储层的AS内是否有未分配的CK;
步骤S35,若所述存储层的AS内有未分配的CK,则根据所述CK的大小在每个存储层中分配对应的空间给所述卷。
当所述虚拟化pool存储系统中所述pool内某个存储层的RAID group的空间已分配完时,则新建所述存储层的RAID group或者从所述pool内其它存储层内分配新的物理空间给所述存储层的RAID group扩容。当所述存储层的RAID group新建或者扩容成功后,所述虚拟化pool存储系统将所述pool内存储层中的RAID group空间分配给卷。当所述存储层的RAID group新建或者扩容失败时,所述虚拟化pool存储系统则从头开始检查空间分配完的存储层的RAID group中的AS内是否有未分配的CK,当所述AS内存在未分配的CK时,以CK为粒度来分配空间给所述卷;若所述AS内的CK已分配完,则表明所述存储层的空间分配失败。所述虚拟化pool存储系统根据其用户设置的分配策略选择从所述pool内其它存储层中分配空间给所述存储层的RAID group,或者提示所述用户所述存储层的RAID group中的空间分配失败,即创建卷失败。
步骤S36,根据地址映射粒度CK建立所述卷到所述资源池的地址映射表,所述AS是所述CK的整数倍。
当所述虚拟化pool存储系统为所述pool内存储层的卷分配了AS的空间之后,根据CK(chunk,地址映射粒度)建立所述卷内CK到所述pool内CK的地址映射表。所述AS是所述CK的整数倍。如一个AS可以由4个CK组成。所述卷内CK的ID(identification,身份标识符)与所述pool内CK的ID一一对应。当所述虚拟化pool存储系统建立了所述卷内CK到所述pool内CK的地址映射表时,所述虚拟化pool存储系统已为所述卷分配空间,创建所述卷成功。所述虚拟化pool存储系统通过所述卷从所述pool内不同存储层的RAID group上分配空间,以使所述卷能够利用pool内多个物理磁盘的性能。所述AS不会设置的太大,所述AS最大设置为从所述pool内物理磁盘上划分的小块组成的RAID group的大小。
步骤S37,当侦测到热点迁移的指令时,以CK作为热点迁移的粒度对资源池内的资源进行迁移。
当所述虚拟化pool存储系统侦测到所述pool内的热点迁移指令时,以CK作为热点迁移的粒度对所述pool内的资源进行迁移。如当所述虚拟化pool存储系统在读写数据时,发现所述pool内SAS中的某些数据使用频繁,则将这些使用频繁的数据以CK为粒度迁移到SSD内。当所述虚拟化pool存储系统pool内的SAS迁移后,可能会导致AS内部出现空洞,则当所述SAS内按照AS已经不能分配空间给所述卷时,再选择AS内空洞的CK来分配空间给所述卷。
本实施例通过计算卷在资源池中每个存储层的空间分配比例,将存储层内的空间按照AS分配给对应的卷,并按照CK建立所述卷到所述资源池内的地址映射表。实现了使用AS的大小进行空间分配,使用CK进行热点迁移,在保持较小的粒度迁移的同时,提高了顺序I/O访问的性能。
参照图3,图3为本发明卷的空间分配方法第三实施例的流程示意图,基于第二实施例提出本发明卷的空间分配方法第三实施例。
在本实施例中,所述步骤S33之后,还包括:
步骤S38,当所述存储层中的磁盘出现故障时,根据所述存储层中磁盘的个数和磁盘阵列参数,同时启动多个AS的重建。
当虚拟化pool存储系统的pool内存储层中的某个磁盘出现故障时,所述虚拟化pool存储系统需要重建I/O,重建的I/O都是顺序的I/O。当所述虚拟化pool存储系统在重建I/O的时候,要要保证充分利用所述存储层内所有磁盘的性能,因此需要所述pool内存储层中多个RAID group中的AS能够并发进行。并发的AS数取决于所述pool内存储层中磁盘的数量以及所述磁盘中RAID参数。如当所述pool内存储层中磁盘的数量以及所述磁盘中RAID参数决定重建I/O时并发的AS数为4个,则所述磁盘重建的I/O并发数为4,即在每个AS内部顺序下发重建I/O,类似于多路的顺序流。在一个AS的内部,也会根据主机I/O的繁忙程度来限制重建I/O的并发数。
本实施例通过当资源池中存储层的磁盘出现故障时,同时启动多个AS重建I/O,提高了磁盘故障时I/O的重建性能。
参照图4,图4为本发明卷的空间分配方法第四实施例的流程示意图,基于第一实施例提出本发明卷的空间分配方法第四实施例。
在本实施例中,所述步骤S20之后,还包括:
步骤S40,判断所述资源池中是否存在固态硬盘;
若所述资源池中存在固态硬盘,则所述步骤S30还包括:
步骤S39,将固态硬盘对应存储层中的卷划分成CK的大小,根据所述CK的大小在固态硬盘中分配对应的空间给所述卷,根据CK建立所述卷到所述资源池的地址映射表。
虚拟化pool存储系统判断其pool内的存储层是否存在SSD,当所述pool内的存储层存在SSD时,在对所述SSD中的RAID group空间进行分配时,可以以CK为粒度进行,其它不存在SSD的存储层以AS为粒度进行空间分配。当所述虚拟化pool存储系统将卷上的空间划分成CK的大小后,从所述SSD分配CK大小的空间给所述卷。若所述SSD中RAID group的CK大小的空间分配完成之后,所述虚拟化pool存储系统新建所述SSD中的RAID group,或者从所述pool内其它存储层中分配新的物理空间给所述SSD的RAID group进行扩容。当新建所述SSD的RAID group或者对所述SSD的RAID group扩容后,所述虚拟化pool存储系统将所述pool内的SSD中RAID group的CK大小的空间分配给所述卷。当所述SSD层的RAID group新建或者扩容失败时,所述虚拟化pool存储系统根据其用户设置的分配策略选择从所述pool内其它存储层中分配空间给所述SSD的RAID group,或者提示所述用户所述SSD的RAID group中的空间分配失败,即创建卷失败。
本实施例通过将SSD层磁盘阵列组中的空间按照CK分配给对应的卷。实现了当虚拟化pool存储系统的pool内存在SSD时,保持较小的粒度迁移的同时,提高了顺序I/O访问的性能。
本发明进一步提供一种卷的空间分配装置。
参照图5,图5为本发明卷的空间分配装置第一实施例的功能模块示意图。
在本实施例中,所述卷的空间分配装置包括:
获取模块10,用于获取待创建的卷的空间大小;
计算模块20,用于根据所述卷的空间大小和预设的分配策略,计算所述卷占用资源池中每个存储层的空间大小;
虚拟化资源池pool存储系统获取其用户指定待创建的卷的空间大小,根据所述卷的空间大小和其用户预设的分配策略,计算所述卷在所述pool中占用每个存储层的空间大小,得到所述卷占用每个存储层的空间大小。所述虚拟化pool存储系统的存储阵列的volume层到pool层有一层地址空间的映射(当卷为thin卷时,除了所述映射外,还会有一层thin卷的映射。所述thin卷是指有自动精简配置功能的卷。所述自动精简配置是一种存储管理的特性,核心原理是“欺骗”客户端操作系统,让客户端操作系统认为已经分配了很大逻辑资源,比如客户端操作系统看到一个2TB(terabyte,太字节)的逻辑资源,而实际上网络存储设备上只为这个资源分配了几十或者几百GB(Gigabyte,十亿字节)的物理空间,其余空间都是虚拟出来的。随着应用程序写入越来越多的数据,物理存储利用率也会越来越高,当实际分配的物理空间不足时,再分配额外的物理空间,随需扩展)。所述Pool内有三个层级,分别为tier0,tier1,tier2。所述tier0级为SSD(Solid State Drives,固态硬盘),tier1级为SAS(Serial Attached SCSI,串行连接SCSI接口),tier2级为SATA(Serial ATA,串口硬盘)。如当所述虚拟化pool存储系统用户定义所述卷的空间为100GB,所述预设的分配策略为tier0,tier1和tier2层级的卷在所述pool内存储层的空间分配比例为2:3:5,则所述拟化pool存储系统根据所述预设的分配策略计算得出所述卷在所述pool内的SSD的空间为20GB,在SAS的空间为30GB,在SATA的空间为50GB。
分配模块30,用于根据计算得到的所述卷占用每个存储层的空间大小,在每个存储层中分配对应的空间给所述卷。
虚拟化pool存储系统根据计算得到的所述卷占用所述pool内每个存储层的空间大小,在每个存储层中分配对应的空间给所述卷。如所述虚拟化pool存储系统根据所述卷在所述pool内的SSD,SAS和SATA内空间的大小,在所述pool内SSD中分配20GB的空间给所述卷,在所述pool内的SAS中分配30GB的空间给所述卷,在所述pool内的SATA中分配50GB的空间给所述卷。
本实施例通过计算卷在资源池中占用每个存储层的空间大小,在每个存储层中分配对应的空间给所述卷,使所述卷能够利用资源池内多个物理磁盘的性能,通过分配较大的连续空间AS来实现了I/O在卷上的连续访问能够有效的转换成在存储层磁盘上的连续访问,减少磁头转动对磁盘的性能的影响,提高顺序访问I/O的性能,同时通过设置较小的映射粒度CK,将所述AS切成多个CK来建立地址映射表,进而兼顾热点迁移的效果。
参照图6,图6为本发明卷的空间分配装置第二实施例的功能模块示意图,基于第一实施例提出本发明卷的空间分配装置第二实施例。
在本实施例中,所述分配模块30还包括:
划分单元31,用于将所述卷划分成分配粒度AS的大小;
第一分配单元32,用于根据所述AS的大小在每个存储层中分配对应的空间给所述卷;
虚拟化pool存储系统根据计算得到的所述卷占用每个存储层的空间大小,当所述存储层内的磁盘为机械盘或者是SSD时,将所述卷在其pool内每个存储层中的空间大小划分成AS(Alloc Size,分配粒度)的大小,并根据所述AS的大小,在所述存储层内的磁盘阵列组RAID group中分配对应的空间给所述卷。
处理单元33,用于当某个存储层的空间分配完之后,重新建立所述存储层,或者分配新的空间给所述存储层;
检测单元34,用于当重新建立所述存储层或者分配新的空间给所述存储层失败时,检测所述存储层的AS内是否有未分配的CK;
第二分配单元35,用于若所述存储层的AS内有未分配的CK,则根据所述CK的大小在每个存储层中分配对应的空间给所述卷。
当所述虚拟化pool存储系统中所述pool内某个存储层的RAID group的空间已分配完时,则新建所述存储层的RAID group或者从所述pool内其它存储层内分配新的物理空间给所述存储层的RAID group扩容。当所述存储层的RAID group新建或者扩容成功后,所述虚拟化pool存储系统将所述pool内存储层中的RAID group空间分配给卷。当所述存储层的RAID group新建或者扩容失败时,所述虚拟化pool存储系统则从头开始检查空间分配完的存储层的RAID group中的AS内是否有未分配的CK,当所述AS内存在未分配的CK时,以CK为粒度来分配空间给所述卷;若所述AS内的CK已分配完,则表明所述存储层的空间分配失败。所述虚拟化pool存储系统根据其用户设置的分配策略选择从所述pool内其它存储层中分配空间给所述存储层的RAID group,或者提示所述用户所述存储层的RAID group中的空间分配失败,即创建卷失败。
建立单元36,用于根据地址映射粒度CK建立所述卷到所述资源池的地址映射表,所述AS是所述CK的整数倍。
当所述虚拟化pool存储系统为所述pool内存储层的卷分配了AS的空间之后,根据CK(chunk,地址映射粒度)建立所述卷内CK到所述pool内CK的地址映射表。所述AS是所述CK的整数倍。如一个AS可以由4个CK组成。所述卷内CK的ID(identification,身份标识符)与所述pool内CK的ID一一对应。当所述虚拟化pool存储系统建立了所述卷内CK到所述pool内CK的地址映射表时,所述虚拟化pool存储系统已为所述卷分配空间,创建所述卷成功。所述虚拟化pool存储系统通过所述卷从所述pool内不同存储层的RAID group上分配空间,以使所述卷能够利用pool内多个物理磁盘的性能。所述AS不会设置的太大,所述AS最大设置为从所述pool内物理磁盘上划分的小块组成的RAID group的大小。
迁移单元37,用于当侦测到热点迁移的指令时,以CK作为热点迁移的粒度对资源池内的资源进行迁移。
当所述虚拟化pool存储系统侦测到所述pool内的热点迁移指令时,以CK作为热点迁移的粒度对所述pool内的资源进行迁移。如当所述虚拟化pool存储系统在读写数据时,发现所述pool内SAS中的某些数据使用频繁,则将这些使用频繁的数据以CK为粒度迁移到SSD内。当所述虚拟化pool存储系统pool内的SAS迁移后,可能会导致AS内部出现空洞,则当所述SAS内按照AS已经不能分配空间给所述卷时,再选择AS内空洞的CK来分配空间给所述卷。
本实施例通过计算卷在资源池中每个存储层的空间分配比例,将存储层内的空间按照AS分配给对应的卷,并按照CK建立所述卷到所述资源池内的地址映射表。实现了使用AS的大小进行空间分配,使用CK进行热点迁移,在保持较小的粒度迁移的同时,提高了顺序I/O访问的性能。
参照图7,图7为本发明卷的空间分配装置第三实施例的功能模块示意图,基于第二实施例提出本发明卷的空间分配装置第三实施例。
在本实施例中,所述分配模块30还包括:
启动单元38,用于当所述存储层中的磁盘出现故障时,根据所述存储层中磁盘的个数和磁盘阵列参数,同时启动多个AS的重建。
当虚拟化pool存储系统的pool内存储层中的某个磁盘出现故障时,所述虚拟化pool存储系统需要重建I/O,重建的I/O都是顺序的I/O。当所述虚拟化pool存储系统在重建I/O的时候,要要保证充分利用所述存储层内所有磁盘的性能,因此需要所述pool内存储层中多个RAID group中的AS能够并发进行。并发的AS数取决于所述pool内存储层中磁盘的数量以及所述磁盘中RAID参数。如当所述pool内存储层中磁盘的数量以及所述磁盘中RAID参数决定重建I/O时并发的AS数为4个,则所述磁盘重建的I/O并发数为4,即在每个AS内部顺序下发重建I/O,类似于多路的顺序流。在一个AS的内部,也会根据主机I/O的繁忙程度来限制重建I/O的并发数。
本实施例通过当资源池中存储层的磁盘出现故障时,同时启动多个AS重建I/O,提高了磁盘故障时I/O的重建性能。
参照图8,图8为本发明卷的空间分配装置第四实施例的功能模块示意图,基于第一实施例提出本发明卷的空间分配装置第四实施例。
在本实施例中,所述卷的空间分配装置还包括:
判断模块40,用于判断所述资源池中是否存在固态硬盘;
若所述资源池中存在固态硬盘,则所述分配模块30,还用于将固态硬盘对应存储层中的卷划分成CK的大小,根据所述CK的大小在固态硬盘中分配对应的空间给所述卷,根据CK建立所述卷到所述资源池的地址映射表。
虚拟化pool存储系统判断其pool内的存储层是否存在SSD,当所述pool内的存储层存在SSD时,在对所述SSD中的RAID group空间进行分配时,可以以CK为粒度进行,其它不存在SSD的存储层以AS为粒度进行空间分配。当所述虚拟化pool存储系统将卷上的空间划分成CK的大小后,从所述SSD分配CK大小的空间给所述卷。若所述SSD中RAID group的CK大小的空间分配完成之后,所述虚拟化pool存储系统新建所述SSD中的RAID group,或者从所述pool内其它存储层中分配新的物理空间给所述SSD的RAID group进行扩容。当新建所述SSD的RAID group或者对所述SSD的RAID group扩容后,所述虚拟化pool存储系统将所述pool内的SSD中RAID group的CK大小的空间分配给所述卷。当所述SSD层的RAID group新建或者扩容失败时,所述虚拟化pool存储系统根据其用户设置的分配策略选择从所述pool内其它存储层中分配空间给所述SSD的RAID group,或者提示所述用户所述SSD的RAID group中的空间分配失败,即创建卷失败。
本实施例通过将SSD层磁盘阵列组中的空间按照CK分配给对应的卷。实现了当虚拟化pool存储系统的pool内存在SSD时,保持较小的粒度迁移的同时,提高了顺序I/O访问的性能。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种卷的空间分配方法,其特征在于,所述卷的空间分配方法包括以下步骤:
获取待创建的卷的空间大小;
根据所述卷的空间大小和预设的分配策略,计算所述卷占用资源池中每个存储层的空间大小;
将所述卷划分成分配粒度AS的大小;
根据所述AS的大小在每个存储层中分配对应的空间给所述卷;
根据地址映射粒度CK建立所述卷到所述资源池的地址映射表,所述AS是所述CK的整数倍。
2.如权利要求1所述的卷的空间分配方法,其特征在于,所述根据所述AS的大小在每个存储层中分配对应的空间给所述卷的步骤之后,还包括:
当某个存储层的空间分配完之后,重新建立所述存储层,或者分配新的空间给所述存储层;
当重新建立所述存储层或者分配新的空间给所述存储层失败时,检测所述存储层的AS内是否有未分配的CK;
若所述存储层的AS内有未分配的CK,则根据所述CK的大小在每个存储层中分配对应的空间给所述卷。
3.如权利要求1所述的卷的空间分配方法,其特征在于,所述根据CK建立所述卷到所述资源池内的地址映射表,所述AS是所述CK的整数倍的步骤之后,还包括:
当侦测到热点迁移的指令时,以CK作为热点迁移的粒度对资源池内的资源进行迁移。
4.如权利要求1所述的卷的空间分配方法,其特征在于,所述根据CK建立所述卷到所述资源池内的地址映射表,所述AS是所述CK的整数倍的步骤之后,还包括:
当所述存储层中的磁盘出现故障时,根据所述存储层中磁盘的个数和磁盘阵列参数,同时启动多个AS的重建。
5.如权利要求1至4任一项所述的卷的空间分配方法,其特征在于,所述根据所述卷的空间大小和预设的分配策略,计算所述卷占用资源池中每个存储层的空间大小的步骤之后,还包括:
判断所述资源池中是否存在固态硬盘;
若所述资源池中存在固态硬盘,则所述根据计算得到的所述卷占用每个存储层的空间大小,在每个存储层中分配对应的空间给所述卷的步骤包括:
将固态硬盘对应存储层中的卷划分成CK的大小,根据所述CK的大小在固态硬盘中分配对应的空间给所述卷,根据CK建立所述卷到所述资源池的地址映射表。
6.一种卷的空间分配装置,其特征在于,所述卷的空间分配装置包括:
获取模块,用于获取待创建的卷的空间大小;
计算模块,用于根据所述卷的空间大小和预设的分配策略,计算所述卷占用资源池中每个存储层的空间大小;
分配模块,用于根据计算得到的所述卷占用每个存储层的空间大小,在每个存储层中分配对应的空间给所述卷;
所述分配模块包括:
划分单元,用于将所述卷划分成分配粒度AS的大小;
第一分配单元,用于根据所述AS的大小在每个存储层中分配对应的空间给所述卷;
建立单元,用于根据地址映射粒度CK建立所述卷到所述资源池的地址映射表,所述AS是所述CK的整数倍。
7.如权利要求6所述的卷的空间分配装置,其特征在于,所述分配模块还包括:
处理单元,用于当某个存储层的空间分配完之后,重新建立所述存储层,或者分配新的空间给所述存储层;
检测单元,用于当重新建立所述存储层或者分配新的空间给所述存储层失败时,检测所述存储层的AS内是否有未分配的CK;
第二分配单元,用于若所述存储层的AS内有未分配的CK,则根据所述CK的大小在每个存储层中分配对应的空间给所述卷。
8.如权利要求6所述的卷的空间分配装置,其特征在于,所述分配模块还包括迁移单元,用于当侦测到热点迁移的指令时,以CK作为热点迁移的粒度对资源池内的资源进行迁移。
9.如权利要求6所述的卷的空间分配装置,其特征在于,所述分配模块还包括启动单元,用于当所述存储层中的磁盘出现故障时,根据所述存储层中磁盘的个数和磁盘阵列参数,同时启动多个AS的重建。
10.如权利要求6至9任一项所述的卷的空间分配装置,其特征在于,所述卷的空间分配装置还包括判断模块,用于判断所述资源池中是否存在固态硬盘;
所述分配模块,还用于将固态硬盘对应存储层中的卷划分成CK的大小,根据所述CK的大小在固态硬盘中分配对应的空间给所述卷,根据CK建立所述卷到所述资源池的地址映射表。
CN201510418973.1A 2015-07-15 2015-07-15 卷的空间分配方法和装置 Active CN107037975B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510418973.1A CN107037975B (zh) 2015-07-15 2015-07-15 卷的空间分配方法和装置
PCT/CN2016/082351 WO2017008571A1 (zh) 2015-07-15 2016-05-17 卷的空间分配方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510418973.1A CN107037975B (zh) 2015-07-15 2015-07-15 卷的空间分配方法和装置

Publications (2)

Publication Number Publication Date
CN107037975A CN107037975A (zh) 2017-08-11
CN107037975B true CN107037975B (zh) 2019-12-03

Family

ID=57756812

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510418973.1A Active CN107037975B (zh) 2015-07-15 2015-07-15 卷的空间分配方法和装置

Country Status (2)

Country Link
CN (1) CN107037975B (zh)
WO (1) WO2017008571A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11163476B2 (en) 2019-10-04 2021-11-02 International Business Machines Corporation Dynamic rebalancing of free space between storage pools
CN113157341B (zh) * 2021-04-26 2022-12-02 上海淇馥信息技术有限公司 对象的资源环境自适应处理方法、装置和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7428614B2 (en) * 2006-07-27 2008-09-23 Hitachi, Ltd. Management system for a virtualized storage environment
CN101604226A (zh) * 2009-07-14 2009-12-16 浪潮电子信息产业股份有限公司 一种基于虚拟raid构建动态缓存池提高存储系统性能的方法
CN102754084A (zh) * 2010-05-18 2012-10-24 株式会社日立制作所 存储装置和数据管理方法
CN104731517A (zh) * 2013-12-19 2015-06-24 中国移动通信集团四川有限公司 一种存储池容量分配方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4727705B2 (ja) * 2008-10-31 2011-07-20 株式会社日立製作所 階層型ストレージシステム
US20120011329A1 (en) * 2010-07-09 2012-01-12 Hitachi, Ltd. Storage apparatus and storage management method
CN101997918B (zh) * 2010-11-11 2013-02-27 清华大学 异构san环境中的海量存储资源按需分配的实现方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7428614B2 (en) * 2006-07-27 2008-09-23 Hitachi, Ltd. Management system for a virtualized storage environment
CN101604226A (zh) * 2009-07-14 2009-12-16 浪潮电子信息产业股份有限公司 一种基于虚拟raid构建动态缓存池提高存储系统性能的方法
CN102754084A (zh) * 2010-05-18 2012-10-24 株式会社日立制作所 存储装置和数据管理方法
CN104731517A (zh) * 2013-12-19 2015-06-24 中国移动通信集团四川有限公司 一种存储池容量分配方法和装置

Also Published As

Publication number Publication date
CN107037975A (zh) 2017-08-11
WO2017008571A1 (zh) 2017-01-19

Similar Documents

Publication Publication Date Title
US9703717B2 (en) Computer system and control method
US8464003B2 (en) Method and apparatus to manage object based tier
CN102449607B (zh) 具有多个闪存封装的存储系统
CN104636080B (zh) 存储系统及用于其的方法
CN102754084B (zh) 存储装置和数据管理方法
US10318163B2 (en) Balancing SSD wear in data storage systems
US11023147B2 (en) Mapping storage extents into resiliency groups
JP5438827B2 (ja) 記憶制御装置及び仮想ボリュームの制御方法
US10001927B1 (en) Techniques for optimizing I/O operations
WO2016091127A1 (zh) 一种存储管理方法,存储管理装置及存储设备
CN103761053B (zh) 一种数据处理方法和装置
CN104536903B (zh) 一种按数据属性分类存放的混合存储方法及系统
US20120017042A1 (en) Storage control apparatus and storage system comprising multiple storage control apparatuses
US20130036266A1 (en) First storage control apparatus and storage system management method
WO2016107167A1 (zh) 存储架构的创建方法、存储访问方法和存储系统
CN104049906A (zh) 用于动态高速缓存共享的系统、方法和计算机可读介质
US10664182B2 (en) Storage system
JP2008108020A (ja) 計算機システム、データ移行方法、およびストレージ管理サーバ
US20170212705A1 (en) Dynamic Weighting for Distributed Parity Device Layouts
CN107092442A (zh) 存储系统资源分配方法及装置
CN105988727B (zh) 一种基于raid的存储方法和存储装置
US11281537B2 (en) Managing mapped raid extents in data storage systems
CN104731517A (zh) 一种存储池容量分配方法和装置
US20190220231A1 (en) Method, apparatus and computer program product for managing storage system
CN107037975B (zh) 卷的空间分配方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant