CN105278873B - 一种磁盘块的分配方法及装置 - Google Patents
一种磁盘块的分配方法及装置 Download PDFInfo
- Publication number
- CN105278873B CN105278873B CN201510583538.4A CN201510583538A CN105278873B CN 105278873 B CN105278873 B CN 105278873B CN 201510583538 A CN201510583538 A CN 201510583538A CN 105278873 B CN105278873 B CN 105278873B
- Authority
- CN
- China
- Prior art keywords
- subregion
- target
- disk block
- virtual
- determined
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000005192 partition Methods 0.000 claims abstract description 76
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 235000011869 dried fruits Nutrition 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种磁盘块的分配方法及装置。其中,该方法包括:接收磁盘块分配指令,其中,接收到的磁盘块分配指令包括待存储文件的数据虚拟地址;从至少一个虚拟设备中确定目标虚拟设备;从确定出的目标虚拟设备的至少一个分区中确定目标分区,其中,所述至少一个分区预先设置有对应的权重,确定出的目标分区为所述至少一个分区中起始地址距离所述数据虚拟地址最近、且权重最高的分区;在确定出的目标分区中,确定用于存储所述待存储文件的目标磁盘块。本发明根据设备特点进行磁盘块的分配,增加了磁盘块分配的灵活性。
Description
技术领域
本发明涉及数据存储领域,尤指一种磁盘块的分配方法及装置。
背景技术
磁盘块(block)的分配是每个文件系统的中枢,不仅会影响到系统的性能,而且会影响到管理模块(如条带化配置)的效率,甚至会影响到事务、压缩以及快照之间共享磁盘块等一些核心的功能,确保磁盘块分配的正确性变得尤为重要。
现有技术中的磁盘块分配方法大多采用连续分配法,而该方法存在着明显的缺陷,例如磁盘分配的寻道时间(寻道时间是指磁光盘机在接收到系统的磁盘块分配指令后,磁头从开始移动到所需磁道所用的时间)较长,并且当存在坏磁盘块时,导致磁盘块分配失败,降低了磁盘块分配效率。针对上述的问题,目前尚未提出有效的解决方案。
发明内容
为了解决上述技术问题,本发明提供了一种磁盘块的分配方法及装置,能够为待存储文件分配带宽较大且寻道时间较短的磁盘块。
为了达到本发明目的,本发明提供了一种磁盘块的分配方法,包括:接收磁盘块分配指令,其中,接收到的磁盘块分配指令包括待存储文件的数据虚拟地址;从至少一个虚拟设备中确定目标虚拟设备;从确定出的目标虚拟设备的至少一个分区中确定目标分区,其中,所述至少一个分区预先设置有对应的权重,确定出的目标分区为所述至少一个分区中起始地址距离所述数据虚拟地址最近、且权重最高的分区;在确定出的目标分区中,确定用于存储所述待存储文件的目标磁盘块。
进一步地,所述从至少一个虚拟设备中确定目标虚拟设备包括:在所述至少一个虚拟设备中确定元数据为空的虚拟设备,并将所述元数据为空的虚拟设备作为所述目标虚拟设备;或者,采用循环调度算法从所述至少一个虚拟设备中确定所述目标虚拟设备。
进一步地,所述从确定出的目标虚拟设备的至少一个分区中确定目标分区包括:从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;判断查找出的第一分区当前是否正在被压缩;如果否,将查找出的第一分区作为所述目标分区。
进一步地,所述从确定出的目标虚拟设备的至少一个分区中确定目标分区包括:从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;判断查找出的第一分区的分配失败次数是否已经达到预设门限;如果否,将查找出的第一分区作为所述目标分区。
进一步地,所述从确定出的目标虚拟设备的至少一个分区中确定目标分区包括:从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;判断查找出的第一分区的权重是否被修改;如果否,将查找出的第一分区作为所述目标分区。
进一步地,所述在确定出的目标分区中,确定用于存储所述待存储文件的目标磁盘块包括:在确定出目标分区中,判断空闲的磁盘块的数量是否超过预设阈值;如果超过,采用首次适应算法确定所述目标磁盘块;如果未超过,采用最佳适配算法确定所述目标磁盘块。
为了达到本发明目的,本发明提供了一种磁盘块的分配装置,包括:接收单元,用于接收磁盘块分配指令,其中,接收到的磁盘块分配指令包括待存储文件的数据虚拟地址;虚拟设备分配单元,用于从至少一个虚拟设备中确定目标虚拟设备;分区分配单元,用于从确定出的目标虚拟设备的至少一个分区中确定目标分区,其中,所述至少一个分区预先设置有对应的权重,确定出的目标分区为所述至少一个分区中起始地址距离所述数据虚拟地址最近、且权重最高的分区;磁盘块分配单元,用于在确定出的目标分区中,确定用于存储所述待存储文件的目标磁盘块。
进一步地,所述虚拟设备分配单元用于执行以下步骤从至少一个虚拟设备中确定目标虚拟设备:在所述至少一个虚拟设备中确定元数据为空的虚拟设备,并将所述元数据为空的虚拟设备作为所述目标虚拟设备;或者,采用循环调度算法从所述至少一个虚拟设备中确定所述目标虚拟设备。
进一步地,所述分区分配单元用于执行以下步骤从确定出的目标虚拟设备的至少一个分区中确定目标分区:从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;判断查找出的第一分区当前是否正在被压缩;如果否,将查找出的第一分区作为所述目标分区。
进一步地,所述分区分配单元用于执行以下步骤从确定出的目标虚拟设备的至少一个分区中确定目标分区:从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;判断查找出的第一分区的分配失败次数是否已经达到预设门限;如果否,将查找出的第一分区作为所述目标分区。
进一步地,所述分区分配单元用于执行以下步骤从确定出的目标虚拟设备的至少一个分区中确定目标分区:从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;判断查找出的第一分区的权重是否被修改;如果否,将查找出的第一分区作为所述目标分区。
进一步地,所述磁盘块分配单元,包括:判断模块,用于在确定出目标分区中,判断空闲的磁盘块的数量是否超过预设阈值;确定模块,用于如果超过,采用首次适应算法确定所述目标磁盘块;如果未超过,采用最佳适配算法确定所述目标磁盘块。
本发明实施例中,通过遵循分级策略,即选择虚拟设备、选择分区、选择磁盘块的顺序进行分配,在选择分区的时候选择起始地址距离数据虚拟地址最近(减少寻道时间)、且权重最高(带宽较大)的分区,为待存储文件分配带宽较大且寻道时间较短的磁盘块,进而提高了系统性能。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为根据本发明实施例的一种磁盘块的分配方法的流程示意图;
图2为根据本发明实施例的另一种磁盘块的分配方法的流程示意图;
图3是根据本发明实施例的一种磁盘块的分配装置的结构示意图;
图4是根据本发明实施例的一种磁盘块分配单元的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例提供一种磁盘块的分配方法,如图1所示,该方法可以包括以下步骤:
步骤101,接收磁盘块分配指令,其中,接收到的磁盘块分配指令包括待存储文件的数据虚拟地址。
本步骤中,执行磁盘块的分配方法的执行主体可以为磁盘块的分配装置。在有待存储文件的情况下,磁盘块的分配装置会接收到应用层下发的磁盘块分配指令,其中,磁盘块分配指令中包括待存储文件的数据虚拟地址,该数据虚拟地址为应用层的操作系统预先为待存储文件分配的一个逻辑地址。作为磁盘块的分配装置而言,接收到磁盘块分配指令之后,会响应于该磁盘块分配指令,为待存储文件分配磁盘块。
步骤102,从至少一个虚拟设备中确定目标虚拟设备。
本步骤中,磁盘块的分配装置在接收到磁盘块分配指令之后,会响应于该磁盘块分配指令,为待存储文件分配磁盘块。首先,磁盘块的分配装置需要从至少一个虚拟设备中确定目标虚拟设备。其中,在本发明实施例的文件系统架构中,至少一个磁盘块构成一个分区,至少一个分区抽象出一个虚拟设备,虚拟设备作为一个接口与应用层的操作系统进行交互,用于管理属于该虚拟设备的各个分区、各个磁盘块。
可选地,从至少一个虚拟设备中确定目标虚拟设备包括:在至少一个虚拟设备中确定元数据为空的虚拟设备,并将元数据为空的虚拟设备作为目标虚拟设备;或者,采用循环调度算法从至少一个虚拟设备中确定目标虚拟设备。
步骤103,从确定出的目标虚拟设备的至少一个分区中确定目标分区,其中,至少一个分区中的每一个分区预先设置有对应的权重,确定出的目标分区为至少一个分区中起始地址距离数据虚拟地址最近、且权重最高的分区。
本步骤中,确定出的目标分区的数量为一个。由于磁盘块的分配装置预先为每个分区设置有对应的权重(例如,外圈的分区设置较高的权重,内圈的分区的权重小于外圈的分区的权重),因此,确定出的目标分区,其起始地址不仅要距离数据虚拟地址最近,而且其权重还要最高,以保证确定出的目标分区寻道时间较短且带宽较大。在从至少一个虚拟设备中确定目标虚拟设备之后,进一步地,从确定出的目标虚拟设备的至少一个分区中确定目标分区。具体地,确定出的目标分区为至少一个分区中距离数据虚拟地址最近、且权重最高的分区,磁盘块的分配装置预先为各个分区设置对应的权重,对于本实施例而言,因为磁盘具有相同的密度和角动量,外圈区域比内圈区域拥有更大的带宽,外圈与内圈比率通常为2:1,所以外圈的分区有更高的权重,因此,本实施例的磁盘块的分配方法在挑选分区时,是挑选带宽更高的分区,而不是剩余空间最多的分区。
在确定出目标分区之后,如果该目标分区是第一次使用,需要激活该目标分区,如果激活失败,重新选择目标分区。
步骤104,在确定出的目标分区中,确定用于存储待存储文件的目标磁盘块。
本步骤中,在确定出目标分区之后,进一步地,从确定出的分区中确定用于存储待存储文件的目标磁盘块。具体包括:
在确定出的目标分区中,判断空闲的磁盘块的数量是否超过预设阈值;如果超过,采用首次适应(First Fit)算法确定目标磁盘块;如果未超过,采用最佳适配(Best Fit)算法确定目标磁盘块。
具体地,从确定出的分区中确定用于存储待存储文件的目标磁盘块可以包括:在空闲磁盘块充足的情况下使用First Fit算法确定目标磁盘块,在空闲磁盘块不足的情况下使用为Best Fit算法确定目标磁盘块。
其中,First Fit是指从空闲磁盘块表的第一个表目起查找该表,把最先能够满足要求的空闲磁盘块分配给作业,这种方法目的在于减少查找时间。为适应这种算法,空闲磁盘块表中的空闲磁盘块要按地址由低到高进行排序,该算法优先使用低址部分空闲磁盘块。
Best Fit是指从全部空闲磁盘块中找出能满足作业要求的、且大小最小的空闲磁盘块,这种方法能够使碎片尽量小。为适应此算法,空闲磁盘块表中的空闲磁盘块要按大小从小到大进行排序,自表头开始查找到第一个满足要求的自由磁盘块分配。
由上述内容可知,通过遵循分级策略,即选择虚拟设备、选择分区、选择磁盘块的顺序进行分配,在选择分区的时候选择起始地址距离数据虚拟地址最近(减少寻道时间)、且权重最高(带宽较大)的分区,为待存储文件分配带宽较大且寻道时间较短的磁盘块,进而提高了系统性能。
作为一种可选的实施方式,从确定出的目标虚拟设备的至少一个分区中确定目标分区的方法可以包括:
首先,从至少一个分区中查找出距离数据虚拟地址最近、且权重最高的第一分区;其次,判断查找出的第一分区当前是否正在被压缩;最后,如果否,将查找出的第一分区作为目标分区。
其中,磁盘块的分配装置从确定出的目标虚拟设备的至少一个分区中确定目标分区的方法可以为,从至少一个分区中先查找出距离数据虚拟地址最近、且权重最高的第一分区,进而判断查找出的第一分区当前是否被压缩,如果第一分区当前正在被压缩,跳过该第一分区,重新选择除第一分区以外的距离数据虚拟地址最近、且权重最高的分区;如果第一分区当前未被压缩,将该第一分区作为目标分区。
作为另一种可选的实施方式,从确定出的目标虚拟设备的至少一个分区中确定目标分区的方法可以包括:
首先,从至少一个分区中查找出距离数据虚拟地址最近、且权重最高的第一分区;其次,判断查找出的第一分区的分配失败次数是否已经达到预设门限;最后,如果否,将查找出的第一分区作为目标分区。
其中,磁盘块的分配装置从确定出的目标虚拟设备的至少一个分区中确定目标分区的方法可以为,从至少一个分区中先查找出距离数据虚拟地址最近、且权重最高的第一分区,进而判断查找出的第一分区的分配失败次数是否已经达到预设门限,如果第一分区的分配失败次数已经达到预设门限,跳过该第一分区,重新选择除第一分区以外的距离数据虚拟地址最近、且权重最高的分区;如果第一分区的分配失败未达到预设门限,将该第一分区作为目标分区。其中,分配失败是指磁盘块的分配装置将该分区作为目标分区后,该分区无法用于存储待存储文件,磁盘块的分配装置会对每个分区的分配失败次数进行记录。
作为又一种可选的实施方式,从确定出的目标虚拟设备的至少一个分区中确定目标分区的方法可以包括:
首先,从至少一个分区中查找出距离数据虚拟地址最近、且权重最高的第一分区;其次,判断查找出的第一分区的权重是否被修改;最后,如果否,将查找出的第一分区作为目标分区。
其中,磁盘块的分配装置从确定出的目标虚拟设备的至少一个分区中确定目标分区的方法可以为,从至少一个分区中先查找出距离数据虚拟地址最近、且权重最高的第一分区,进而判断查找出的第一分区的权重是否被其他线程修改过,如果第一分区的权重被其他线程修改过,跳过该第一分区,重新选择除第一分区以外的距离数据虚拟地址最近、且权重最高的分区;如果第一分区的权重未被其他线程修改过,将该第一分区作为目标分区。
下面,如图2所示,对本实施例的磁盘块的分配方法进行说明:
步骤A,选择虚拟设备。
其中,本实施例选择虚拟设备的原则可以包括:
a、从负载均衡的角度考虑,优先从新添加的虚拟设备,其中,新添加的虚拟设备是指元数据为空的虚拟设备;
b、在其它条件相同的情况下,使用round-robin(循环调度法)在至少一个虚拟设备之间选择目标虚拟设备;
c、如果某个虚拟设备不适合参与磁盘块分配,直接跳过;
d、对于特定的I/O(Input/Output,读/写)模式需要选择特定的切换方法;
e、对于日志文件,每写入一个日志就切换一个虚拟设备,因为日志存在都是短暂的,并且从来不读取这些数据,因此在写入时以能获取到更高的IOPS(Input/OutputOperations Per Second,每秒进行读写操作的次数)为目标。
步骤B,选择分区。
其中,本实施例选择分区的原则可以包括:
a、从选定的目标虚拟设备中找出距离数据虚拟地址最近、且权重最高的分区(离数据虚拟地址越近,需要的寻道时间越小,速度就越快);
b、当一个虚拟设备基本为空时,始终从外圈分配空间,可以减少磁盘查找(seek)的次数来提高带宽和减少延时;
c、被选择的分区是否已经达到允许分配失败的最高次数,如果达到了,需要考虑跳过这个分区;
d、被选择的分区权重是否在此过程中被其它线程修改过,如果修改过导致不符合条件,需要重新选择;
e、如果选出的分区正在被压缩,需要重新选择。
本实施例的磁盘块的分配方法,在选择虚拟设备、选择分区、选择磁盘块每一个环节中,都有多种选择策略,保证选中的磁盘块是最优解。
步骤C,选择磁盘块。
其中,本实施例选择磁盘块的原则可以包括:在空闲磁盘块充足的情况下使用First Fit算法确定目标磁盘块,空闲磁盘块不足的情况下切换为Best Fit算法确定目标磁盘块。
其中,First Fit是指从空闲磁盘块表的第一个表目起查找该表,把最先能够满足要求的空闲磁盘块分配给作业,这种方法目的在于减少查找时间。为适应这种算法,空闲磁盘块表中的空闲磁盘块要按地址由低到高进行排序,该算法优先使用低址部分空闲磁盘块。Best Fit是指从全部空闲磁盘块中找出能满足作业要求的、且大小最小的空闲磁盘块,这种方法能够使碎片尽量小。为适应此算法,空闲磁盘块表中的空闲磁盘块要按大小从小到大进行排序,自表头开始查找到第一个满足要求的自由磁盘块分配。
在本实施例的磁盘块的分配方法中,将虚拟设备(virtual devices)的存储空间划分为不同的分区(metaslab),并为每个分区定义了自己的权重(weight),在磁盘块的分配过程中按照选择虚拟设备、选择分区、选择磁盘块的顺序进行,且这三部分相互独立且可插拔,可以根据意愿修改而无需修改磁盘上的格式,在设备选择上有很大的灵活性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括如果干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
根据本发明实施例,还提供了一种用于实施上述方法实施例的装置实施例,本申请上述实施例所提供的装置可以在计算机终端上运行。
图3是根据本申请实施例的磁盘块的分配装置的结构示意图,如图3所示,该磁盘块的分配装置可以包括接收单元301、虚拟设备分配单元302、分区分配单元303以及磁盘块分配单元304。
其中,接收单元301,用于接收磁盘块分配指令,其中,接收到的磁盘块分配指令包括待存储文件的数据虚拟地址;虚拟设备分配单元302,用于从至少一个虚拟设备中确定目标虚拟设备;分区分配单元303,用于从确定出的目标虚拟设备的至少一个分区中确定目标分区,其中,所述至少一个分区预先设置有对应的权重,确定出的目标分区为所述至少一个分区中起始地址距离所述数据虚拟地址最近、且权重最高的分区;磁盘块分配单元304,用于在确定出的目标分区中,确定用于存储所述待存储文件的目标磁盘块。
由上可知,本申请上述实施例所提供的方案,通过遵循分级策略,即选择虚拟设备、选择分区、选择磁盘块的顺序进行分配,在每一层的分配上根据设备的特点进行选择,确定出最优的磁盘块,进而增加磁盘块分配的灵活性,提高了系统性能。
此处需要说明的是,上述接收单元301、虚拟设备分配单元302、分区分配单元303以及磁盘块分配单元304对应于上述的S101至S104,四个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在计算机终端中,可以通过软件实现,也可以通过硬件实现。
可选地,所述虚拟设备分配单元302用于执行以下步骤从至少一个虚拟设备中确定目标虚拟设备:在所述至少一个虚拟设备中确定元数据为空的虚拟设备,并将所述元数据为空的虚拟设备作为所述目标虚拟设备;或者,采用循环调度算法从所述至少一个虚拟设备中确定所述目标虚拟设备。
可选地,所述分区分配单元303用于执行以下步骤从确定出的目标虚拟设备的至少一个分区中确定目标分区:从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;判断查找出的第一分区当前是否正在被压缩;如果否,将查找出的第一分区作为所述目标分区。
可选地,所述分区分配单元303用于执行以下步骤从确定出的目标虚拟设备的至少一个分区中确定目标分区:从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;判断查找出的第一分区的分配失败次数是否已经达到预设门限;如果否,将查找出的第一分区作为所述目标分区。
可选地,所述分区分配单元303用于执行以下步骤从确定出的目标虚拟设备的至少一个分区中确定目标分区:从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;判断查找出的第一分区的权重是否被修改;如果否,将查找出的第一分区作为所述目标分区。
可选地,如图4所示,所述磁盘块分配单元304包括:判断模块401和确定模块402。
其中,判断模块401,用于在确定出目标分区中,判断空闲的磁盘块的数量是否超过预设阈值;确定模块402,用于如果超过,采用首次适应算法确定所述目标磁盘块;如果未超过,采用最佳适配算法确定所述目标磁盘块。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括如果干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出如果干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (12)
1.一种磁盘块的分配方法,其特征在于,包括:
接收磁盘块分配指令,其中,接收到的磁盘块分配指令包括待存储文件的数据虚拟地址;
从至少一个虚拟设备中确定目标虚拟设备;
从确定出的目标虚拟设备的至少一个分区中确定目标分区,其中,所述至少一个分区预先设置有对应的权重,确定出的目标分区为所述至少一个分区中起始地址距离所述数据虚拟地址最近、且权重最高的分区,其中,所述分区对应的权重的大小与所述分区的带宽的大小成正比;
在确定出的目标分区中,确定用于存储所述待存储文件的目标磁盘块。
2.根据权利要求1所述的磁盘块的分配方法,其特征在于,所述从至少一个虚拟设备中确定目标虚拟设备包括:
在所述至少一个虚拟设备中确定元数据为空的虚拟设备,并将所述元数据为空的虚拟设备作为所述目标虚拟设备;
或者,
采用循环调度算法从所述至少一个虚拟设备中确定所述目标虚拟设备。
3.根据权利要求1所述的磁盘块的分配方法,其特征在于,所述从确定出的目标虚拟设备的至少一个分区中确定目标分区包括:
从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;
判断查找出的第一分区当前是否正在被压缩;
如果否,将查找出的第一分区作为所述目标分区。
4.根据权利要求1所述的磁盘块的分配方法,其特征在于,所述从确定出的目标虚拟设备的至少一个分区中确定目标分区包括:
从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;
判断查找出的第一分区的分配失败次数是否已经达到预设门限;
如果否,将查找出的第一分区作为所述目标分区。
5.根据权利要求1所述的磁盘块的分配方法,其特征在于,所述从确定出的目标虚拟设备的至少一个分区中确定目标分区包括:
从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;
判断查找出的第一分区的权重是否被修改;
如果否,将查找出的第一分区作为所述目标分区。
6.根据权利要求1至5中任一项所述的磁盘块的分配方法,其特征在于,所述在确定出的目标分区中,确定用于存储所述待存储文件的目标磁盘块包括:
在确定出目标分区中,判断空闲的磁盘块的数量是否超过预设阈值;
如果超过,采用首次适应算法确定所述目标磁盘块;
如果未超过,采用最佳适配算法确定所述目标磁盘块。
7.一种磁盘块的分配装置,其特征在于,包括:
接收单元,用于接收磁盘块分配指令,其中,接收到的磁盘块分配指令包括待存储文件的数据虚拟地址;
虚拟设备分配单元,用于从至少一个虚拟设备中确定目标虚拟设备;
分区分配单元,用于从确定出的目标虚拟设备的至少一个分区中确定目标分区,其中,所述至少一个分区预先设置有对应的权重,确定出的目标分区为所述至少一个分区中起始地址距离所述数据虚拟地址最近、且权重最高的分区,所述分区对应的权重的大小与所述分区的带宽的大小成正比;
磁盘块分配单元,用于在确定出的目标分区中,确定用于存储所述待存储文件的目标磁盘块。
8.根据权利要求7所述的磁盘块的分配装置,其特征在于,所述虚拟设备分配单元用于执行以下步骤从至少一个虚拟设备中确定目标虚拟设备:
在所述至少一个虚拟设备中确定元数据为空的虚拟设备,并将所述元数据为空的虚拟设备作为所述目标虚拟设备;
或者,
采用循环调度算法从所述至少一个虚拟设备中确定所述目标虚拟设备。
9.根据权利要求7所述的磁盘块的分配装置,其特征在于,所述分区分配单元用于执行以下步骤从确定出的目标虚拟设备的至少一个分区中确定目标分区:
从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;
判断查找出的第一分区当前是否正在被压缩;
如果否,将查找出的第一分区作为所述目标分区。
10.根据权利要求7所述的磁盘块的分配装置,其特征在于,所述分区分配单元用于执行以下步骤从确定出的目标虚拟设备的至少一个分区中确定目标分区:
从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;
判断查找出的第一分区的分配失败次数是否已经达到预设门限;
如果否,将查找出的第一分区作为所述目标分区。
11.根据权利要求7所述的磁盘块的分配装置,其特征在于,所述分区分配单元用于执行以下步骤从确定出的目标虚拟设备的至少一个分区中确定目标分区:
从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;
判断查找出的第一分区的权重是否被修改;
如果否,将查找出的第一分区作为所述目标分区。
12.根据权利要求7至11中任一项所述的磁盘块的分配装置,其特征在于,所述磁盘块分配单元,包括:
判断模块,用于在确定出目标分区中,判断空闲的磁盘块的数量是否超过预设阈值;
确定模块,用于如果超过,采用首次适应算法确定所述目标磁盘块;如果未超过,采用最佳适配算法确定所述目标磁盘块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510583538.4A CN105278873B (zh) | 2015-09-14 | 2015-09-14 | 一种磁盘块的分配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510583538.4A CN105278873B (zh) | 2015-09-14 | 2015-09-14 | 一种磁盘块的分配方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105278873A CN105278873A (zh) | 2016-01-27 |
CN105278873B true CN105278873B (zh) | 2018-10-19 |
Family
ID=55147960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510583538.4A Active CN105278873B (zh) | 2015-09-14 | 2015-09-14 | 一种磁盘块的分配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105278873B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109445684B (zh) | 2018-09-20 | 2021-11-26 | 华为技术有限公司 | 一种分布式存储系统中硬盘的资源分配方法及设备 |
CN113688062B (zh) * | 2020-05-18 | 2022-08-26 | 北京市商汤科技开发有限公司 | 用于存储数据的方法和相关产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7535672B2 (en) * | 2005-01-05 | 2009-05-19 | Hitachi Global Storage Technologies Netherlands B.V | Magnetic disk drive with elastic support member |
CN101526885A (zh) * | 2009-04-21 | 2009-09-09 | 杭州华三通信技术有限公司 | 一种提升独立磁盘冗余阵列性能的方法及其控制器 |
CN102270105A (zh) * | 2011-08-08 | 2011-12-07 | 东软集团股份有限公司 | 独立磁盘阵列、网络采集数据处理方法及系统 |
CN103493027A (zh) * | 2011-04-25 | 2014-01-01 | 微软公司 | 虚拟磁盘存储技术 |
US9098462B1 (en) * | 2010-09-14 | 2015-08-04 | The Boeing Company | Communications via shared memory |
-
2015
- 2015-09-14 CN CN201510583538.4A patent/CN105278873B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7535672B2 (en) * | 2005-01-05 | 2009-05-19 | Hitachi Global Storage Technologies Netherlands B.V | Magnetic disk drive with elastic support member |
CN101526885A (zh) * | 2009-04-21 | 2009-09-09 | 杭州华三通信技术有限公司 | 一种提升独立磁盘冗余阵列性能的方法及其控制器 |
US9098462B1 (en) * | 2010-09-14 | 2015-08-04 | The Boeing Company | Communications via shared memory |
CN103493027A (zh) * | 2011-04-25 | 2014-01-01 | 微软公司 | 虚拟磁盘存储技术 |
CN102270105A (zh) * | 2011-08-08 | 2011-12-07 | 东软集团股份有限公司 | 独立磁盘阵列、网络采集数据处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105278873A (zh) | 2016-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101557315B (zh) | 一种主备切换方法、装置及系统 | |
KR101502896B1 (ko) | 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법 | |
US10728050B2 (en) | Method of terminal-based conference load-balancing, and device and system utilizing same | |
CN102970379A (zh) | 在多个服务器之间实现负载均衡的方法 | |
CN105183565A (zh) | 计算机、服务质量控制方法及装置 | |
CN107665146A (zh) | 内存管理装置和方法 | |
CN103516744A (zh) | 一种数据处理的方法和应用服务器及集群 | |
CN106648872A (zh) | 用于多线程处理的方法及装置、服务器 | |
CN108519917A (zh) | 一种资源池分配方法和装置 | |
CN106790552B (zh) | 一种基于内容分发网络的内容提供系统 | |
CN104426694A (zh) | 一种调整虚拟机资源的方法和装置 | |
CN110708377A (zh) | 一种数据传输方法、装置和存储介质 | |
CN105446653A (zh) | 一种数据合并方法和设备 | |
US8965995B2 (en) | Wireless storage management system | |
CN104935636A (zh) | 网络通道加速方法和系统 | |
CN102508786B (zh) | 优化空间利用率芯片设计方法及其芯片 | |
US11050661B2 (en) | Creating an aggregation group | |
CN108694083B (zh) | 一种服务器的数据处理方法和装置 | |
CN105278873B (zh) | 一种磁盘块的分配方法及装置 | |
CN101196928A (zh) | 一种内容搜索方法、系统以及引擎分发单元 | |
CN104202386A (zh) | 一种高并发量分布式文件系统及其二次负载均衡方法 | |
CN102970349A (zh) | 一种dht网络的存储负载均衡方法 | |
CN105704037B (zh) | 一种表项保存方法和控制器 | |
CN105450679A (zh) | 进行数据云存储的方法及系统 | |
US9846658B2 (en) | Dynamic temporary use of packet memory as resource memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |