CN113791893A - 一种基于磁盘分组实现容量均衡的方法及装置 - Google Patents
一种基于磁盘分组实现容量均衡的方法及装置 Download PDFInfo
- Publication number
- CN113791893A CN113791893A CN202110937379.9A CN202110937379A CN113791893A CN 113791893 A CN113791893 A CN 113791893A CN 202110937379 A CN202110937379 A CN 202110937379A CN 113791893 A CN113791893 A CN 113791893A
- Authority
- CN
- China
- Prior art keywords
- disk
- water level
- storage
- disks
- group
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims abstract description 239
- 238000012857 repacking Methods 0.000 claims 1
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种基于磁盘分组实现容量均衡的方法及装置,所述方法步骤如下:根据磁盘水位的高低将磁盘划分为若干磁盘分组,每个磁盘分组对应一个磁盘水位阈值范围;分布式系统接收存储请求后,按照磁盘水位阈值范围由低到高的顺序选择磁盘分组中磁盘进行存储,并确保选定的磁盘处于可用状态,直至完成存储请求的任务;完成存储请求的任务后,再次计算各磁盘水位高低,并重新划分磁盘分组。本发明通过对磁盘水位分组,并对分组设置优先级,从而在业务使用场景中,使用优先级高的低水位磁盘分组内磁盘进行存储,可以均衡磁盘的使用量,合理利用存储空间,进而提高系统可用性和性能,保证集群中磁盘的水位差异在允许范围内,实现容量均衡。
Description
技术领域
本发明属于存储均衡技术领域,具体涉及一种基于磁盘分组实现容量均衡的方法及装置。
背景技术
磁盘水位,指的是磁盘使用率。
在分布式系统中,为了实现系统的高性能、高并发、高可用,在架构中都会进行容量均衡的设计,它是分布式系统的重要特性。容量均衡的好坏直接影响着整个系统的可用性。分布式文件系统有一定数量的磁盘,如何选择磁盘来存储用户的数据,需要一种算法来将每个磁盘的水位差异控制在一定范围内,从而实现整个分布式系统的容量均衡,如果某个磁盘本身水位很高,而其他磁盘处于未使用状态,这时如果IO请求仍然落在该水位高的磁盘上,无疑会很大程度上影响整个存储空间的使用。
现有分布式系统有些采用轮询算法,当有客户端有IO请求时,不管每个节点的当前容量和响应速度的具体情形,而将需要存储的文件依次存储在每个磁盘上。此时,由于文件大小不一样,造成了每个磁盘的水位不一样,轮询算法容易导致磁盘的容量不平衡。
此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种基于磁盘分组实现容量均衡的方法及装置,是非常有必要的。
发明内容
针对现有技术的上述分布式系统需要控制每个磁盘的水位,实现容量均衡,而现有轮询算法不依据每个节点当前容量和响应速度,容易导致磁盘的容量不平衡缺陷,本发明提供一种基于磁盘分组实现容量均衡的方法及装置,以解决上述技术问题。
第一方面,本发明提供一种基于磁盘分组实现容量均衡的方法,包括如下步骤:
S1.根据磁盘水位的高低将磁盘划分为若干磁盘分组,每个磁盘分组对应一个磁盘水位阈值范围;
S2.分布式系统接收存储请求后,按照磁盘水位阈值范围由低到高的顺序选择磁盘分组中磁盘进行存储,并确保选定的磁盘处于可用状态,直至完成存储请求的任务;
S3.完成存储请求的任务后,再次计算各磁盘水位高低,并重新划分磁盘分组。
进一步地,步骤S1具体步骤如下:
S11.根据待分组数量设定对应数量的磁盘水位阈值范围;
S12.获取各磁盘当前的水位,并根据各磁盘水位阈值范围标记各磁盘的水位状态;
S13.将相同水位状态的磁盘ID放入同一个容器数据结构中。磁盘水位为磁盘的使用率,磁盘分组以磁盘水位阈值为依据,每个磁盘分组的水位阈值为一个范围;分布式系统初始化时,获取各磁盘水位,并将处于同一个分组的磁盘ID放置于同一个容器数据结构中。
进一步地,步骤S2具体步骤如下:
S21.分布式系统接收到客户端的IO请求时,存储控制器确定所需磁盘数量、已有磁盘分组数量以及各磁盘分组的水位阈值范围;
S22.将各磁盘分组的水位阈值范围按照由低到高的顺序排列,对应磁盘分组的水位状态依次由低到高;
S23.判断水位状态最低的磁盘分组是否满足所需磁盘数量;
若是,从水位状态最低的磁盘分组中选择所需磁盘数量的磁盘进行存储操作;
若否,从高一级水位状态的磁盘分组中继续选择磁盘,直至满足所需磁盘数量,完成客户端的IO请求。水位状态低的磁盘分组内磁盘使用率低,因此优先选择低水位状态的磁盘分组进行操作,低水位状态的磁盘分组内磁盘数量不足时,再从高水位状态的磁盘分组中选择磁盘。
进一步地,步骤S23具体步骤如下:
S231.定位水位状态最低的磁盘分组;
S232.判断定位磁盘分组是否为空;
若是,进入步骤S237;
若否,进入步骤S233;
S233.在定位磁盘分组的磁盘ID范围内随机选择一个磁盘ID,迭代器指向下一个磁盘ID;
S234.判断选定磁盘ID对应的磁盘是否可用;
若是,将该选定磁盘ID对应磁盘作为存储磁盘,进入步骤S235;
若否,将该选定磁盘ID对应磁盘从定位磁盘分组中删除,进入步骤S236;
S235.判断存储磁盘数量是否达到所需磁盘数量;
若是,根据客户端的IO请求在存储磁盘进行写入和删除数据操作,进入步骤S3;
若否,进入步骤S236;
S236.判断定位磁盘分组内磁盘ID是否均已定位完毕;
若是,进入步骤S237;
若否,在定位磁盘分组内选定下一个磁盘ID,返回步骤S234;
S237.判断定位磁盘分组是否为水位状态最高的磁盘分组;
若是,判定存储空间不足,报错返回,结束;
若否,定位高一级水位状态的磁盘分组,返回步骤S232。同一磁盘分组中使用迭代器指向磁盘ID,保证定位的磁盘ID不同,避免重复选出同一磁盘;选择存储磁盘时需要对定位磁盘进行可用性验证,防止选中的存储磁盘在使用时,无法存储数据。
进一步地,还包括如下步骤:
S4.存储控制器判断是否有磁盘由不可用状态恢复到可用状态;
若是,获取该可用状态恢复的磁盘的水位,与磁盘水位阈值范围比较后,加入磁盘分组,返回步骤S2;
若否,返回步骤S2。
进一步地,步骤S3具体步骤如下:
S31.完成客户端IO请求后,存储控制器更新完成写入或删除数据操作的各存储磁盘当前的水位;
S32.判断是否存在故障的存储磁盘;
若是,进入步骤S35;
若否,进入步骤S33;
S33.根据各磁盘水位阈值范围重新标记各存储磁盘的水位状态;
S34.将相同水位状态的磁盘ID放入同一个容器数据结构中,重新对存储磁盘进行分组,结束;
S35.将故障的存储磁盘标记为不可用状态,并从对应磁盘分组中删除。由于对选中的存储磁盘进行存储操作后,存储磁盘的水位状态发生了改变,需要更新,磁盘水位状态更新后,需要重新划分磁盘分组,以供下次相应客户端的IO请求。
第二方面,本发明提供一种基于磁盘分组实现容量均衡的装置,包括:
磁盘分组模块,用于根据磁盘水位的高低将磁盘划分为若干磁盘分组,每个磁盘分组对应一个磁盘水位阈值范围;
分组存储模块,用于分布式系统接收存储请求后,按照磁盘水位阈值范围由低到高的顺序选择磁盘分组中磁盘进行存储,并确保选定的磁盘处于可用状态,直至完成存储请求的任务;
重新分组模块,用于完成存储请求的任务后,再次计算各磁盘水位高低,并重新划分磁盘分组。
进一步地,磁盘分组模块包括:
水位阈值设定单元,用于根据待分组数量设定对应数量的磁盘水位阈值范围;
水位状态标记单元,用于获取各磁盘当前的水位,并根据各磁盘水位阈值范围标记各磁盘的水位状态;
磁盘分组单元,用于将相同水位状态的磁盘ID放入同一个容器数据结构中。
进一步地,分组存储模块包括:
存储状况获取单元,用于分布式系统接收到客户端的IO请求时,存储控制器确定所需磁盘数量、已有磁盘分组数量以及各磁盘分组的水位阈值范围;
磁盘分组排列单元,用于将各磁盘分组的水位阈值范围按照由低到高的顺序排列,对应磁盘分组的水位状态依次由低到高;
低水位分组磁盘数量判断单元,用于判断水位状态最低的磁盘分组是否满足所需磁盘数量;
存储操作单元,用于当水位状态最低的磁盘分组满足所需磁盘数量,从水位状态最低的磁盘分组中选择所需磁盘数量的磁盘进行存储操作;
磁盘继续选择单元,用于当水位状态最低的磁盘分组部满足所需磁盘数量,从高一级水位状态的磁盘分组中继续选择磁盘,直至满足所需磁盘数量,完成客户端的IO请求。
进一步地,重新分组模块包括:
存储磁盘水位更新单元,用于完成客户端IO请求后,存储控制器更新完成写入或删除数据操作的各存储磁盘当前的水位;
存储磁盘故障判断单元,用于判断是否存在故障的存储磁盘;
存储磁盘水位状态标记单元,用于存在故障的存储磁盘时,根据各磁盘水位阈值范围重新标记各存储磁盘的水位状态;
存储磁盘重新分组单元,用于将相同水位状态的磁盘ID放入同一个容器数据结构中,重新对存储磁盘进行分组,结束;
存储磁盘删除单元,用于存储磁盘故障时,将故障的存储磁盘标记为不可用状态,并从对应磁盘分组中删除。
本发明的有益效果在于,
本发明提供的基于磁盘分组实现容量均衡的装置,通过对磁盘水位进行分组,并对分组设置优先级,从而在业务使用场景中,使用优先级高的低水位磁盘分组内磁盘进行存储,可以均衡磁盘的使用量,合理利用存储空间,进而提高系统可用性和性能,保证集群中磁盘的水位差异在允许范围内,实现容量均衡。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明基于磁盘分组实现容量均衡的方法流程示意图一。
图2是本发明基于磁盘分组实现容量均衡的方法流程示意图二。
图3是本发明基于磁盘分组实现容量均衡的方法流程示意图三。
图4为本发明基于磁盘分组实现容量均衡的装置示意图。
图中,1-磁盘分组模块;1.1-水位阈值设定单元;1.2-水位状态标记单元;1.3-磁盘分组单元;2-分组存储模块;2.1-存储状况获取单元;2.2-磁盘分组排列单元;2.3-低水位分组磁盘数量判断单元;2.4-存储操作单元;2.5-磁盘继续选择单元;3-重新分组模块;3.1-存储磁盘水位更新单元;3.2-存储磁盘故障判断单元;3.3-存储磁盘水位状态标记单元;3.4-存储磁盘重新分组单元;3.5-存储磁盘删除单元。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
实施例1:
如图1所示,本发明提供一种基于磁盘分组实现容量均衡的方法,包括如下步骤:
S1.根据磁盘水位的高低将磁盘划分为若干磁盘分组,每个磁盘分组对应一个磁盘水位阈值范围;
S2.分布式系统接收存储请求后,按照磁盘水位阈值范围由低到高的顺序选择磁盘分组中磁盘进行存储,并确保选定的磁盘处于可用状态,直至完成存储请求的任务;
S3.完成存储请求的任务后,再次计算各磁盘水位高低,并重新划分磁盘分组。
实施例2:
如图1及图2所示,本发明提供一种基于磁盘分组实现容量均衡的方法,包括如下步骤:
S1.根据磁盘水位的高低将磁盘划分为若干磁盘分组,每个磁盘分组对应一个磁盘水位阈值范围;具体步骤如下:
S11.根据待分组数量设定对应数量的磁盘水位阈值范围;
S12.获取各磁盘当前的水位,并根据各磁盘水位阈值范围标记各磁盘的水位状态;
S13.将相同水位状态的磁盘ID放入同一个容器数据结构中;
S2.分布式系统接收存储请求后,按照磁盘水位阈值范围由低到高的顺序选择磁盘分组中磁盘进行存储,并确保选定的磁盘处于可用状态,直至完成存储请求的任务;具体步骤如下:
S21.分布式系统接收到客户端的IO请求时,存储控制器确定所需磁盘数量、已有磁盘分组数量以及各磁盘分组的水位阈值范围;
S22.将各磁盘分组的水位阈值范围按照由低到高的顺序排列,对应磁盘分组的水位状态依次由低到高;
S23.判断水位状态最低的磁盘分组是否满足所需磁盘数量;
若是,从水位状态最低的磁盘分组中选择所需磁盘数量的磁盘进行存储操作;
若否,从高一级水位状态的磁盘分组中继续选择磁盘,直至满足所需磁盘数量,完成客户端的IO请求;
S3.完成存储请求的任务后,再次计算各磁盘水位高低,并重新划分磁盘分组;具体步骤如下:
S31.完成客户端IO请求后,存储控制器更新完成写入或删除数据操作的各存储磁盘当前的水位;
S32.判断是否存在故障的存储磁盘;
若是,进入步骤S35;
若否,进入步骤S33;
S33.根据各磁盘水位阈值范围重新标记各存储磁盘的水位状态;
S34.将相同水位状态的磁盘ID放入同一个容器数据结构中,重新对存储磁盘进行分组,结束;
S35.将故障的存储磁盘标记为不可用状态,并从对应磁盘分组中删除。
实施例3:
如图1、图2及图3所示,本发明提供一种基于磁盘分组实现容量均衡的方法,包括如下步骤:
S1.根据磁盘水位的高低将磁盘划分为若干磁盘分组,每个磁盘分组对应一个磁盘水位阈值范围;具体步骤如下:
S11.根据待分组数量设定对应数量的磁盘水位阈值范围;
S12.获取各磁盘当前的水位,并根据各磁盘水位阈值范围标记各磁盘的水位状态;
S13.将相同水位状态的磁盘ID放入同一个容器数据结构中;
S2.分布式系统接收存储请求后,按照磁盘水位阈值范围由低到高的顺序选择磁盘分组中磁盘进行存储,并确保选定的磁盘处于可用状态,直至完成存储请求的任务;具体步骤如下:
S21.分布式系统接收到客户端的IO请求时,存储控制器确定所需磁盘数量、已有磁盘分组数量以及各磁盘分组的水位阈值范围;
S22.将各磁盘分组的水位阈值范围按照由低到高的顺序排列,对应磁盘分组的水位状态依次由低到高;
S23.判断水位状态最低的磁盘分组是否满足所需磁盘数量;
若是,从水位状态最低的磁盘分组中选择所需磁盘数量的磁盘进行存储操作;
若否,从高一级水位状态的磁盘分组中继续选择磁盘,直至满足所需磁盘数量,完成客户端的IO请求;
步骤S23具体步骤如下:
S231.定位水位状态最低的磁盘分组;
S232.判断定位磁盘分组是否为空;
若是,进入步骤S237;
若否,进入步骤S233;
S233.在定位磁盘分组的磁盘ID范围内随机选择一个磁盘ID,迭代器指向下一个磁盘ID;
S234.判断选定磁盘ID对应的磁盘是否可用;
若是,将该选定磁盘ID对应磁盘作为存储磁盘,进入步骤S235;
若否,将该选定磁盘ID对应磁盘从定位磁盘分组中删除,进入步骤S236;
S235.判断存储磁盘数量是否达到所需磁盘数量;
若是,根据客户端的IO请求在存储磁盘进行写入和删除数据操作,进入步骤S3;
若否,进入步骤S236;
S236.判断定位磁盘分组内磁盘ID是否均已定位完毕;
若是,进入步骤S237;
若否,在定位磁盘分组内选定下一个磁盘ID,返回步骤S234;
S237.判断定位磁盘分组是否为水位状态最高的磁盘分组;
若是,判定存储空间不足,报错返回,结束;
若否,定位高一级水位状态的磁盘分组,返回步骤S232;
S3.完成存储请求的任务后,再次计算各磁盘水位高低,并重新划分磁盘分组;具体步骤如下:
S31.完成客户端IO请求后,存储控制器更新完成写入或删除数据操作的各存储磁盘当前的水位;
S32.判断是否存在故障的存储磁盘;
若是,进入步骤S35;
若否,进入步骤S33;
S33.根据各磁盘水位阈值范围重新标记各存储磁盘的水位状态;
S34.将相同水位状态的磁盘ID放入同一个容器数据结构中,重新对存储磁盘进行分组,结束;
S35.将故障的存储磁盘标记为不可用状态,并从对应磁盘分组中删除。
在上述实施例3中,还包括如步骤:
S4.存储控制器判断是否有磁盘由不可用状态恢复到可用状态;
若是,获取该可用状态恢复的磁盘的水位,与磁盘水位阈值范围比较后,加入磁盘分组,返回步骤S2;
若否,返回步骤S2。
在上述实施例3中,以磁盘待分组数量三个为例,对应磁盘分组的水位状态为低水位状态、中水位状态和高水位状态;
当分布式系统接收到客户端的IO请求时,存储控制器确定所需磁盘数量;
首先查询低水位状态的磁盘分组是否为空,若不为空,则从低水位状态磁盘分组中选择一个磁盘ID,迭代器指向下一个磁盘ID;再判断选择磁盘ID对应定位磁盘是否可用,若可用,说明该定位磁盘在分布式系统的集群中正常工作,若不可用,说明该定位磁盘在分布式系统的集群中不工作;
如果定位磁盘不可用,则将该定位磁盘从低水位状态的磁盘分组中删除,继续从低水位状态的磁盘分组中随机选择下一个磁盘,移动迭代器指向下一个磁盘ID;如果定位磁盘时可用状态,将该定位磁盘设为存储磁盘,并判断存储磁盘是否达到所需磁盘数量,若没有达到所需磁盘数量,继续在低水位状态磁盘分组中选择另外的磁盘;
如果低水位状态磁盘分组中的磁盘数量为0,则依次从中水位状态的磁盘分组中随机选择一个磁盘ID,迭代器指向下一个磁盘ID;然后判断选择磁盘ID对应的定位磁盘是否可用;若定位磁盘不可用,将其从中水位状态的磁盘分组中删除,继续从中水位状态的磁盘分组中选择下一个磁盘,移动迭代器指向下一个磁盘ID;如果定位磁盘是可用状态,将该定位磁盘设为存储磁盘,并判断存储磁盘是否达到所需磁盘数量,若没有达到所需磁盘数量,继续在中水位状态磁盘分组中选择另外的磁盘;
如果中水位状态磁盘分组中的磁盘数量为0,则依次从高水位状态的磁盘分组中随机选择一个磁盘ID,迭代器指向下一个磁盘ID;然后判断选择磁盘ID对应的定位磁盘是否可用;若定位磁盘不可用,将其从高水位状态的磁盘分组中删除,继续从高水位状态的磁盘分组中选择下一个磁盘,移动迭代器指向下一个磁盘ID;如果定位磁盘是可用状态,将该定位磁盘设为存储磁盘,并判断存储磁盘是否达到所需磁盘数量,若没有达到所需磁盘数量,继续在高水位状态磁盘分组中选择另外的磁盘;
如果高水位状态磁盘分组中磁盘数量为0,说明存储空间不足,报错返回;
而当成功完成写入数据后,需要将存储磁盘实时水位与低水位状态、中水位状态和高水位状态的阈值范围进行比较,重新将存储磁盘划分到三个分组中;
同时还要对分布式系统中处于不可用状态的磁盘进行监控,当该部分磁盘由不可用状态恢复到可用状态时,需要及时将其水位状态与三个水位阈值范围见比较,分到对应的磁盘分组中。
实施例4:
如图3所示,本发明提供一种基于磁盘分组实现容量均衡的装置,包括:
磁盘分组模块1,用于根据磁盘水位的高低将磁盘划分为若干磁盘分组,每个磁盘分组对应一个磁盘水位阈值范围;磁盘分组模块1包括:
水位阈值设定单元1.1,用于根据待分组数量设定对应数量的磁盘水位阈值范围;
水位状态标记单元1.2,用于获取各磁盘当前的水位,并根据各磁盘水位阈值范围标记各磁盘的水位状态;
磁盘分组单元1.3,用于将相同水位状态的磁盘ID放入同一个容器数据结构中;
分组存储模块2,用于分布式系统接收存储请求后,按照磁盘水位阈值范围由低到高的顺序选择磁盘分组中磁盘进行存储,并确保选定的磁盘处于可用状态,直至完成存储请求的任务;分组存储模块2包括:
存储状况获取单元2.1,用于分布式系统接收到客户端的IO请求时,存储控制器确定所需磁盘数量、已有磁盘分组数量以及各磁盘分组的水位阈值范围;
磁盘分组排列单元2.2,用于将各磁盘分组的水位阈值范围按照由低到高的顺序排列,对应磁盘分组的水位状态依次由低到高;
低水位分组磁盘数量判断单元2.3,用于判断水位状态最低的磁盘分组是否满足所需磁盘数量;
存储操作单元2.4,用于当水位状态最低的磁盘分组满足所需磁盘数量,从水位状态最低的磁盘分组中选择所需磁盘数量的磁盘进行存储操作;
磁盘继续选择单元2.5,用于当水位状态最低的磁盘分组部满足所需磁盘数量,从高一级水位状态的磁盘分组中继续选择磁盘,直至满足所需磁盘数量,完成客户端的IO请求;磁盘继续选择单元2.5包括:
最低水位磁盘分组定位子单元,用于定位水位状态最低的磁盘分组;
空磁盘分组判断子单元,用于判断定位磁盘分组是否为空;
磁盘ID选择子单元,用于定位磁盘分组不为空时,在定位磁盘分组的磁盘ID范围内随机选择一个磁盘ID,迭代器指向下一个磁盘ID;
磁盘可用判断子单元,用于判断选定磁盘ID对应的磁盘是否可用;
存储磁盘设定子单元,用于当选定磁盘ID对应的磁盘可用时,将该选定磁盘ID对应磁盘作为存储磁盘;
磁盘删除子单元,用于当选定磁盘ID对应的磁盘不可用时,将该选定磁盘ID对应磁盘从定位磁盘分组中删除;
磁盘数量判断子单元,用于判断存储磁盘数量是否达到所需磁盘数量;
存储操作子单元,用于存储磁盘数量达到所需磁盘数量时,根据客户端的IO请求在存储磁盘进行写入和删除数据操作;
磁盘ID定位判断子单元,用于定位磁盘分组为空或者存储磁盘数量未达到所需磁盘数量时,判断定位磁盘分组内磁盘ID是否均已定位完毕;
下一磁盘定位子单元,用于在定位磁盘分组内磁盘ID未定位完毕时,在定位磁盘分组内选定下一个磁盘ID;
磁盘分组最高水位判断子单元,用于当定位磁盘分组内磁盘ID定位完毕时,判断定位磁盘分组是否为水位状态最高的磁盘分组;
存储空间不足判定子单元,用于当定位磁盘分组为水位状态最高的磁盘分组时,判定存储空间不足,报错返回,结束;
下一磁盘分组定位子单元,用于当定位磁盘分组不是水位状态最高的磁盘分组时,定位高一级水位状态的磁盘分组;
重新分组模块3,用于完成存储请求的任务后,再次计算各磁盘水位高低,并重新划分磁盘分组;重新分组模块3包括:
存储磁盘水位更新单元3.1,用于完成客户端IO请求后,存储控制器更新完成写入或删除数据操作的各存储磁盘当前的水位;
存储磁盘故障判断单元3.2,用于判断是否存在故障的存储磁盘;
存储磁盘水位状态标记单元3.3,用于存在故障的存储磁盘时,根据各磁盘水位阈值范围重新标记各存储磁盘的水位状态;
存储磁盘重新分组单元3.4,用于将相同水位状态的磁盘ID放入同一个容器数据结构中,重新对存储磁盘进行分组,结束;
存储磁盘删除单元3.5,用于存储磁盘故障时,将故障的存储磁盘标记为不可用状态,并从对应磁盘分组中删除。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种基于磁盘分组实现容量均衡的方法,其特征在于,包括如下步骤:
S1.根据磁盘水位的高低将磁盘划分为若干磁盘分组,每个磁盘分组对应一个磁盘水位阈值范围;
S2.分布式系统接收存储请求后,按照磁盘水位阈值范围由低到高的顺序选择磁盘分组中磁盘进行存储,并确保选定的磁盘处于可用状态,直至完成存储请求的任务;
S3.完成存储请求的任务后,再次计算各磁盘水位高低,并重新划分磁盘分组。
2.如权利要求1所述的基于磁盘分组实现容量均衡的方法,其特征在于,步骤S1具体步骤如下:
S11.根据待分组数量设定对应数量的磁盘水位阈值范围;
S12.获取各磁盘当前的水位,并根据各磁盘水位阈值范围标记各磁盘的水位状态;
S13.将相同水位状态的磁盘ID放入同一个容器数据结构中。
3.如权利要求2所述的基于磁盘分组实现容量均衡的方法,其特征在于,步骤S2具体步骤如下:
S21.分布式系统接收到客户端的IO请求时,存储控制器确定所需磁盘数量、已有磁盘分组数量以及各磁盘分组的水位阈值范围;
S22.将各磁盘分组的水位阈值范围按照由低到高的顺序排列,对应磁盘分组的水位状态依次由低到高;
S23.判断水位状态最低的磁盘分组是否满足所需磁盘数量;
若是,从水位状态最低的磁盘分组中选择所需磁盘数量的磁盘进行存储操作;
若否,从高一级水位状态的磁盘分组中继续选择磁盘,直至满足所需磁盘数量,完成客户端的IO请求。
4.如权利要求3所述的基于磁盘分组实现容量均衡的方法,其特征在于,步骤S23具体步骤如下:
S231.定位水位状态最低的磁盘分组;
S232.判断定位磁盘分组是否为空;
若是,进入步骤S237;
若否,进入步骤S233;
S233.在定位磁盘分组的磁盘ID范围内随机选择一个磁盘ID,迭代器指向下一个磁盘ID;
S234.判断选定磁盘ID对应的磁盘是否可用;
若是,将该选定磁盘ID对应磁盘作为存储磁盘,进入步骤S235;
若否,将该选定磁盘ID对应磁盘从定位磁盘分组中删除,进入步骤S236;
S235.判断存储磁盘数量是否达到所需磁盘数量;
若是,根据客户端的IO请求在存储磁盘进行写入和删除数据操作,进入步骤S3;
若否,进入步骤S236;
S236.判断定位磁盘分组内磁盘ID是否均已定位完毕;
若是,进入步骤S237;
若否,在定位磁盘分组内选定下一个磁盘ID,返回步骤S234;
S237.判断定位磁盘分组是否为水位状态最高的磁盘分组;
若是,判定存储空间不足,报错返回,结束;
若否,定位高一级水位状态的磁盘分组,返回步骤S232。
5.如权利要求4所述的基于磁盘分组实现容量均衡的方法,其特征在于,还包括如下步骤:
S4.存储控制器判断是否有磁盘由不可用状态恢复到可用状态;
若是,获取该可用状态恢复的磁盘的水位,与磁盘水位阈值范围比较后,加入磁盘分组,返回步骤S2;
若否,返回步骤S2。
6.如权利要求4所述的基于磁盘分组实现容量均衡的方法,其特征在于,步骤S3具体步骤如下:
S31.完成客户端IO请求后,存储控制器更新完成写入或删除数据操作的各存储磁盘当前的水位;
S32.判断是否存在故障的存储磁盘;
若是,进入步骤S35;
若否,进入步骤S33;
S33.根据各磁盘水位阈值范围重新标记各存储磁盘的水位状态;
S34.将相同水位状态的磁盘ID放入同一个容器数据结构中,重新对存储磁盘进行分组,结束;
S35.将故障的存储磁盘标记为不可用状态,并从对应磁盘分组中删除。
7.一种基于磁盘分组实现容量均衡的装置,其特征在于,包括:
磁盘分组模块(1),用于根据磁盘水位的高低将磁盘划分为若干磁盘分组,每个磁盘分组对应一个磁盘水位阈值范围;
分组存储模块(2),用于分布式系统接收存储请求后,按照磁盘水位阈值范围由低到高的顺序选择磁盘分组中磁盘进行存储,并确保选定的磁盘处于可用状态,直至完成存储请求的任务;
重新分组模块(3),用于完成存储请求的任务后,再次计算各磁盘水位高低,并重新划分磁盘分组。
8.如权利要求7所述的基于磁盘分组实现容量均衡的装置,其特征在于,磁盘分组模块(1)包括:
水位阈值设定单元(1.1),用于根据待分组数量设定对应数量的磁盘水位阈值范围;
水位状态标记单元(1.2),用于获取各磁盘当前的水位,并根据各磁盘水位阈值范围标记各磁盘的水位状态;
磁盘分组单元(1.3),用于将相同水位状态的磁盘ID放入同一个容器数据结构中。
9.如权利要求8所述的基于磁盘分组实现容量均衡的装置,其特征在于,分组存储模块(2)包括:
存储状况获取单元(2.1),用于分布式系统接收到客户端的IO请求时,存储控制器确定所需磁盘数量、已有磁盘分组数量以及各磁盘分组的水位阈值范围;
磁盘分组排列单元(2.2),用于将各磁盘分组的水位阈值范围按照由低到高的顺序排列,对应磁盘分组的水位状态依次由低到高;
低水位分组磁盘数量判断单元(2.3),用于判断水位状态最低的磁盘分组是否满足所需磁盘数量;
存储操作单元(2.4),用于当水位状态最低的磁盘分组满足所需磁盘数量,从水位状态最低的磁盘分组中选择所需磁盘数量的磁盘进行写入或删除数据操作;
磁盘继续选择单元(2.5),用于当水位状态最低的磁盘分组部满足所需磁盘数量,从高一级水位状态的磁盘分组中继续选择磁盘,直至满足所需磁盘数量,完成客户端的IO请求。
10.如权利要求9所述的基于磁盘分组实现容量均衡的装置,其特征在于,重新分组模块(3)包括:
存储磁盘水位更新单元(3.1),用于完成客户端IO请求后,存储控制器更新完成写入或删除数据操作的各存储磁盘当前的水位;
存储磁盘故障判断单元(3.2),用于判断是否存在故障的存储磁盘;
存储磁盘水位状态标记单元(3.3),用于存在故障的存储磁盘时,根据各磁盘水位阈值范围重新标记各存储磁盘的水位状态;
存储磁盘重新分组单元(3.4),用于将相同水位状态的磁盘ID放入同一个容器数据结构中,重新对存储磁盘进行分组,结束;
存储磁盘删除单元(3.5),用于存储磁盘故障时,将故障的存储磁盘标记为不可用状态,并从对应磁盘分组中删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110937379.9A CN113791893A (zh) | 2021-08-16 | 2021-08-16 | 一种基于磁盘分组实现容量均衡的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110937379.9A CN113791893A (zh) | 2021-08-16 | 2021-08-16 | 一种基于磁盘分组实现容量均衡的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113791893A true CN113791893A (zh) | 2021-12-14 |
Family
ID=79181777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110937379.9A Pending CN113791893A (zh) | 2021-08-16 | 2021-08-16 | 一种基于磁盘分组实现容量均衡的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113791893A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114489515A (zh) * | 2022-02-11 | 2022-05-13 | 北京中电兴发科技有限公司 | 一种基于流存储的数据写入方法 |
-
2021
- 2021-08-16 CN CN202110937379.9A patent/CN113791893A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114489515A (zh) * | 2022-02-11 | 2022-05-13 | 北京中电兴发科技有限公司 | 一种基于流存储的数据写入方法 |
CN114489515B (zh) * | 2022-02-11 | 2022-08-16 | 北京中电兴发科技有限公司 | 一种基于流存储的数据写入方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107844269B (zh) | 一种基于一致性哈希的分层混合存储系统 | |
US10496627B2 (en) | Consistent ring namespaces facilitating data storage and organization in network infrastructures | |
CN104317742A (zh) | 一种优化空间管理的自动精简配置方法 | |
CN103929454A (zh) | 一种云计算平台中负载均衡存储的方法和系统 | |
CN107463342B (zh) | 一种cdn边缘节点文件的存储方法及装置 | |
CN106095589B (zh) | 一种分配分区的方法、装置及系统 | |
CN103761190B (zh) | 数据处理方法及装置 | |
CN106708653B (zh) | 一种基于纠删码与多副本的混合税务大数据安全保护方法 | |
CN104035925B (zh) | 数据存储方法、装置和存储系统 | |
CN102857554A (zh) | 基于分布式存储系统进行数据冗余处理方法 | |
CN110046160B (zh) | 一种基于条带的一致性哈希存储系统构建方法 | |
CN104636349A (zh) | 一种索引数据压缩以及索引数据搜索的方法和设备 | |
CN109783564A (zh) | 支持多节点的分布式缓存方法及设备 | |
CN113791893A (zh) | 一种基于磁盘分组实现容量均衡的方法及装置 | |
CN111309245B (zh) | 一种分层存储写入方法和装置、读取方法和装置及系统 | |
CN106960011A (zh) | 分布式文件系统元数据管理系统及方法 | |
CN104580381A (zh) | 一种在多节点网络中执行作业任务的方法 | |
CN113655969A (zh) | 一种基于流式分布式存储系统的数据均衡存储方法 | |
CN102970349B (zh) | 一种dht网络的存储负载均衡方法 | |
CN107908713B (zh) | 一种基于Redis集群的分布式动态杜鹃过滤系统及其过滤方法 | |
CN117520278A (zh) | 一种分布式文件系统多客户端高精度目录配额控制方法 | |
CN110658994B (zh) | 一种基于hdd和ssd混合磁盘阵列的数据处理方法及装置 | |
CN104052611B (zh) | 一种云存储系统数据可用性维护方法及其装置 | |
CN113051428A (zh) | 一种摄像机前端存储备份的方法及装置 | |
CN110413229A (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 |