CN113268203A - 存储系统的容量均衡方法、装置、计算机设备和存储介质 - Google Patents
存储系统的容量均衡方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113268203A CN113268203A CN202110539357.7A CN202110539357A CN113268203A CN 113268203 A CN113268203 A CN 113268203A CN 202110539357 A CN202110539357 A CN 202110539357A CN 113268203 A CN113268203 A CN 113268203A
- Authority
- CN
- China
- Prior art keywords
- disk
- disks
- pool
- logical
- capacity
- 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.)
- Granted
Links
Images
Classifications
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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
-
- 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]
-
- 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/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种存储系统的容量均衡方法、装置、计算机设备和存储介质。方法包括:获取存储系统中每一磁盘池中每一磁盘的磁盘使用率;其中,磁盘池中的每一磁盘包括至少一个逻辑盘;根据磁盘池中每一磁盘的磁盘使用率,确定出每一磁盘池的磁盘平均使用率;在磁盘平均使用率小于预设阈值的情况下,对磁盘池中的逻辑盘进行逻辑盘个数均衡。可以使磁盘池中的逻辑盘个数达到均衡状态,使得存储系统中磁盘的覆盖更为均匀,能有效避免部分磁盘先被写满的情况,避免数据写入带宽下降的问题。
Description
技术领域
本申请涉及云存储技术领域,特别是涉及一种存储系统的容量均衡方法、装置、计算机设备和存储介质。
背景技术
随着互联网技术的发展,产生了大量的需要保存的数据,由此出现了提供数据存储服务的云存储技术。通过云存储技术,可以对大量数据进行快速的存储和提取。在存储系统搭建完成后,会按照存储节点将存储数据写入到不同的磁盘中。
在存储数据的写入过程中,由于每个磁盘接收到的数据的大小不可能完全一致,会出现磁盘与磁盘之间的覆盖不均衡的情况,最终导致存储系统中的部分磁盘还具有大量的可用空间,而部分磁盘被写满。
然而,被写满的磁盘无法接收和存储新的数据,会导致数据写入带宽下降,数据写入效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高数据写入带宽的存储系统的容量均衡方法、装置、计算机设备和存储介质。
一种存储系统的容量均衡方法,所述方法包括:
获取存储系统中每一磁盘池中每一磁盘的磁盘使用率;其中,所述磁盘池中的每一磁盘包括至少一个逻辑盘;
根据所述磁盘池中每一磁盘的磁盘使用率,确定出每一所述磁盘池的磁盘平均使用率;
在所述磁盘平均使用率小于预设阈值的情况下,对所述磁盘池中的逻辑盘进行逻辑盘个数均衡。
在其中一个实施例中,所述对所述磁盘池中的逻辑盘进行逻辑盘个数均衡,包括:
对于所述磁盘池中的每一磁盘,将所述磁盘中已使用的逻辑盘作为所述磁盘的目标逻辑盘;
获取每一所述磁盘的目标逻辑盘个数与其他磁盘的目标逻辑盘个数之间的差值,得到逻辑盘个数差值;
在所述逻辑盘个数差值存在大于预设数值的情况下,对所述磁盘池中的逻辑盘进行逻辑盘个数均衡。
在其中一个实施例中,所述对所述磁盘池中的逻辑盘进行逻辑盘个数均衡,包括:
根据所述存储系统中的磁盘数量以及预设的任务数量与磁盘数量之间的比例关系,确定出进行逻辑盘个数均衡处理的任务数量;
按照所述任务数量,对所述磁盘池中的逻辑盘存储的内容进行迁移,以使所述磁盘池中的逻辑盘个数达到均衡。
在其中一个实施例中,所述按照所述任务数量,对所述磁盘池中的逻辑盘存储的内容进行迁移,包括:
获取所述磁盘池中的目标逻辑盘个数的均值;
根据每一所述磁盘的目标逻辑盘个数、所述目标逻辑盘个数的均值,确定出所述磁盘的逻辑盘期望迁移个数;
按照所述任务数量和所述逻辑盘期望迁移个数,对所述磁盘池中的逻辑盘存储的内容进行迁移。
在其中一个实施例中,所述在所述磁盘平均使用率小于预设阈值的情况下,对所述磁盘池中的逻辑盘进行逻辑盘个数均衡之前,包括:
在所述磁盘平均使用率小于所述预设阈值的情况下,获取所述存储系统中每一磁盘池的磁盘池使用率;
确定出每一所述磁盘池的磁盘池使用率与其他磁盘池的磁盘池使用率之间的差值,得到磁盘池使用率差值;
在所述磁盘池使用率中的最大值大于第一阈值,或所述磁盘池使用率差值存在大于第二阈值的情况下,对所述存储系统中的磁盘池进行磁盘池间的容量均衡。
在其中一个实施例中,所述对所述存储系统中的磁盘池进行磁盘池间的容量均衡,包括:
根据所述磁盘池使用率、所述磁盘池使用率的平均值和磁盘池容量,得到所述磁盘池的期望迁移容量;
根据所述磁盘池的期望迁移容量,对所述存储系统中的磁盘池存储的内容进行迁移,以使所述存储系统中的磁盘池的容量达到均衡。
在其中一个实施例中,所述方法还包括:
在所述磁盘平均使用率大于或等于所述预设阈值的情况下,对所述磁盘池中的磁盘进行磁盘间的容量均衡。
在其中一个实施例中,所述对所述磁盘池中的磁盘进行磁盘间的容量均衡,包括:
确定出每一所述磁盘的磁盘使用率与其他磁盘的磁盘使用率之间的磁盘使用率差值;
在所述磁盘使用率中的最大值大于第三阈值,或所述磁盘使用率差值存在大于第四阈值的情况下,对所述磁盘池中的磁盘进行磁盘间的容量均衡。
在其中一个实施例中,所述对所述磁盘池中的磁盘进行磁盘间的容量均衡,包括:
根据所述磁盘使用率、所述磁盘使用率的平均值和磁盘容量,得到所述磁盘的期望迁移容量;
根据所述磁盘的期望迁移容量,对所述磁盘池中的磁盘存储的内容进行迁移,以使所述磁盘池中的磁盘的容量达到均衡。
一种存储系统的容量均衡装置,所述装置包括:
数据获取模块,用于获取存储系统中每一磁盘池中每一磁盘的磁盘使用率;其中,所述磁盘池中的每一磁盘包括至少一个逻辑盘;
数据处理模块,用于根据所述磁盘池中每一磁盘的磁盘使用率,确定出每一所述磁盘池的磁盘平均使用率;
容量均衡模块,用于在所述磁盘平均使用率小于预设阈值的情况下,对所述磁盘池中的逻辑盘进行逻辑盘个数均衡。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项实施例所述的方法。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项实施例所述的方法。
上述存储系统的容量均衡方法、装置、计算机设备和存储介质,通过获取存储系统中每一磁盘池中每一磁盘的磁盘使用率,并根据磁盘池中每一磁盘的磁盘使用率,确定出每一磁盘池的磁盘平均使用率,在磁盘平均使用率小于预设阈值的情况下,对磁盘池中的逻辑盘进行逻辑盘个数均衡,可以使磁盘池中的逻辑盘个数达到均衡状态,使得存储系统中磁盘的覆盖更为均匀,能有效避免部分磁盘先被写满的情况,避免数据写入带宽下降的问题。
附图说明
图1为一个实施例中存储系统的容量均衡方法的流程示意图;
图2为一个实施例中步骤S200的一种可实施方式的流程示意图;
图3为一个实施例中步骤S230的一种可实施方式的流程示意图;
图4为一个实施例中迁出迁入盘查找的示意图;
图5为一个实施例中磁盘池间的容量均衡方法的流程示意图;
图6为一个实施例中步骤S203的一种可实施方式的流程示意图;
图7为一个实施例中步骤S300的一种可实施方式的流程示意图;
图8为一个实施例中步骤S320的一种可实施方式的流程示意图;
图9为一个实施例中存储系统的容量均衡装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种存储系统的容量均衡方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
步骤S100,获取存储系统中每一磁盘池中每一磁盘的磁盘使用率。
其中,存储系统包括至少一个磁盘池,磁盘池中的每一磁盘包括至少一个逻辑盘。存储系统为能提供存储服务的系统,例如云存储系统。磁盘使用信息率指存储系统中的每一磁盘的使用容量与磁盘容量的比值。
具体地,在存储系统搭建完毕后,一直在接收并存储需要存储的数据,存储系统中的磁盘使用率也一直在变化。在进行存储系统的容量均衡时,需要获取存储系统中每一磁盘池中每一磁盘的磁盘使用率。
步骤S200,根据磁盘池中每一磁盘的磁盘使用率,确定出每一磁盘池的磁盘平均使用率。
具体地,根据一个磁盘池中所有磁盘的磁盘使用率和该磁盘池中的磁盘数量,确定出该磁盘池的磁盘平均使用率。
步骤S300,在磁盘平均使用率小于预设阈值的情况下,对磁盘池中的逻辑盘进行逻辑盘个数均衡。
其中,逻辑盘是指从磁盘中划分出的存储数据的最小单元,逻辑盘个数均衡可以使得存储系统中磁盘的覆盖更为均匀,能避免数据写入带宽下降的问题。预设阈值是指判定存储系统容量高低的临界值,在磁盘平均使用率小于预设阈值时,认为存储系统的容量较低,此时,为使存储系统的存储状态更加均衡,需要进行逻辑盘个数的均衡,以使存储系统中磁盘的覆盖更为均匀,避免数据写入带宽下降的问题。可选地,预设阈值可以是50%、55%、60%不等。
具体地,对于每一磁盘池,在磁盘平均使用率小于预设阈值的情况下,认为存储系统的整体存储状态为低容量状态,为使存储系统中的各个磁盘池、磁盘的存储状态更加均衡,需要对磁盘池中的逻辑盘进行逻辑盘个数均衡。
上述存储系统的容量均衡方法,通过获取存储系统中每一磁盘池中每一磁盘的磁盘使用率,并根据磁盘池中每一磁盘的磁盘使用率,确定出每一磁盘池的磁盘平均使用率,在磁盘平均使用率小于预设阈值的情况下,对磁盘池中的逻辑盘进行逻辑盘个数均衡,可以使磁盘池中的逻辑盘个数达到均衡状态,使得存储系统中磁盘的覆盖更为均匀,能有效避免部分磁盘先被写满的情况,避免数据写入带宽下降的问题。
在一个实施例中,在进行逻辑盘个数均衡、磁盘池间的容量均衡和磁盘间的容量均衡之前,需要获取存储系统的磁盘使用信息,具体包括:
依次遍历各个磁盘池,统计每个磁盘中存储的数据占有的有效容量disk_valid_cap,以及磁盘的总容量disk_total_cap,并根据磁盘使用的容量信息,计算磁盘池、磁盘的相关参数:(1)磁盘使用率:磁盘使用率为该磁盘存储数据的有效容量与磁盘总容量比值,disk_ratio=disk_valid_cap/disk_total_cap。(2)磁盘的平均使用率:磁盘平均使用率指所有介质类型、存储类型相同的磁盘池中的磁盘的平均使用率,即所有相同类型磁盘使用率之和与磁盘数量的比值,disk_ratio_avg=∑disk_ratio/disknr。(3)磁盘最大使用率:所有介质类型、存储类型相同的磁盘池中磁盘的最大使用率,disk_ratio_max。(4)磁盘使用率最大差值:所有介质类型、存储类型相同的磁盘池中,磁盘最大使用率与最小使用率差值,disk_radio_diff。(5)磁盘使用率警戒值:根据磁盘平均使用率disk_ratio_avg确定磁盘均衡警戒线,disk_ratio_warn。(6)磁盘池容量:磁盘池中所有磁盘容量之和,grp_total_cap=∑disk_ratio。(7)磁盘池使用率:磁盘池使用率指该磁盘池中所有磁盘使用率的平均值,grp_ratio=disk_ratio(in_grp)/disknr。(8)磁盘池最大使用率:所有介质类型、存储类型相同的磁盘池中,磁盘池使用率的最大值,grp_ratio_max。(9)磁盘池使用率差值:所有介质类型、存储类型相同的磁盘池中,磁盘池最大使用率与最小使用率差值,grp_ratio_diff。(10)磁盘池平均使用率:所有介质类型、存储类型相同的磁盘池的使用率的平均值,grp_ratio_avg=∑grp_ratio/grpnr。(11)磁盘池使用率警戒值:根据磁盘平均使用率disk_ratio_avg确定磁盘池均衡警戒线,grp_ratio_warn;(12)磁盘池中磁盘平均使用率,该磁盘池中所有磁盘使用率的平均值,grp_disk_ratio_avg。
在一个实施例中,如图2所示,为步骤S200的一种可实施方式的流程示意图,具体包括以下步骤:
步骤210,对于磁盘池中的每一磁盘,将磁盘中已使用的逻辑盘作为磁盘的目标逻辑盘。
其中,逻辑盘并不是真实存在的,只是为了更好的管理存储系统的资源,在磁盘上划分出的逻辑上的空间。每个磁盘可以创建的逻辑盘数量存在量纲限制,该数量为磁盘容量除以单块逻辑盘的最大容量。可选地,若磁盘的容量为100G,可以将该100G容量的磁盘划分成100个容量为1G的逻辑盘,也可以将该100G容量的磁盘划分成1000个容量为0.1G的逻辑盘。
具体地,在存储系统建成后,不断地有数据写入存储系统,每个磁盘中的逻辑盘的使用量也在随着数据的写入而改变,在进行逻辑盘个数均衡时,需要从磁盘中确定出已经使用的目标逻辑盘的。
可选地,在进行逻辑盘个数均衡前,需要先确定磁盘平均使用率小于预设阈值。具体磁盘平均使用率小于预设阈值可以理解为,在存储池内某一个磁盘池中,所有磁盘的平均使用率valid_ratio<threshold_total(磁盘池总空间的使用率,值为50%)且单个磁盘的最大使用率disk_ratio_max<threshold_disk(磁盘池内磁盘的使用率,值为55%)。在满足上述条件的基础上,再检测磁盘池内各个小集合逻辑盘是否均衡,如果不均衡可以进行均衡操作。
可选地,逻辑盘处于存储系统层级结构的最底层,存储系统层级结构,包括:存储池、磁盘池、磁盘、逻辑盘。存储系统由多个服务器节点组成,每个服务器节点下分布多块磁盘。对所有节点下的磁盘进行划分。将介质类型(运行速率)、存储类型(数据/元数据)相同的磁盘划分为一个磁盘池。每个磁盘根据容量大小划分为多个存储单元,即逻辑盘。
步骤220,获取每一磁盘的目标逻辑盘个数与其他磁盘的目标逻辑盘个数之间的差值,得到逻辑盘个数差值。
具体地,在得到每一磁盘已经使用了的目标逻辑盘后,进一步确定出已经使用了的目标逻辑盘的个数。在得到每一磁盘的目标逻辑盘个数后,确定出存储系统中的每一磁盘的目标逻辑盘个数与其他磁盘的目标逻辑盘个数之间的差值,得到多个逻辑盘个数差值。
步骤230,在逻辑盘个数差值存在大于预设数值的情况下,对磁盘池中的逻辑盘进行逻辑盘个数均衡。
其中,预设数值是指用于判断逻辑盘个数是否均衡的临界条件,可选地,预设数值可以为1、2或3不等。
具体地,在步骤S220中得到的多个逻辑盘个数差值中存在大于预设数值的差值时,则对磁盘池中的逻辑盘进行逻辑盘个数均衡。
上述实施例中,将磁盘中已使用的逻辑盘作为磁盘的目标逻辑盘,获取每一磁盘的目标逻辑盘个数与其他磁盘的目标逻辑盘个数之间的差值,得到逻辑盘个数差值,并在逻辑盘个数差值存在大于预设数值的情况下,对磁盘池中的逻辑盘进行逻辑盘个数均衡,从而使得各磁盘中已使用的逻辑盘个数的差值保持在小于预设数值的均衡状态下,使得存储系统中磁盘的覆盖更为均匀,逻辑盘的存储状态更加均衡,能有效避免部分磁盘先被写满的情况,避免数据写入带宽下降的问题。
在一个实施例中,如图3所示,为步骤S230的一种可实施方式的流程示意图,具体包括以下步骤:
步骤S231,根据存储系统中的磁盘数量以及预设的任务数量与磁盘数量之间的比例关系,确定出进行逻辑盘个数均衡处理的任务数量。
具体地,在逻辑盘个数均衡任务的处理过程中,如果一次性投出去的任务太多,做完耗费时间较长,而为了尽快完成系统性的均衡任务,又需要在一次逻辑盘个数均衡任务时多投入任务数量。同时,在存储系统中的存储设备(磁盘)较多时,每一轮只投出少量固定数量的任务,意味着需要投递很多轮任务,任务投递太频繁。因此,需要在任务数量与存储系统的规模(磁盘数量)之间找到一个最优的比例关系,以使每次逻辑盘个数均衡处理能快速完成,同时使存储系统的整体逻辑盘个数均衡任务能尽快完成。在获取到存储系统中的磁盘数量后,按照该磁盘数量与预设的比例关系,确定出进行逻辑盘个数均衡处理的任务数量。
步骤S232,按照任务数量,对磁盘池中的逻辑盘存储的内容进行迁移,以使磁盘池中的逻辑盘个数达到均衡。
具体地,在得到任务数量后,在对磁盘池中的逻辑盘存储的内容进行迁移的过程中,按照该任务数量,投递每次迁移的任务量,对磁盘池中的逻辑盘存储的内容进行迁移。
可选地,步骤S232,按照任务数量,对磁盘池中的逻辑盘存储的内容进行迁移,包括:获取磁盘池中的目标逻辑盘个数的均值;根据每一磁盘的目标逻辑盘个数、目标逻辑盘个数的均值,确定出磁盘的逻辑盘期望迁移个数;按照任务数量和逻辑盘期望迁移个数,对磁盘池中的逻辑盘存储的内容进行迁移。
具体地,在获取到磁盘池中的目标逻辑盘个数的均值后,根据每一磁盘的目标逻辑盘个数、目标逻辑盘个数的均值,确定出磁盘的逻辑盘期望迁移个数。按照任务数量和逻辑盘期望迁移个数,对磁盘池中的逻辑盘存储的内容进行迁移。示例地,目标逻辑盘个数的均值为50,磁盘池中包括四个磁盘,四个磁盘中的目标逻辑盘个数分别为30、40、60、70。为了使各个磁盘的覆盖更加均匀,理想状态下,期望向目标逻辑盘个数为30的磁盘迁入20个逻辑盘的内容,向目标逻辑盘个数为40的磁盘迁入10个逻辑盘的内容,从目标逻辑盘个数为60的磁盘迁出10个逻辑盘的内容,从目标逻辑盘个数为70的磁盘迁出20个逻辑盘的内容,最终使各个磁盘中的目标逻辑盘个数变为50,使磁盘的覆盖更为均衡。可选地,还可以按照目标逻辑盘个数的均值的上下预设范围内的数值替换目标逻辑盘个数的均值,进行逻辑盘个数均衡,以保证磁盘中逻辑盘的动态均衡,避免逻辑盘的频繁均衡。
示例地,逻辑盘个数均衡检测包括:检测小集合是否需要进行逻辑盘个数均衡。具体包括:(1)依次遍历各个磁盘池,并且找到磁盘上对应的集合set。(2)找到set后,然后根据系统存储设备的规模,判断此轮任务,均衡任务投递个数(任务数量)和处理的版本号,存储系统在处理均衡任务的过程中,如果一次性投出去的任务太多,做完耗费时间较长,为了尽快做完,然后更新物理磁盘的容量,每一轮投出固定数量的任务,但是存储系统存储设备较多时,每一轮只投出少量固定数量的任务,意味着需要投递很多轮任务,任务投递太频繁。所以实现根据系统规模调整任务个数和每轮处理的小集合数量;若存储系统节点个数nodenr<10,则每轮任务上限submitnr_max=50,处理小集合数量versionnr_max=5;若10<存储系统节点个数nodenr<30,则每轮任务上限submitnr_max*2,处理小集合数量versionnr_max*2;若存储系统节点个数nodenr>30。则每轮任务上限submitnr_max*5,处理小集合数量versionnr_max*5。(3)检查磁盘池内是否有正在做的故障逻辑盘迁移任务,若磁盘池内有别的逻辑盘迁移任务,此时做逻辑盘个数均衡任务,别的逻辑盘迁移任务会将逻辑盘覆盖均匀的状态再次破坏。如果有这样的迁移任务,那么直接退出。(4)没有别的故障导致的迁移任务,统计磁盘池内所有物理磁盘的信息,统计磁盘池中所有物理磁盘的磁盘号diskid,物理磁盘上已经使用的逻辑盘个数ldiksnr_inuse和使用容量valid_bytes。(5)找到磁盘池中set上一次处理的小集合版本号游标selversion,在磁盘池结构hsm_topo_grp_t中记录一个上次处理的小集合版本号的游标selversion,为了防止单轮投递的任务量过多,导致线程长期被占用,每轮投递任务处理5个版本号,本次处理时,继续从上次的版本号往后处理。当版本号达到最大版本号时,重新从起始版本号处理小集合。(6)下面对一个版本号的小集合进行检测,查看其是否满足逻辑盘个数均衡条件。将当前处理版本号小集合中所有的vset都记录到一个本地链表list_vset中,然后统计一下小集合对应的磁盘池内所有的物理磁盘信息。统计各个物理盘,在小集合的vset中,使用的逻辑盘数量,从而知道物理盘在小集合中被命中的次数,每个物理磁盘记一个ldisknr_inversion。计算当前版本号物理磁盘中ldisknr_inversion的均值,为了选出逻辑盘个数均衡时迁出迁入盘。一个vset中按照配比可知总共有ldisknr个逻辑盘,当前小集合中共有vsetnr_selversion个vset,相乘得到小集合中总的逻辑盘个数ldisknr_inversion_total。然后ldisknr_inversion_total/disknr,可得到小集合中每个磁盘上逻辑盘个数的平均值ldisknr_inversion_avg。然后用统计出的各个物理盘上的逻辑盘数量进行对比从大到小进行排序。排好序后,接着判断排在第一的物理盘上的逻辑盘个数和排在最后的物理盘上的逻辑盘个数差值是否小于等于1(因为需要考虑取整),若小于等于1,代表已经均衡,否则为不均衡,需要触发逻辑盘个数均衡。
可选地,当触发逻辑盘个数均衡后,具体逻辑盘个数均衡的步骤包括:
使用上述排序好的物理盘,首先用物理盘中逻辑盘个数和平均值做对比,比平均值大的都作为迁出盘,比平均值小的都作为迁入盘,并用最后一个迁出盘所在的位置作为最大迁出位置idx_src,逻辑盘数量最多的物理盘所在的位置作为最大迁入位置,如图4所示,为迁出迁入盘查找的示意图。
逻辑盘个数均衡中迁出迁入盘的选择方法,包括:(1)从上到下依次选择迁出盘,首先选逻辑盘个数最多的物理盘,作为预备迁出盘。然后遍历本地链表lsit_vset中的vset,将包含当前迁出盘的vset记录到一个新的本地链表list_vset_src中。(2)从下向上,挑选迁入盘,优先挑选逻辑盘个数最少的物理盘作为预备迁入盘。(3)查看“预备迁出盘”和“预备迁入盘”上逻辑盘个数差值是否小于等于1,若小于等于1,则认为已经均衡,下面的盘差值只会更小,不需要再处理了,直接退出,否则继续处理。(4)执行到这一步,说明“预备迁出迁入盘逻辑盘并不均匀”,然后需要在预备迁出盘中挑选出一块逻辑盘,往迁入盘上迁。从物理盘上选择迁出的逻辑盘时,需要同时考虑容量。若迁出盘已经使用的容量比迁入盘已经使用的容量高,那么从迁出盘上选出一个最高容量的逻辑盘作为迁出逻辑盘,这样让两块物理盘逻辑盘个数均衡的同时,可以让其容量也保持均衡。若迁出盘已经使用的容量比迁入盘已经使用的容量低,那么从迁出盘上选出一个最低容量的逻辑盘作为迁出逻辑盘,这样让两块物理盘逻辑盘个数均衡的同时,可以让其容量也保持均衡。检查当前的任务记录,如果迁出逻辑盘没有正在做任务,就将此预备迁出盘作为迁出盘,预备迁入盘作为迁入盘。将迁出逻辑盘投递动态迁移任务,将迁出逻辑盘迁到迁入盘中。(5)任务执行成功后,将迁出盘ldisknr_inuse逻辑盘个数减1,然后将迁入盘ldisknr_inuse加1;迁出盘使用容量减去迁出逻辑盘容量,迁入盘加上逻辑盘容量。并把迁出逻辑盘所在的vset从本地上链表list_vset_src上删除(代表这个vset正在做任务,任务没做完不可选)。(6)当预备迁入盘,任务执行失败后或有别的任务正在执行。则重复(2),按从下向上的顺序查找倒数第二个逻辑盘个数最少的物理盘作为预备迁入盘,重复执行(3)、(4)、(5)。(7)若所有迁入盘,都无法投递出迁移任务,那么重复执行(1),从上向下选择下一个逻辑盘个数多的迁入盘,然后重复(2)、(3)、(4)、(5)去选迁入盘和迁出逻辑盘。
可选地,逻辑盘个数均衡单轮结束条件为:若某一轮逻辑盘个数均衡任务中投递任务的总数submitnr>=单轮最大任务投递数量submitnr_max,或本轮已经扫描的小集合数量versionnr>=versionnr_max(单轮处理的最大小集合数量),或者本轮所有小集合已经全部扫描结束,则本轮逻辑盘个数均衡执行结束。直到把系统中所有的小集合中的物理盘上逻辑盘都均衡。使其任意一块物理盘上逻辑盘数量差值小于等于1,此时,彻底均衡,逻辑盘个数均衡关闭。
上述实施例中,确定出进行逻辑盘个数均衡处理的任务数量,按照该任务数量,对磁盘池中的逻辑盘存储的内容进行迁移,可以使每次逻辑盘个数均衡处理能快速完成,同时使存储系统的整体逻辑盘个数均衡任务能尽快完成,提高磁盘池中的逻辑盘个数达到均衡的效率。
在一个实施例中,如图5所示,在步骤S200之前,还提供一种磁盘池间的容量均衡方法,具体包括以下步骤:
步骤S201,在磁盘平均使用率小于预设阈值的情况下,获取存储系统中的每一磁盘池的磁盘池使用率。
具体地,磁盘池间的容量均衡优先级最高,如果需要磁盘池间的容量均衡直接处理磁盘池间容量均衡,不需要判断逻辑盘个数均衡。不需要磁盘池间均衡时,判断是否进行逻辑盘个数均衡。因此,在步骤S200之前,在磁盘使用信息中的磁盘平均使用率小于预设阈值的情况下,认为存储系统的整体存储状态为低容量状态,为使存储系统中的各个磁盘池间的存储状态更加均衡,需要获取存储系统中的每一磁盘池的磁盘池使用率,对存储系统中的磁盘池进行磁盘池间的容量均衡。
示例地,磁盘平均使用率小于预设阈值的情况是指存储系统的整体存储状态为低容量状态,可以理解为存储池内某一个磁盘池中,所有磁盘的平均使用率valid_ratio<threshold_total(磁盘池总空间的使用率,值为50%)且单个磁盘的最大使用率disk_ratio_max<threshold_disk(磁盘池内磁盘的使用率,值为55%)。
步骤S202,确定出每一磁盘池的磁盘池使用率与其他磁盘池的磁盘池使用率之间的差值,得到磁盘池使用率差值。
具体地,在步骤S201中得到每一磁盘池的磁盘池使用率后,确定出每一磁盘池的磁盘池使用率与其他磁盘池的磁盘池使用率之间的差值,得到多个磁盘池使用率差值。
步骤S203,在磁盘池使用率中的最大值大于第一阈值,或磁盘池使用率差值存在大于第二阈值的情况下,对存储系统中的磁盘池进行磁盘池间的容量均衡。
其中,第一阈值是指判定磁盘池使用率是否均衡的临界值,当磁盘池使用率中的最大值大于第一阈值时,认为磁盘池使用率不均衡,需要进行磁盘池间的容量均衡。可选地,第一阈值可以是50%、55%、60%不等。第二阈值也是用于判定磁盘池使用率是否均衡的临界值,当磁盘池使用率差值存在大于第二阈值的情况下,认为磁盘池使用率不均衡,需要进行磁盘池间的容量均衡。可选地,第二阈值可以为5%、10%、20%不等。
具体地,对于每一磁盘池,在磁盘池的磁盘池使用率中的最大值大于第一阈值的情况下,或者,磁盘池对应的磁盘池使用率差值存在大于第二阈值的情况下,说明磁盘池使用率不均衡,需要进行磁盘池间的容量均衡,此时,对存储系统中的磁盘池进行磁盘池间的容量均衡。
示例地,磁盘池的磁盘池使用率中的最大值大于第一阈值,或磁盘池对应的磁盘池使用率差值存在大于第二阈值,可以理解为相同介质类型、存储类型的磁盘池最大使用率大于第一阈值磁盘池使用率警戒值(grp_ratio_max>grp_ratio_warn)或磁盘池使用率差值大于第二阈值(grp_ratio_diff>threshold)时,需要进行磁盘池间的均衡。
需要说明的是,导致存储系统中的部分磁盘还具有大量的可用空间,而部分磁盘被写满,出现存储系统中的容量不均衡,出现差值的情况包括:存储系统增删存储设备磁盘:(1)当存储节点有物理盘故障,需要将故障盘替换掉,那么就需要将盘拔出,并更换新的物理盘,此时新的物理盘上是没有数据的,若非故障节点及上面的物理盘之前数据已经接近写满,那么新物理盘和旧盘之间就会出现较大的容量差。扩容存储节点和物理磁盘,也会出现同样的问题。(2)如果各存储节点上存储设备数量不对称:当写入大量数据时,随着数据越来越多,各个存储节点的数据也会逐渐增加,相比之下,存储设备少的存储节点的空间会和其他节点容量差逐渐拉大,最终导致先被写满,此时此存储节点或磁盘不可用,写入带宽下降,性能变差。
上述实施例中,在磁盘平均使用率小于预设阈值的情况下,进一步确定需要进行磁盘池间的容量均衡的条件,并在磁盘池使用率中的最大值大于第一阈值,或磁盘池使用率差值存在大于第二阈值的情况下,对存储系统中的磁盘池进行磁盘池间的容量均衡,从而保证磁盘池的动态均衡,避免数据写入带宽下降的问题。
在一个实施例中,如图6所示,为步骤S203的一种可实施方式的流程示意图,具体包括以下步骤:
步骤S2031,根据磁盘池使用率、磁盘池使用率的平均值和磁盘池容量,得到磁盘池的期望迁移容量。
其中,磁盘池容量是指磁盘池中的所有磁盘提供的容量的总和。
具体地,根据磁盘池使用率、磁盘池使用率的平均值和磁盘池容量,得到磁盘池的期望迁移容量。其中,磁盘池的期望迁移容量包括磁盘池期望迁出容量和磁盘池允许迁入容量。磁盘池期望迁出容量是指该磁盘池的容量较高,需要迁出其中存储的部分内容,以使磁盘池的容量达到均衡;磁盘池允许迁入容量是指该磁盘池的容量较低,可以允许其他磁盘池将其中存储的部分内容迁入该磁盘池,以使磁盘池的容量达到均衡。
示例地,依次遍历所有磁盘池,如果磁盘池使用率大于磁盘池的容量迁移基准值,则将该磁盘池标记为OUT(需要迁出存储数据的磁盘池),计算磁盘池期望迁出容量:expect_cap_out=(grp_ratio-grp_ratio_avg)*grp_total_cap,其中,grp_ratio-grp表示磁盘池使用率,grp_ratio_avg表示磁盘池使用率的平均值,grp_total_cap表示磁盘池容量。可选地,可进一步根据磁盘池期望迁移容量确定出磁盘池期望迁移容量的最小值:min_cap_out=expect_cap*(1-调整阈值),以及磁盘池期望迁移容量的最大值:max_cap_out=expect_cap*(1+调整阈值)。其中,调整阈值为0至1中的任意数值,用于对期望迁移容量的最小值和期望迁移容量的最大值进行调整。
如果磁盘池使用率小于或等于磁盘池的容量迁移基准值,则将该磁盘池标记为IN(允许迁入存储数据的磁盘池),计算磁盘池允许迁入容量:expect_cap_in=(grp_ratio_avg-grp_ratio)*grp_total_cap。可选地,可进一步根据磁盘池允许迁入容量确定出磁盘池允许迁入容量的最小值:min_cap_in=(1-调整阈值)*expect_cap,以及磁盘池允许迁入容量的最大值:max_cap_in=expect_cap*(1+调整阈值)。其中,调整阈值为0至1中的任意数值,用于对期望迁移容量的最小值和期望迁移容量的最大值进行调整。
可选地,在确定出磁盘池为需要迁出存储数据的磁盘池或允许迁入存储数据的磁盘池时,可以根据磁盘池的磁盘池使用率中的最大值和第一阈值,确定出磁盘池的容量迁移基准值。并在磁盘池使用率大于磁盘池的容量迁移基准值时,将该磁盘池确定为需要迁出存储数据的磁盘池,在磁盘池使用率小于或等于磁盘池的容量迁移基准值时,将该磁盘池确定为允许迁入存储数据的磁盘池。
可选地,在确定出需要进行磁盘池间的容量均衡时,需要确定具体需要进行容量均衡的磁盘池。可以根据磁盘池的磁盘池使用率中的最大值和第一阈值,确定出磁盘池的容量迁移基准值。示例地,如果磁盘池使用率中的最大值大于磁盘池使用率警戒值(第一阈值),则磁盘池的容量迁移基准值为磁盘池使用率警戒值(grp_move_line=grp_ratio_warn);否则,磁盘池的容量迁移基准值为磁盘池使用率中的最大值与磁盘池使用率警戒值之间的均值(grp_move_line=(grp_ratio_max+grp_ratio_warn)/2)。
步骤S2032,根据磁盘池的期望迁移容量,对存储系统中的磁盘池存储的内容进行迁移,以使存储系统中的磁盘池的容量达到均衡。
具体地,在得到磁盘池的期望迁移容量后,可以按照磁盘池的期望迁移容量,对存储系统中的磁盘池存储的内容进行迁移。当磁盘池为需要迁出存储数据的磁盘池时,按照具体的磁盘池期望迁出容量,迁出该磁盘池中存储的数据,并将迁出的数据存入允许迁入存储数据的磁盘池。如此,可以实现磁盘池存储数据的动态迁移,以使存储系统中的磁盘池的容量达到均衡。
上述实施例中,根据磁盘池使用率、磁盘池使用率的平均值和磁盘池容量,得到磁盘池的期望迁移容量,并根据磁盘池的期望迁移容量,对存储系统中的磁盘池存储的内容进行迁移,从而保证磁盘池的动态均衡,避免数据写入带宽下降的问题。
在一个实施例中,步骤S200之后还包括步骤S300,在磁盘平均使用率大于或等于预设阈值的情况下,对磁盘池中的磁盘进行磁盘间的容量均衡。
具体地,在磁盘使用信息中的磁盘平均使用率大于或等于预设阈值的情况下,认为存储系统的整体存储状态为低容量状态,为使存储系统中的各个磁盘池的存储状态更加均衡,对磁盘池中的磁盘进行磁盘间的容量均衡。
可选地,如图7所示,为步骤S300的一种可实施方式的流程示意图,具体包括以下步骤:
步骤S310,确定出每一磁盘的磁盘使用率与其他磁盘的磁盘使用率之间的磁盘使用率差值。
具体地,按照磁盘池中磁盘的磁盘使用率,确定出每一磁盘的磁盘使用率与其他磁盘的磁盘使用率之间的磁盘使用率差值,得到多个磁盘使用率差值。
步骤S320,对于每一磁盘,在磁盘的磁盘使用率中的最大值大于第三阈值,或磁盘对应的磁盘使用率差值存在大于第四阈值的情况下,对磁盘池中的磁盘进行磁盘间的容量均衡。
其中,第三阈值是指判定磁盘使用率是否均衡的临界值,当磁盘使用率中的最大值大于第三阈值时,认为磁盘使用率不均衡,需要进行磁盘间的容量均衡。可选地,第三阈值可以是50%、55%、60%不等。第四阈值也是用于判定磁盘使用率是否均衡的临界值,当磁盘池使用差值存在大于第四阈值的情况下,认为磁盘使用率不均衡,需要进行磁盘间的容量均衡。可选地,第四阈值可以为5%、10%、20%不等。
具体地,对于每一磁盘,在磁盘使用率中的最大值大于第三阈值的情况下,或者,磁盘使用率差值存在大于第四阈值的情况下,说明磁盘使用率不均衡,需要进行磁盘间的容量均衡,此时,对磁盘池中的磁盘进行磁盘间的容量均衡。
示例地,磁盘的磁盘使用率中的最大值大于第三阈值,或磁盘对应的磁盘使用率差值存在大于第四阈值,可以理解为相同介质类型、存储类型的磁盘的最大使用率大于第三阈值磁盘使用率警戒值(disk_ratio_max>disk_ratio_warn)或磁盘使用率差值大于第四阈值(disk_ratio_diff>threshold)时,需要进行磁盘间的容量均衡。
上述实施例中,在磁盘使用率大于或等于预设阈值的情况下,对磁盘中的磁盘进行磁盘间的容量均衡,使得存储系统中磁盘间的存储状态更加均衡,能有效避免部分磁盘先被写满的情况,避免数据写入带宽下降的问题。
在一个实施例中,如图8所示,为步骤S320的一种可实施方式的流程示意图,具体包括以下步骤:
步骤S321,根据磁盘使用率、磁盘使用率的平均值和磁盘容量,得到磁盘的期望迁移容量。
具体地,根据磁盘使用率、磁盘使用率的平均值和磁盘容量,得到磁盘的期望迁移容量。其中,磁盘的期望迁移容量包括磁盘期望迁出容量和磁盘允许迁入容量。磁盘期望迁出容量是指该磁盘的容量较高,需要迁出其中存储的部分内容,以使磁盘的容量达到均衡;磁盘允许迁入容量是指该磁盘的容量较低,可以允许其他磁盘将其中存储的部分内容迁入该磁盘,以使磁盘的容量达到均衡。
示例地,依次遍历每个磁盘池中的所有磁盘,如果磁盘使用率大于磁盘的容量迁移基准值,则将该磁盘标记为OUT(需要迁出存储数据的磁盘),计算磁盘期望迁出容量:expect_cap_out=(disk_ratio-grp_disk_ratio_avg)*disk_total_cap,其中,disk_ratio-grp表示磁盘使用率,disk_ratio_avg表示磁盘使用率的平均值,disk_total_cap表示磁盘容量。可选地,可进一步根据磁盘期望迁移容量确定出磁盘期望迁移容量的最小值:min_cap_out=expect_cap_out*(1-调整阈值),以及磁盘期望迁移容量的最大值:max_cap_out=expect_cap_out*(1+调整阈值)。其中,调整阈值为0至1中的任意数值,用于对期望迁移容量的最小值和期望迁移容量的最大值进行调整。
如果磁盘使用率小于或等于磁盘的容量迁移基准值,则将该磁盘标记为IN(允许迁入存储数据的磁盘),计算磁盘允许迁入容量:expect_cap_in=(grp_disk_ratio_avg-disk_ratio)*disk_total_cap。可选地,可进一步根据磁盘允许迁入容量确定出磁盘允许迁入容量的最小值:min_cap_in=expect_cap_in*(1-调整阈值),以及磁盘允许迁入容量的最大值:max_cap_in=expect_cap_in*(1+调整阈值)。其中,调整阈值为0至1中的任意数值,用于对期望迁移容量的最小值和期望迁移容量的最大值进行调整。
可选地,在确定出磁盘为需要迁出存储数据的磁盘或允许迁入存储数据的磁盘时,可以根据磁盘的磁盘使用率中的最大值和第三阈值,确定出磁盘的容量迁移基准值。并在磁盘使用率大于磁盘的容量迁移基准值时,将该磁盘确定为需要迁出存储数据的磁盘,在磁盘使用率小于或等于磁盘的容量迁移基准值时,将该磁盘确定为允许迁入存储数据的磁盘。
可选地,在确定出需要进行磁盘间的容量均衡时,需要确定具体需要进行容量均衡的磁盘。可以根据磁盘的磁盘使用率中的最大值和第三阈值,确定出磁盘的容量迁移基准值。示例地,如果磁盘使用率中的最大值大于磁盘使用率警戒值(第三阈值),则磁盘的容量迁移基准值为磁盘使用率警戒值(disk_move_line=disk_ratio_warn);否则,磁盘的容量迁移基准值为磁盘使用率中的最大值与磁盘使用率警戒值之间的均值(disk_move_line=(disk_ratio_max+disk_ratio_warn)/2)。
步骤S322,根据磁盘的期望迁移容量,对磁盘池中的磁盘存储的内容进行迁移,以使磁盘池中的磁盘的容量达到均衡。
具体地,在得到磁盘的期望迁移容量后,可以按照磁盘的期望迁移容量,对磁盘池中的磁盘存储的内容进行迁移。当磁盘为需要迁出存储数据的磁盘时,按照具体的磁盘期望迁出容量,迁出该磁盘中存储的数据,并将迁出的数据存入允许迁入存储数据的磁盘。如此,可以实现磁盘池中的磁盘存储数据的动态迁移,以使磁盘池中的磁盘的容量达到均衡。
上述实施例中,根据磁盘使用率、磁盘使用率的平均值和磁盘容量,得到磁盘的期望迁移容量,并根据磁盘的期望迁移容量,对磁盘池中的磁盘存储的内容进行迁移,从而保证磁盘的动态均衡,避免数据写入带宽下降的问题。
应该理解的是,虽然图1-8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-8中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种存储系统的容量均衡装置,包括:数据获取模块901、数据处理模块902和容量均衡模块903,其中:
数据获取模块901,用于获取存储系统中每一磁盘池中每一磁盘的磁盘使用率;其中,磁盘池中的每一磁盘包括至少一个逻辑盘;
数据处理模块902,用于根据磁盘池中每一磁盘的磁盘使用率,确定出每一磁盘池的磁盘平均使用率;
容量均衡模块903,用于在磁盘平均使用率小于预设阈值的情况下,对磁盘池中的逻辑盘进行逻辑盘个数均衡。
在其中一个实施例中,容量均衡模块902还用于:对于磁盘池中的每一磁盘,将磁盘中已使用的逻辑盘作为磁盘的目标逻辑盘;获取每一磁盘的目标逻辑盘个数与其他磁盘的目标逻辑盘个数之间的差值,得到逻辑盘个数差值;在逻辑盘个数差值存在大于预设数值的情况下,对磁盘池中的逻辑盘进行逻辑盘个数均衡。
在其中一个实施例中,容量均衡模块902还用于:根据存储系统中的磁盘数量以及预设的任务数量与磁盘数量之间的比例关系,确定出进行逻辑盘个数均衡处理的任务数量;按照任务数量,对磁盘池中的逻辑盘存储的内容进行迁移,以使磁盘池中的逻辑盘个数达到均衡。
在其中一个实施例中,容量均衡模块902还用于:获取磁盘池中的目标逻辑盘个数的均值;根据每一磁盘的目标逻辑盘个数、目标逻辑盘个数的均值,确定出磁盘的逻辑盘期望迁移个数;按照任务数量和逻辑盘期望迁移个数,对磁盘池中的逻辑盘存储的内容进行迁移。
在其中一个实施例中,存储系统的容量均衡装置还包括磁盘池均衡模块,用于:在磁盘平均使用率小于预设阈值的情况下,获取存储系统中每一磁盘池的磁盘池使用率;确定出每一磁盘池的磁盘池使用率与其他磁盘池的磁盘池使用率之间的差值,得到磁盘池使用率差值;在磁盘池使用率中的最大值大于第一阈值,或磁盘池使用率差值存在大于第二阈值的情况下,对存储系统中的磁盘池进行磁盘池间的容量均衡。
在其中一个实施例中,磁盘池均衡模块还用于:根据磁盘池使用率、磁盘池使用率的平均值和磁盘池容量,得到磁盘池的期望迁移容量;根据磁盘池的期望迁移容量,对存储系统中的磁盘池存储的内容进行迁移,以使存储系统中的磁盘池的容量达到均衡。
在其中一个实施例中,存储系统的容量均衡装置还包括磁盘均衡模块,用于:在磁盘平均使用率大于或等于预设阈值的情况下,对磁盘池中的磁盘进行磁盘间的容量均衡。
在其中一个实施例中磁盘均衡模块还用于:确定出每一磁盘的磁盘使用率与其他磁盘的磁盘使用率之间的磁盘使用率差值;在磁盘使用率中的最大值大于第三阈值,或磁盘使用率差值存在大于第四阈值的情况下,对磁盘池中的磁盘进行磁盘间的容量均衡。
在其中一个实施例中磁盘均衡模块还用于:根据磁盘使用率、磁盘使用率的平均值和磁盘容量,得到磁盘的期望迁移容量;根据磁盘的期望迁移容量,对磁盘池中的磁盘存储的内容进行迁移,以使磁盘池中的磁盘的容量达到均衡。
关于存储系统的容量均衡装置的具体限定可以参见上文中对于存储系统的容量均衡方法的限定,在此不再赘述。上述存储系统的容量均衡装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种存储系统的容量均衡方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取存储系统中每一磁盘池中每一磁盘的磁盘使用率;其中,磁盘池中的每一磁盘包括至少一个逻辑盘;
根据磁盘池中每一磁盘的磁盘使用率,确定出每一磁盘池的磁盘平均使用率;
在磁盘平均使用率小于预设阈值的情况下,对磁盘池中的逻辑盘进行逻辑盘个数均衡。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:对于磁盘池中的每一磁盘,将磁盘中已使用的逻辑盘作为磁盘的目标逻辑盘;获取每一磁盘的目标逻辑盘个数与其他磁盘的目标逻辑盘个数之间的差值,得到逻辑盘个数差值;在逻辑盘个数差值存在大于预设数值的情况下,对磁盘池中的逻辑盘进行逻辑盘个数均衡。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据存储系统中的磁盘数量以及预设的任务数量与磁盘数量之间的比例关系,确定出进行逻辑盘个数均衡处理的任务数量;按照任务数量,对磁盘池中的逻辑盘存储的内容进行迁移,以使磁盘池中的逻辑盘个数达到均衡。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取磁盘池中的目标逻辑盘个数的均值;根据每一磁盘的目标逻辑盘个数、目标逻辑盘个数的均值,确定出磁盘的逻辑盘期望迁移个数;按照任务数量和逻辑盘期望迁移个数,对磁盘池中的逻辑盘存储的内容进行迁移。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在磁盘平均使用率小于预设阈值的情况下,获取存储系统中每一磁盘池的磁盘池使用率;确定出每一磁盘池的磁盘池使用率与其他磁盘池的磁盘池使用率之间的差值,得到磁盘池使用率差值;在磁盘池使用率中的最大值大于第一阈值,或磁盘池使用率差值存在大于第二阈值的情况下,对存储系统中的磁盘池进行磁盘池间的容量均衡。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据磁盘池使用率、磁盘池使用率的平均值和磁盘池容量,得到磁盘池的期望迁移容量;根据磁盘池的期望迁移容量,对存储系统中的磁盘池存储的内容进行迁移,以使存储系统中的磁盘池的容量达到均衡。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在磁盘平均使用率大于或等于预设阈值的情况下,对磁盘池中的磁盘进行磁盘间的容量均衡。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:确定出每一磁盘的磁盘使用率与其他磁盘的磁盘使用率之间的磁盘使用率差值;在磁盘使用率中的最大值大于第三阈值,或磁盘使用率差值存在大于第四阈值的情况下,对磁盘池中的磁盘进行磁盘间的容量均衡。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据磁盘使用率、磁盘使用率的平均值和磁盘容量,得到磁盘的期望迁移容量;根据磁盘的期望迁移容量,对磁盘池中的磁盘存储的内容进行迁移,以使磁盘池中的磁盘的容量达到均衡。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取存储系统中每一磁盘池中每一磁盘的磁盘使用率;其中,磁盘池中的每一磁盘包括至少一个逻辑盘;
根据磁盘池中每一磁盘的磁盘使用率,确定出每一磁盘池的磁盘平均使用率;
在磁盘平均使用率小于预设阈值的情况下,对磁盘池中的逻辑盘进行逻辑盘个数均衡。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对于磁盘池中的每一磁盘,将磁盘中已使用的逻辑盘作为磁盘的目标逻辑盘;获取每一磁盘的目标逻辑盘个数与其他磁盘的目标逻辑盘个数之间的差值,得到逻辑盘个数差值;在逻辑盘个数差值存在大于预设数值的情况下,对磁盘池中的逻辑盘进行逻辑盘个数均衡。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据存储系统中的磁盘数量以及预设的任务数量与磁盘数量之间的比例关系,确定出进行逻辑盘个数均衡处理的任务数量;按照任务数量,对磁盘池中的逻辑盘存储的内容进行迁移,以使磁盘池中的逻辑盘个数达到均衡。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取磁盘池中的目标逻辑盘个数的均值;根据每一磁盘的目标逻辑盘个数、目标逻辑盘个数的均值,确定出磁盘的逻辑盘期望迁移个数;按照任务数量和逻辑盘期望迁移个数,对磁盘池中的逻辑盘存储的内容进行迁移。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在磁盘平均使用率小于预设阈值的情况下,获取存储系统中每一磁盘池的磁盘池使用率;确定出每一磁盘池的磁盘池使用率与其他磁盘池的磁盘池使用率之间的差值,得到磁盘池使用率差值;在磁盘池使用率中的最大值大于第一阈值,或磁盘池使用率差值存在大于第二阈值的情况下,对存储系统中的磁盘池进行磁盘池间的容量均衡。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据磁盘池使用率、磁盘池使用率的平均值和磁盘池容量,得到磁盘池的期望迁移容量;根据磁盘池的期望迁移容量,对存储系统中的磁盘池存储的内容进行迁移,以使存储系统中的磁盘池的容量达到均衡。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在磁盘平均使用率大于或等于预设阈值的情况下,对磁盘池中的磁盘进行磁盘间的容量均衡。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:确定出每一磁盘的磁盘使用率与其他磁盘的磁盘使用率之间的磁盘使用率差值;在磁盘使用率中的最大值大于第三阈值,或磁盘使用率差值存在大于第四阈值的情况下,对磁盘池中的磁盘进行磁盘间的容量均衡。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据磁盘使用率、磁盘使用率的平均值和磁盘容量,得到磁盘的期望迁移容量;根据磁盘的期望迁移容量,对磁盘池中的磁盘存储的内容进行迁移,以使磁盘池中的磁盘的容量达到均衡。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (12)
1.一种存储系统的容量均衡方法,其特征在于,所述方法包括:
获取存储系统中每一磁盘池中每一磁盘的磁盘使用率;其中,所述磁盘池中的每一磁盘包括至少一个逻辑盘;
根据所述磁盘池中每一磁盘的磁盘使用率,确定出每一所述磁盘池的磁盘平均使用率;
在所述磁盘平均使用率小于预设阈值的情况下,对所述磁盘池中的逻辑盘进行逻辑盘个数均衡。
2.根据权利要求1所述的方法,其特征在于,所述对所述磁盘池中的逻辑盘进行逻辑盘个数均衡,包括:
对于所述磁盘池中的每一磁盘,将所述磁盘中已使用的逻辑盘作为所述磁盘的目标逻辑盘;
获取每一所述磁盘的目标逻辑盘个数与其他磁盘的目标逻辑盘个数之间的差值,得到逻辑盘个数差值;
在所述逻辑盘个数差值存在大于预设数值的情况下,对所述磁盘池中的逻辑盘进行逻辑盘个数均衡。
3.根据权利要求2所述的方法,其特征在于,所述对所述磁盘池中的逻辑盘进行逻辑盘个数均衡,包括:
根据所述存储系统中的磁盘数量以及预设的任务数量与磁盘数量之间的比例关系,确定出进行逻辑盘个数均衡处理的任务数量;
按照所述任务数量,对所述磁盘池中的逻辑盘存储的内容进行迁移,以使所述磁盘池中的逻辑盘个数达到均衡。
4.根据权利要求3所述的方法,其特征在于,所述按照所述任务数量,对所述磁盘池中的逻辑盘存储的内容进行迁移,包括:
获取所述磁盘池中的目标逻辑盘个数的均值;
根据每一所述磁盘的目标逻辑盘个数、所述目标逻辑盘个数的均值,确定出所述磁盘的逻辑盘期望迁移个数;
按照所述任务数量和所述逻辑盘期望迁移个数,对所述磁盘池中的逻辑盘存储的内容进行迁移。
5.根据权利要求1所述的方法,其特征在于,所述在所述磁盘平均使用率小于预设阈值的情况下,对所述磁盘池中的逻辑盘进行逻辑盘个数均衡之前,包括:
在所述磁盘平均使用率小于所述预设阈值的情况下,获取所述存储系统中每一磁盘池的磁盘池使用率;
确定出每一所述磁盘池的磁盘池使用率与其他磁盘池的磁盘池使用率之间的差值,得到磁盘池使用率差值;
在所述磁盘池使用率中的最大值大于第一阈值,或所述磁盘池使用率差值存在大于第二阈值的情况下,对所述存储系统中的磁盘池进行磁盘池间的容量均衡。
6.根据权利要求5所述的方法,其特征在于,所述对所述存储系统中的磁盘池进行磁盘池间的容量均衡,包括:
根据所述磁盘池使用率、所述磁盘池使用率的平均值和磁盘池容量,得到所述磁盘池的期望迁移容量;
根据所述磁盘池的期望迁移容量,对所述存储系统中的磁盘池存储的内容进行迁移,以使所述存储系统中的磁盘池的容量达到均衡。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述磁盘平均使用率大于或等于所述预设阈值的情况下,对所述磁盘池中的磁盘进行磁盘间的容量均衡。
8.根据权利要求1所述的方法,其特征在于,所述对所述磁盘池中的磁盘进行磁盘间的容量均衡,包括:
确定出每一所述磁盘的磁盘使用率与其他磁盘的磁盘使用率之间的磁盘使用率差值;
在所述磁盘使用率中的最大值大于第三阈值,或所述磁盘使用率差值存在大于第四阈值的情况下,对所述磁盘池中的磁盘进行磁盘间的容量均衡。
9.根据权利要求8所述的方法,其特征在于,所述对所述磁盘池中的磁盘进行磁盘间的容量均衡,包括:
根据所述磁盘使用率、所述磁盘使用率的平均值和磁盘容量,得到所述磁盘的期望迁移容量;
根据所述磁盘的期望迁移容量,对所述磁盘池中的磁盘存储的内容进行迁移,以使所述磁盘池中的磁盘的容量达到均衡。
10.一种存储系统的容量均衡装置,其特征在于,所述装置包括:
数据获取模块,用于获取存储系统中每一磁盘池中每一磁盘的磁盘使用率;其中,所述磁盘池中的每一磁盘包括至少一个逻辑盘;
数据处理模块,用于根据所述磁盘池中每一磁盘的磁盘使用率,确定出每一所述磁盘池的磁盘平均使用率;
容量均衡模块,用于在所述磁盘平均使用率小于预设阈值的情况下,对所述磁盘池中的逻辑盘进行逻辑盘个数均衡。
11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述的方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110539357.7A CN113268203B (zh) | 2021-05-18 | 2021-05-18 | 存储系统的容量均衡方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110539357.7A CN113268203B (zh) | 2021-05-18 | 2021-05-18 | 存储系统的容量均衡方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113268203A true CN113268203A (zh) | 2021-08-17 |
CN113268203B CN113268203B (zh) | 2022-11-04 |
Family
ID=77231612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110539357.7A Active CN113268203B (zh) | 2021-05-18 | 2021-05-18 | 存储系统的容量均衡方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113268203B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450054A (zh) * | 2023-06-16 | 2023-07-18 | 成都泛联智存科技有限公司 | Io请求处理方法、装置、主机和计算机可读存储介质 |
CN117850680A (zh) * | 2023-12-14 | 2024-04-09 | 天翼云科技有限公司 | 一种在分布式存储系统中数据均衡的优化方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030046491A1 (en) * | 2001-06-22 | 2003-03-06 | Nec Corporation | Storage system and data relocation method |
CN103593347A (zh) * | 2012-08-14 | 2014-02-19 | 中兴通讯股份有限公司 | 一种均衡负载的方法及分布式数据库系统 |
CN104662518A (zh) * | 2013-09-24 | 2015-05-27 | 华为技术有限公司 | 数据迁移方法、数据迁移装置和存储设备 |
CN109828718A (zh) * | 2018-12-07 | 2019-05-31 | 中国联合网络通信集团有限公司 | 一种磁盘存储负载均衡方法及装置 |
CN112269545A (zh) * | 2020-10-22 | 2021-01-26 | 苏州浪潮智能科技有限公司 | 一种分布式文件系统磁盘写入的自动均衡方法及存储介质 |
CN112328171A (zh) * | 2020-10-23 | 2021-02-05 | 苏州元核云技术有限公司 | 数据分布预测方法、数据均衡方法、设备及存储介质 |
CN112988065A (zh) * | 2021-02-08 | 2021-06-18 | 北京星网锐捷网络技术有限公司 | 数据迁移方法、装置、设备及存储介质 |
-
2021
- 2021-05-18 CN CN202110539357.7A patent/CN113268203B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030046491A1 (en) * | 2001-06-22 | 2003-03-06 | Nec Corporation | Storage system and data relocation method |
CN103593347A (zh) * | 2012-08-14 | 2014-02-19 | 中兴通讯股份有限公司 | 一种均衡负载的方法及分布式数据库系统 |
CN104662518A (zh) * | 2013-09-24 | 2015-05-27 | 华为技术有限公司 | 数据迁移方法、数据迁移装置和存储设备 |
CN109828718A (zh) * | 2018-12-07 | 2019-05-31 | 中国联合网络通信集团有限公司 | 一种磁盘存储负载均衡方法及装置 |
CN112269545A (zh) * | 2020-10-22 | 2021-01-26 | 苏州浪潮智能科技有限公司 | 一种分布式文件系统磁盘写入的自动均衡方法及存储介质 |
CN112328171A (zh) * | 2020-10-23 | 2021-02-05 | 苏州元核云技术有限公司 | 数据分布预测方法、数据均衡方法、设备及存储介质 |
CN112988065A (zh) * | 2021-02-08 | 2021-06-18 | 北京星网锐捷网络技术有限公司 | 数据迁移方法、装置、设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450054A (zh) * | 2023-06-16 | 2023-07-18 | 成都泛联智存科技有限公司 | Io请求处理方法、装置、主机和计算机可读存储介质 |
CN116450054B (zh) * | 2023-06-16 | 2023-09-26 | 成都泛联智存科技有限公司 | Io请求处理方法、装置、主机和计算机可读存储介质 |
CN117850680A (zh) * | 2023-12-14 | 2024-04-09 | 天翼云科技有限公司 | 一种在分布式存储系统中数据均衡的优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113268203B (zh) | 2022-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113268203B (zh) | 存储系统的容量均衡方法、装置、计算机设备和存储介质 | |
US8677093B2 (en) | Method and apparatus to manage tier information | |
US10387038B1 (en) | Storage space allocation for logical disk creation | |
CN112100293A (zh) | 数据处理方法、数据访问方法、装置及计算机设备 | |
CN111857592B (zh) | 基于对象存储系统的数据存储方法及装置、电子设备 | |
US20150200833A1 (en) | Adaptive Data Migration Using Available System Bandwidth | |
US8001324B2 (en) | Information processing apparatus and informaiton processing method | |
US10254993B2 (en) | Selecting first data sets in a first storage group to swap with second data sets in a second storage group | |
US10523743B2 (en) | Dynamic load-based merging | |
US8554996B2 (en) | Dynamically expanding storage capacity of a storage volume | |
US8010648B2 (en) | Replica placement in a distributed storage system | |
WO2017143957A1 (zh) | 一种数据重分布的方法及装置 | |
US9612746B1 (en) | Allocation method for meeting system performance and application service level objective (SLO) | |
US20180210798A1 (en) | Method and apparatus for managing storage system | |
US7337283B2 (en) | Method and system for managing storage reservation | |
CN110058960A (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN113346573A (zh) | 移动电源充电机柜的充电管理方法、装置和计算机设备 | |
CN104951243B (zh) | 虚拟化存储系统中的存储扩展方法和装置 | |
US10846143B2 (en) | Predicting capacity of shared virtual machine resources | |
CN114924923A (zh) | 一种硬盘写入点正确性验证方法、系统、设备及介质 | |
US20200356297A1 (en) | Method of storage control based on log data types | |
KR101811444B1 (ko) | 플래시 메모리의 읽기 간섭 오류 감소를 위한 데이터 분산이주 방법 및 그 장치 | |
US20220317898A1 (en) | Managing Application Storage Resource Allocations Based on Application Specific Storage Policies | |
CN112783440B (zh) | 一种面向区块链用户节点的数据存储方法及装置 | |
CN116389244A (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 |