一种磁盘块的分配方法及装置的制造方法

文档序号:9523915阅读:401来源:国知局
一种磁盘块的分配方法及装置的制造方法
【技术领域】
[0001]本发明涉及数据存储领域,尤指一种磁盘块的分配方法及装置。
【背景技术】
[0002]磁盘块(block)的分配是每个文件系统的中枢,不仅会影响到系统的性能,而且会影响到管理模块(如条带化配置)的效率,甚至会影响到事务、压缩以及快照之间共享磁盘块等一些核心的功能,确保磁盘块分配的正确性变得尤为重要。
[0003]现有技术中的磁盘块分配方法大多采用连续分配法,而该方法存在着明显的缺陷,例如磁盘分配的寻道时间(寻道时间是指磁光盘机在接收到系统的磁盘块分配指令后,磁头从开始移动到所需磁道所用的时间)较长,并且当存在坏磁盘块时,导致磁盘块分配失败,降低了磁盘块分配效率。针对上述的问题,目前尚未提出有效的解决方案。

【发明内容】

[0004]为了解决上述技术问题,本发明提供了一种磁盘块的分配方法及装置,能够为待存储文件分配带宽较大且寻道时间较短的磁盘块。
[0005]为了达到本发明目的,本发明提供了一种磁盘块的分配方法,包括:接收磁盘块分配指令,其中,接收到的磁盘块分配指令包括待存储文件的数据虚拟地址;从至少一个虚拟设备中确定目标虚拟设备;从确定出的目标虚拟设备的至少一个分区中确定目标分区,其中,所述至少一个分区预先设置有对应的权重,确定出的目标分区为所述至少一个分区中起始地址距离所述数据虚拟地址最近、且权重最高的分区;在确定出的目标分区中,确定用于存储所述待存储文件的目标磁盘块。
[0006]进一步地,所述从至少一个虚拟设备中确定目标虚拟设备包括:在所述至少一个虚拟设备中确定元数据为空的虚拟设备,并将所述元数据为空的虚拟设备作为所述目标虚拟设备;或者,采用循环调度算法从所述至少一个虚拟设备中确定所述目标虚拟设备。
[0007]进一步地,所述从确定出的目标虚拟设备的至少一个分区中确定目标分区包括:从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;判断查找出的第一分区当前是否正在被压缩;如果否,将查找出的第一分区作为所述目标分区。
[0008]进一步地,所述从确定出的目标虚拟设备的至少一个分区中确定目标分区包括:从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;判断查找出的第一分区的分配失败次数是否已经达到预设门限;如果否,将查找出的第一分区作为所述目标分区。
[0009]进一步地,所述从确定出的目标虚拟设备的至少一个分区中确定目标分区包括:从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;判断查找出的第一分区的权重是否被修改;如果否,将查找出的第一分区作为所述目标分区。
[0010]进一步地,所述在确定出的目标分区中,确定用于存储所述待存储文件的目标磁盘块包括:在确定出目标分区中,判断空闲的磁盘块的数量是否超过预设阈值;如果超过,采用首次适应算法确定所述目标磁盘块;如果未超过,采用最佳适配算法确定所述目标磁盘块。
[0011]为了达到本发明目的,本发明提供了一种磁盘块的分配装置,包括:接收单元,用于接收磁盘块分配指令,其中,接收到的磁盘块分配指令包括待存储文件的数据虚拟地址;虚拟设备分配单元,用于从至少一个虚拟设备中确定目标虚拟设备;分区分配单元,用于从确定出的目标虚拟设备的至少一个分区中确定目标分区,其中,所述至少一个分区预先设置有对应的权重,确定出的目标分区为所述至少一个分区中起始地址距离所述数据虚拟地址最近、且权重最高的分区;磁盘块分配单元,用于在确定出的目标分区中,确定用于存储所述待存储文件的目标磁盘块。
[0012]进一步地,所述虚拟设备分配单元用于执行以下步骤从至少一个虚拟设备中确定目标虚拟设备:在所述至少一个虚拟设备中确定元数据为空的虚拟设备,并将所述元数据为空的虚拟设备作为所述目标虚拟设备;或者,采用循环调度算法从所述至少一个虚拟设备中确定所述目标虚拟设备。
[0013]进一步地,所述分区分配单元用于执行以下步骤从确定出的目标虚拟设备的至少一个分区中确定目标分区:从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;判断查找出的第一分区当前是否正在被压缩;如果否,将查找出的第一分区作为所述目标分区。
[0014]进一步地,所述分区分配单元用于执行以下步骤从确定出的目标虚拟设备的至少一个分区中确定目标分区:从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;判断查找出的第一分区的分配失败次数是否已经达到预设门限;如果否,将查找出的第一分区作为所述目标分区。
[0015]进一步地,所述分区分配单元用于执行以下步骤从确定出的目标虚拟设备的至少一个分区中确定目标分区:从所述至少一个分区中查找出距离所述数据虚拟地址最近、且权重最高的第一分区;判断查找出的第一分区的权重是否被修改;如果否,将查找出的第一分区作为所述目标分区。
[0016]进一步地,所述磁盘块分配单元,包括:判断模块,用于在确定出目标分区中,判断空闲的磁盘块的数量是否超过预设阈值;确定模块,用于如果超过,采用首次适应算法确定所述目标磁盘块;如果未超过,采用最佳适配算法确定所述目标磁盘块。
[0017]本发明实施例中,通过遵循分级策略,即选择虚拟设备、选择分区、选择磁盘块的顺序进行分配,在选择分区的时候选择起始地址距离数据虚拟地址最近(减少寻道时间)、且权重最高(带宽较大)的分区,为待存储文件分配带宽较大且寻道时间较短的磁盘块,进而提尚了系统性能。
[0018]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
【附图说明】
[0019]附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
[0020]图1为根据本发明实施例的一种磁盘块的分配方法的流程示意图;
[0021]图2为根据本发明实施例的另一种磁盘块的分配方法的流程示意图;
[0022]图3是根据本发明实施例的一种磁盘块的分配装置的结构示意图;
[0023]图4是根据本发明实施例的一种磁盘块分配单元的结构示意图。
【具体实施方式】
[0024]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0025]在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0026]本发明实施例提供一种磁盘块的分配方法,如图1所示,该方法可以包括以下步骤:
[0027]步骤101,接收磁盘块分配指令,其中,接收到的磁盘块分配指令包括待存储文件的数据虚拟地址。
[0028]本步骤中,执行磁盘块的分配方法的执行主体可以为磁盘块的分配装置。在有待存储文件的情况下,磁盘块的分配装置会接收到应用层下发的磁盘块分配指令,其中,磁盘块分配指令中包括待存储文件的数据虚拟地址,该数据虚拟地址为应用
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1