CN110058822B - 一种磁盘阵列横向拓展方法 - Google Patents

一种磁盘阵列横向拓展方法 Download PDF

Info

Publication number
CN110058822B
CN110058822B CN201910343799.7A CN201910343799A CN110058822B CN 110058822 B CN110058822 B CN 110058822B CN 201910343799 A CN201910343799 A CN 201910343799A CN 110058822 B CN110058822 B CN 110058822B
Authority
CN
China
Prior art keywords
hash
storage
data
raid
disk array
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
CN201910343799.7A
Other languages
English (en)
Other versions
CN110058822A (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.)
Beijing Institute of Computer Technology and Applications
Original Assignee
Beijing Institute of Computer Technology and Applications
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 Beijing Institute of Computer Technology and Applications filed Critical Beijing Institute of Computer Technology and Applications
Priority to CN201910343799.7A priority Critical patent/CN110058822B/zh
Publication of CN110058822A publication Critical patent/CN110058822A/zh
Application granted granted Critical
Publication of CN110058822B publication Critical patent/CN110058822B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Abstract

本发明涉及一种磁盘阵列横向拓展方法,其中,包括:存储系统在物理层面将磁盘阵列的存储资源划分为数据区块、副本池和阵列节点,将阵列节点的磁盘划分为多个数据区块,数据区块均匀分布在存储池的所有副本池上;多个固定长度的数据区块组成一个逻辑卷,将所有盘阵中的副本池组织成一个统一的逻辑资源池,通过对象存储协议将逻辑卷映射到客户端,将物理磁盘划分成大小统一的数据区块,多个数据区块组成副本池,副本池的集合构成统一的存储资源池;将所有副本池的地址空间分区并统一编址后映射到哈希环上,每个存储单元分区负责一个特定范围内的地址空间路由以及相应的数据存储,当客户端对区块上的数据进行读写时,通过哈希运算查询区块的存储地址。

Description

一种磁盘阵列横向拓展方法
技术领域
本发明涉及数据存储技术,特别涉及一种磁盘阵列横向拓展方法。
背景技术
随着大数据时代的到来,企业产生的数据日益增多,数据往往呈现指数级别的增长,企业对数据存储的需求也越来越大,而传统存储系统受限于前端控制器的扩展能力,存储容量有限,传统存储系统支持“scale up”--向上扩展,最为低端的磁盘阵列有单控制器的配置,稍微复杂一点的存储系统一般都是双控制器配置,而后端的磁盘数量还可以不断扩展。但总体来说,都是在一个固定的存储系统架构上去升级扩展,是当扩展到一定程度,就很难继续扩展下去,尤其是前端控制器的数量。也因此导致了当后端磁盘不断增多,而前端控制器无法扩展的情况下产生的性能瓶颈,因此当再需要添加存储容量时,往往需要停机更换容量更大的存储系统,进行数据迁移等动作,这往往会造成服务中断。而且磁盘阵列存储系统适用范围非常有限,功能较为单一,所以最终会造成存在大量存储系统、存储孤岛、孤立的容量和更大的管理复杂性等问题。
为了解决磁盘阵列扩展能力受限,停机扩容会导致业务数据存储服务中断,性能瓶颈的问题,需要设计一种多磁盘阵列横向拓展方案,当存储系统中盘阵容量存储达到一定得上限时,可以无缝添加新的磁盘阵列作为存储节点,确保系统不中断地向客户端提供存储数据存储服务,解决单点性能瓶颈。而由于数据是按照特定的哈希函数存储在相应阵列节点中,当新的阵列加入时,往往会由于哈希值的变动带来大量的集群内数据迁移,这会导致网络负载的增大,影响存储系统的性能。所以需要设计高效可靠的横向拓展方案,设计合理的数据分布策略,确保数据的均匀分布。
中国专利“CN104484130A一种横向拓展存储系统系统的构建方法”,此专利按节点对存储系统中的所有块设备进行划分,通过网络RAID算法或者纠删码技术对所有的块设备进行整合,构成统一的存储池,可选择强一致性策略和弱一致性策略将写入数据,可支持动态添加缓存SSD,缓存写入方式支持回写、通写,预热读策略。可以通过增加节点对系统容量、数据和吞吐能力进行横向扩展。
中国专利“CN104484130A一种横向拓展存储系统系统的构建方法”所述的横向拓展方案在存储系统容量不足时,虽然可以通过添加硬盘或者固态硬盘来扩充存储系统的容量,但是当需要通过增加节点来扩容时,由于该专利所述方法采用的是将各个节点存储空间通过raid算法或者纠删码技术合为一个统一的存储池,在增加新节点后需要重新构建raid或者重新计算纠删码,这必然会带来数据的大量迁移和计算资源的紧缺从而使得存储系统负载增加。
发明内容
本发明一种磁盘阵列横向拓展方法,用于解决现有盘阵横向拓展能力不强,分布式存储保证数据一致性能力较弱的问题。
本发明一种磁盘阵列横向拓展方法,其中,包括:存储系统在物理层面将磁盘阵列的存储资源划分为数据区块、副本池和阵列节点,将阵列节点的磁盘划分为多个数据区块,数据区块均匀分布在存储池的所有副本池上;多个固定长度的数据区块组成一个逻辑卷,将所有盘阵中的副本池组织成一个统一的逻辑资源池,通过对象存储协议将逻辑卷映射到客户端,将物理磁盘划分成大小统一的数据区块,多个数据区块组成副本池,副本池的集合构成统一的存储资源池;将所有副本池的地址空间分区并统一编址后映射到哈希环上,每个存储单元分区负责一个特定范围内的地址空间路由以及相应的数据存储,当客户端对区块上的数据进行读写时,通过哈希运算查询区块的存储地址;新增阵列节点时,创建新数据块时将采用新的哈希环进行数据定位和访问。
根据本发明的磁盘阵列横向拓展方法的一实施例,其中,新增阵列节点时,系统中的各个节点通过双向链式同步机制更新系统的节点信息。
根据本发明的磁盘阵列横向拓展方法的一实施例,其中,客户端通过哈希环映射表实现客户端到相应阵列节点的直接快速访问,避免访问过程中的不必要的请求转发操作。应用客户端发起对逻辑卷的读写请求时,首先将该请求转换为对相应数据区块的请求,然后将请求给路由进程,路由进程接到请求后进行哈希运算,定位相应的存储池所包含的区块并派发操作任务,通过存储管理进程将数据写入相应的数据区块。
根据本发明的磁盘阵列横向拓展方法的一实施例,其中,哈希环采用分布式哈希表方法设计,包括:将整个哈希值空间组织成一个虚拟的圆环,用哈希算法将对应的key值哈希到一个桶的环形空间中,将各个虚拟raid参数使用哈希进行哈希运算,设有多个对象,将多个对象通过哈希函数计算出对应的key值,然后通过哈希计算将key值分布在哈希环上;将虚拟raid通过与对象存储时使用的相同的哈希算法将raid映射到哈希环中,然后顺时针方向计算,将所有的对象存储到离自己最近的raid中;当raid出现故障时,则将出现故障的虚拟raid删除;当集群中需要扩容,有新的虚拟raid加入时,通过对应的哈希算法得到KEY值,并映射到哈希环中,通过按照顺时针迁移的规则,将数据被迁移到对应的虚拟raid中。
根据本发明的磁盘阵列横向拓展方法的一实施例,其中,哈希函数的值空间为0-2^32-1,用哈希算法将对应的key值哈希到一个具有2^32个桶的环形空间中,将各个虚拟raid参数使用哈希进行哈希运算。
根据本发明的磁盘阵列横向拓展方法的一实施例,其中,选择虚拟raid的编号作为关键字进行哈希,虚拟raid确定其在哈希环上的位置,定位数据访问到相应虚拟raid。
根据本发明的磁盘阵列横向拓展方法的一实施例,其中,数据区块包括:将RAID划分为四个区域:1)超级快区:位于起始物理位置,用于标记RAID本身关键信息;2)空间位图区:位于超级块区之后,用于存放RAID所有块区索引;3)属性映射区:位于空间位图区之后,,用于存放由快照,克隆能功能产生的附加属性和关系标记信息;4)数据区块区,位于属性映射区之后,用于存放实际的区块数据。
根据本发明的磁盘阵列横向拓展方法的一实施例,其中,超级快区占据64KB空间;空间位图区,占据2M空间;属性映射区占据512M空间;数据区块区,占据所有剩余空间。
根据本发明的磁盘阵列横向拓展方法的一实施例,其中,数据块管理中,当删除逻辑卷时,逻辑卷中所有已分配的数据区块都变成垃圾区块。
本发明的磁盘阵列横向拓展方法,能够将磁盘阵列的高可靠性、安全性与分布式存储系统的高可扩展性、低成本性相结合。
附图说明
图1所示为磁盘阵列示意图;
图2所示为哈希环示意图;
图3所示为哈希算法得到对应的KEY值映射到哈希环中的示意图;
图4所示为raid出现故障时的分布式哈希环算法的哈希环示意图;
图5所示为新的虚拟raid加入时映射到哈希环中的示意图;
图6所示为数据区块管理格式示意图;
图7所示为测试数据结果示意图;
图8所示为数据分布图;
图9所示为多个磁盘阵列通过横向拓展方法组成的实物图;
图10所示为数据写入盘阵系统流程图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
图1所示为磁盘阵列示意图,如图1所示,存储系统在物理层面将磁盘阵列的存储资源划分为数据区块、副本池和阵列节点,将阵列节点的磁盘划分为多个数据区块,数据区块均匀分布在存储池的所有副本池上。多个固定长度的数据区块组成一个逻辑卷,通过算法将所有盘阵中的副本池组织成一个统一的逻辑资源池,通过对象存储协议将逻辑卷映射到客户端,为客户端提供数据的存储服务。由于每个物理磁盘的容量和使用情况不同,为了使数据均匀分布在所有数据区块上,将物理磁盘划分成大小统一的数据区块,多个数据区块组成副本池,副本池的集合就构成了统一的存储资源池。为了解决储池中副本池存储使用率均衡一致的问题,本发明设计了分布式哈希表算法,将所有副本池的地址空间分区并统一编址后映射到哈希环上,每个存储单元分区负责一个特定范围内的地址空间路由以及相应的数据存储,当客户端对区块上的数据进行读写时,通过哈希运算即可查询到相关区块的存储地址,从而实现整个系统数据的存储寻址,哈希环算法能够保证存储池中存储空间使用率均衡一致。系统新增阵列节点时,系统中的各个节点(阵列节点和客户端节点)通过双向链式同步机制更新系统的节点信息,信息更新后,创建新数据块时将采用新的哈希环进行数据定位和访问,实现系统存储资源池的扩容。客户端通过哈希环映射表实现客户端到相应阵列节点的直接快速访问,避免访问过程中的不必要的请求转发操作。应用客户端发起对逻辑卷的读写请求时,首先将该请求转换为对相应数据区块的请求,然后将请求给路由进程,路由进程接到请求后进行哈希运算,定位相应的存储池所包含的区块并派发操作任务,通过存储管理进程将数据写入相应的数据区块。
本发明中横向拓展磁盘阵列的设计包括两个部分,一个是分布式哈希环算法设计,另一个是数据区块管理设计。
分布式哈希表算法设计包括:
图2所示为哈希环示意图,如图2所示,分布式哈希表算法是将整个哈希值空间组织成一个虚拟的圆环,如某哈希函数的值空间为0-2^32-1(即哈希值是一个32位无符号整形),用常用的hash算法将对应的key值哈希到一个具有2^32个桶的环形空间中,将各个虚拟raid参数使用Hash进行哈希运算,具体可以选择虚拟raid的编号作为关键字进行哈希,这样每个虚拟raid就能确定其在哈希环上的位置,定位数据访问到相应虚拟raid。现假设有四个对象,将四个对象通过特定的hash函数计算出对应的key值,然后通过哈希计算将key值分布在哈希环上;图2中,hash(object1)=key1;hash(object2)=key2;hash(object3)=key3;hash(object4)=key4。
图3所示为哈希算法得到对应的KEY值映射到哈希环中的示意图,如图3所示,将虚拟raid通过与对象存储时使用的相同的哈希算法将raid映射到环中,然后顺时针方向计算,将所有的对象存储到离自己最近的raid中。假如现在有raid1,raid2,raid3三个虚拟raid,通过hash算法得到对应的KEY值,映射到环中得到:Hash(raid1)=KEY1;Hash(raid2)=KEY2;Hash(raid3)=KEY3。
图4所示为raid出现故障时的分布式哈希环算法的哈希环示意图,如图4所示,普通的哈希求余算法的缺点在于有虚拟raid加入或者删除时会造成大量的对象存储位置失效,导致对象存储的位置得重新计算,非常耗费系统计算资源。而分布式哈希环算法能有效改善这一问题。而当raid出现故障时,则将出现故障的虚拟raid删除,比如raid2出现问题,则先删除raid2,按照顺时针迁移的规则,object3则会被迁移到raid3中,仅仅是boject3的存储位置发生了变化,而其他的对象没有任何的变动。
图5所示为新的虚拟raid加入时映射到哈希环中的示意图,如图5所示,当集群中需要扩容,有新的虚拟raid4加入时,通过对应的哈希算法得到了KEY4,并映射到环中,通过按照顺时针迁移的规则,object2上的数据被迁移到raid4中,其他对象存储位置不变。
通过以上的分析,分布式哈希环能有效减少节点删除和添加对对象存储位置造成的影响,提高了数据存储的性能和可扩展性。
图6所示为数据区块管理格式示意图,如图6所示,虚拟RAID采用自定义的数据区块管理格式来存放数据区块,I/O发生在数据区块级别,不会产生读写扩大,同时设计高效的垃圾回收机制进行存储空间的动态管理。RAID划分为四个区域:1)超级快区:位于起始物理位置,占据64KB空间,用于标记RAID本身关键信息。2)空间位图区:位于超级块区之后,占据2M空间,用于存放RAID所有块区索引。3)属性映射区:位于空间位图区之后,占据512M空间,用于存放由快照,克隆能功能产生的附加属性和关系标记信息。4)数据区块区,位于属性映射区之后,占据所有剩余空间,用于存放实际的区块数据。
这种自定义的区块管理格式,可以保证数据的安全性,因为它不支持POSIX标准,所以不能被存储系统以外的其他应用直接识别。此格式可以针对特定场景比如小文件随机读写进行相关的优化,进而提升系统的性能和可靠性。另外,相对于使用文件系统(如ext4或xfs)的文件来存储数据区块的方法,这种自定义格式能减少数据区块存储过程的I/O软件路径,极大地提高数据区块的存储管理效率,进而可以设计出针对数据块生命周期特征的动态垃圾回收方法。
虚拟raid上的数据区块构成客户端的逻辑卷,由于逻辑卷具有持久性生命周期的特性,归属于逻辑卷的数据区块也具有生命周期持久性,而传统文件系统的数据块垃圾回收没有针对这种特点的应用场景进行优化,因此,自定义的数据块管理系统采用一种针对数据区块持久性生命周期特点的动态垃圾回收方法:当删除逻辑卷时,此逻辑卷中所有已分配的数据区块都变成垃圾区块,为充分发挥固态盘随机写的优势,对raid中一个逻辑卷的数据区块不需要保存在连续的存储空间,由于数据区块的大小是固定的,分散的垃圾区块回收后无需进行大量的存储空间整理,这样可以提高垃圾回收的效率并避免存储空洞问题造成的空间浪费。过多的分散空间会造成可用空间管理映射的复杂低效,可以采用自适应的可用空间调整策略,实现区块垃圾回收高效和空间映射管理简化两者之间的均衡。
图7所示为测试数据结果示意图,如图7所示,与现有的技术相比,本方案发明的磁盘阵列横向扩展方法能解决磁盘阵列横向拓展带来的大量数据迁移的痛点,性能也能随着阵列节点的增加呈现近线性性能增长。上侧为横向拓展阵列曲线,下侧为传统盘阵曲线,在随着数据量增加的过程,传统的磁盘阵列的系统性能先是逐渐增加到达峰值后,由于系统的计算资源有限,性能会逐渐下降。而通过横向拓展方法组成的磁盘阵列系统性能随着存储的增加呈近线性增长,摆脱了系统性能瓶颈的制约。
分布式哈希环能提高阵列存储扩展性和减少添加阵列节点带来的数据迁移;独特的数据区块管理设计可提升系统对小文件随机读写性能和保证系统数据的存储安全,进而提升系统的性能和可靠性。
图8所示为数据分布图,如图8所示,通过使用横向拓展磁盘阵列方法组成的8盘阵系统中写入72G数据,数据写入阵列存储系统是呈均匀分布的,当系统进行阵列节点横向时,只有少部分的数据会迁移到新的节点上,有效防止了大规模的数据迁移,确保系统提供稳定可靠的数据存储服务。
图9所示为多个磁盘阵列通过横向拓展方法组成的实物图,如图9所示,客户端发出的数据读写请求将会通过交换机发送给到磁盘阵列组成的存储系统,存储系统内部的数据交换和迁移是通过内网进行的,这样业务网和数据网分离,有利于提升存储系统数据读写的性能。
图10所示为数据写入盘阵系统流程图,如图10所示,客户端数据的写入请求会转换成对数据区块的请求,最后通过计算的哈希值,写入到已经映射到哈希环上的对应的虚拟raid中(此处假设虚拟raid数为3个),然后再向客户端返回写入成功的信号。
本发明的磁盘阵列横向拓展方法,能够将磁盘阵列的高可靠性、安全性与分布式存储系统的高可扩展性、低成本性相结合。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (9)

1.一种磁盘阵列横向拓展方法,其特征在于,包括:
存储系统在物理层面将磁盘阵列的存储资源划分为数据区块、副本池和阵列节点,将阵列节点的磁盘划分为多个数据区块,数据区块均匀分布在存储池的所有副本池上;多个固定长度的数据区块组成一个逻辑卷,将所有盘阵中的副本池组织成一个统一的逻辑资源池,通过对象存储协议将逻辑卷映射到客户端,将物理磁盘划分成大小统一的数据区块,多个数据区块组成副本池,副本池的集合构成统一的存储资源池;将所有副本池的地址空间分区并统一编址后映射到哈希环上,每个存储单元分区负责一个特定范围内的地址空间路由以及相应的数据存储,当客户端对区块上的数据进行读写时,通过哈希运算查询区块的存储地址;新增阵列节点时,创建新数据块时将采用新的哈希环进行数据定位和访问。
2.如权利要求1所述的磁盘阵列横向拓展方法,其特征在于,新增阵列节点时,系统中的各个节点通过双向链式同步机制更新系统的节点信息。
3.如权利要求1所述的磁盘阵列横向拓展方法,其特征在于,客户端通过哈希环映射表实现客户端到相应阵列节点的直接快速访问,避免访问过程中的不必要的请求转发操作;应用客户端发起对逻辑卷的读写请求时,首先将该请求转换为对相应数据区块的请求,然后将请求给路由进程,路由进程接到请求后进行哈希运算,定位相应的存储池所包含的区块并派发操作任务,通过存储管理进程将数据写入相应的数据区块。
4.如权利要求1所述的磁盘阵列横向拓展方法,其特征在于,哈希环采用分布式哈希表方法设计,包括:
将整个哈希值空间组织成一个虚拟的圆环,用哈希算法将对应的key值哈希到一个桶的环形空间中,将各个虚拟raid参数使用哈希进行哈希运算,设有多个对象,将多个对象通过哈希函数计算出对应的key值,然后通过哈希计算将key值分布在哈希环上;
将虚拟raid通过与对象存储时使用的相同的哈希算法将raid映射到哈希环中,然后顺时针方向计算,将所有的对象存储到离自己最近的raid中;
当raid出现故障时,则将出现故障的虚拟raid删除;
当集群中需要扩容,有新的虚拟raid加入时,通过对应的哈希算法得到KEY值,并映射到哈希环中,通过按照顺时针迁移的规则,将数据被迁移到对应的虚拟raid中。
5.如权利要求4所述的磁盘阵列横向拓展方法,其特征在于,哈希函数的值空间为0-2^32-1,用哈希算法将对应的key值哈希到一个具有2^32个桶的环形空间中,将各个虚拟raid参数使用哈希进行哈希运算。
6.如权利要求4所述的磁盘阵列横向拓展方法,其特征在于,选择虚拟raid的编号作为关键字进行哈希,虚拟raid确定其在哈希环上的位置,定位数据访问到相应虚拟raid。
7.如权利要求1所述的磁盘阵列横向拓展方法,其特征在于,数据区块包括:
将RAID划分为四个区域:1)超级快区:位于起始物理位置,用于标记RAID本身关键信息;2)空间位图区:位于超级块区之后,用于存放RAID所有块区索引;3)属性映射区:位于空间位图区之后,用于存放由快照,克隆能功能产生的附加属性和关系标记信息;4)数据区块区,位于属性映射区之后,用于存放实际的区块数据。
8.如权利要求7所述的磁盘阵列横向拓展方法,其特征在于,超级快区占据64KB空间;空间位图区,占据2M空间;属性映射区占据512M空间;数据区块区,占据所有剩余空间。
9.如权利要求7所述的磁盘阵列横向拓展方法,其特征在于,数据块管理中,当删除逻辑卷时,逻辑卷中所有已分配的数据区块都变成垃圾区块。
CN201910343799.7A 2019-04-26 2019-04-26 一种磁盘阵列横向拓展方法 Active CN110058822B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910343799.7A CN110058822B (zh) 2019-04-26 2019-04-26 一种磁盘阵列横向拓展方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910343799.7A CN110058822B (zh) 2019-04-26 2019-04-26 一种磁盘阵列横向拓展方法

Publications (2)

Publication Number Publication Date
CN110058822A CN110058822A (zh) 2019-07-26
CN110058822B true CN110058822B (zh) 2022-06-24

Family

ID=67321094

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910343799.7A Active CN110058822B (zh) 2019-04-26 2019-04-26 一种磁盘阵列横向拓展方法

Country Status (1)

Country Link
CN (1) CN110058822B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111338569A (zh) * 2020-02-16 2020-06-26 西安奥卡云数据科技有限公司 一种基于直接映射的对象存储后端优化方法
CN111309263B (zh) * 2020-02-16 2020-11-24 西安奥卡云数据科技有限公司 一种分布式对象存储中的逻辑卷实现方法
CN111552437B (zh) * 2020-04-22 2024-03-15 上海天玑科技股份有限公司 一种应用于分布式存储系统的快照方法及快照装置
CN111756828B (zh) * 2020-06-19 2023-07-14 广东浪潮大数据研究有限公司 一种数据存储方法、装置及设备
CN111831223B (zh) * 2020-06-19 2021-06-11 华中科技大学 提高数据去重系统可扩展性的容错编码方法、装置及系统
CN112000431B (zh) * 2020-08-11 2022-11-29 苏州浪潮智能科技有限公司 一种分布式存储系统的对象存储和读写方法和装置
CN112929424B (zh) * 2021-01-26 2022-11-15 成都佳发安泰教育科技股份有限公司 网关负载均衡的方法、装置、设备及存储介质
CN113885805A (zh) * 2021-10-19 2022-01-04 上海达梦数据库有限公司 一种区块分配方法、装置、设备及存储介质
CN114510379B (zh) * 2022-04-21 2022-11-01 山东百盟信息技术有限公司 一种分布式阵列视频数据存储装置
CN115878046B (zh) * 2023-01-09 2023-05-12 苏州浪潮智能科技有限公司 数据处理方法、系统、装置、存储介质及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241476A (zh) * 2008-01-30 2008-08-13 中国科学院计算技术研究所 一种虚拟存储系统和方法
CN104378447A (zh) * 2014-12-03 2015-02-25 深圳市鼎元科技开发有限公司 一种基于哈希环的非迁移分布式存储方法及系统
CN104484130A (zh) * 2014-12-04 2015-04-01 北京同有飞骥科技股份有限公司 一种横向扩展存储系统的构建方法
CN104636286A (zh) * 2015-02-06 2015-05-20 华为技术有限公司 用于数据访问的方法和设备
CN107391040A (zh) * 2017-07-28 2017-11-24 郑州云海信息技术有限公司 一种存储阵列磁盘io调度的方法及装置
WO2018000993A1 (zh) * 2016-06-29 2018-01-04 华为技术有限公司 一种分布式存储的方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030167295A1 (en) * 2002-03-01 2003-09-04 Verity, Inc. Automatic network load balancing using self-replicating resources

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241476A (zh) * 2008-01-30 2008-08-13 中国科学院计算技术研究所 一种虚拟存储系统和方法
CN104378447A (zh) * 2014-12-03 2015-02-25 深圳市鼎元科技开发有限公司 一种基于哈希环的非迁移分布式存储方法及系统
CN104484130A (zh) * 2014-12-04 2015-04-01 北京同有飞骥科技股份有限公司 一种横向扩展存储系统的构建方法
CN104636286A (zh) * 2015-02-06 2015-05-20 华为技术有限公司 用于数据访问的方法和设备
WO2018000993A1 (zh) * 2016-06-29 2018-01-04 华为技术有限公司 一种分布式存储的方法和系统
CN107391040A (zh) * 2017-07-28 2017-11-24 郑州云海信息技术有限公司 一种存储阵列磁盘io调度的方法及装置

Also Published As

Publication number Publication date
CN110058822A (zh) 2019-07-26

Similar Documents

Publication Publication Date Title
CN110058822B (zh) 一种磁盘阵列横向拓展方法
JP6815378B2 (ja) 分散型ストレージシステム
CN110825748B (zh) 利用差异化索引机制的高性能和易扩展的键值存储方法
US11392544B2 (en) System and method for leveraging key-value storage to efficiently store data and metadata in a distributed file system
CN107943867B (zh) 支持异构存储的高性能层次化存储系统
US9582421B1 (en) Distributed multi-level caching for storage appliances
US8880787B1 (en) Extent metadata update logging and checkpointing
US8799601B1 (en) Techniques for managing deduplication based on recently written extents
CN107391391B (zh) 在固态硬盘的ftl实现数据拷贝的方法、系统及固态硬盘
CN109313538B (zh) 内联去重
WO2019085769A1 (zh) 一种数据分层存储、分层查询方法及装置
US11861204B2 (en) Storage system, memory management method, and management node
KR20170098187A (ko) 저장 서브시스템을 위한 연관적 및 원자적 라이트-백 캐싱 시스템 및 방법
CN105027069A (zh) 卷区域的重复数据删除
US20230053087A1 (en) Data management system and method of controlling
US11061788B2 (en) Storage management method, electronic device, and computer program product
CN110321301A (zh) 一种数据处理的方法及装置
Canim et al. Buffered Bloom Filters on Solid State Storage.
US11755557B2 (en) Flat object storage namespace in an object storage system
CN109739696B (zh) 一种双控存储阵列固态硬盘缓存加速方法
Zhou et al. Hierarchical consistent hashing for heterogeneous object-based storage
CN107133334B (zh) 基于高带宽存储系统的数据同步方法
CN111338569A (zh) 一种基于直接映射的对象存储后端优化方法
CN111274259A (zh) 一种分布式存储系统中存储节点的数据更新方法
US20240070135A1 (en) Hash engine for conducting point queries

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