一种优化的磁盘空间管理的方法及装置的制造方法
【技术领域】
[0001]本发明涉及存储管理技术领域,特别是涉及一种优化的磁盘空间管理的方法及装置。
【背景技术】
[0002]目前,在存储领域,磁盘是必不可少的组成部分,在进行存储开发时,如何实现对磁盘空间的管理是其中非常重要的一个研究领域,通常在进行磁盘管理时,是通过分块管理的方式实现的,即将一个完整的磁盘根据存储的数据的类型,按照合适的长度将其分成若干个块,而后以块为单位进行磁盘的使用。当有1dnput Output,输入输出)数据传入时,系统为容纳新数据需要为数据分配一个新的块,并将该块映射到内存中,1数据会写到内存中,而一旦执行了数据落盘的操作,则内存中的数据则会写到对应的磁盘块中。
[0003]由于磁盘在寻找空的块时,一般会从采用顺序寻找的方式,那么当数据频繁读写或更新时,有可能造成磁盘中部分区域的块被频繁地回收或写入数据,使得磁盘部分区域的使用频率显著地超过其他区域,因为磁盘可反复读写的次数存在一个极限,因而容易造成因磁盘局部达到读写极限发生永久损坏后,造成整个磁盘的报废。
[0004]所以在进行磁盘管理时,如果管理机制不完善,可能就会存在对磁盘空间的使用极不均衡的情况,具体表现为对磁盘空间的部分区域可能会频繁的刷写数据,而其他部分则极少使用,这就造成磁盘局部负载过重,从而容易造成该部分区域发生故障的几率大增,并最终影响磁盘寿命。
【发明内容】
[0005]本发明的目的是提供一种优化的磁盘空间管理的方法及装置,以实现避免磁盘局部负载过重,提高磁盘的寿命和利用率。
[0006]为解决上述技术问题,本发明提供一种优化的磁盘空间管理的方法,包括:
[0007]计算磁盘中各个空的数据块的使用频度;
[0008]按照使用频度从小到大的顺序对所述各个空的数据块进行排列;
[0009]当1数据传入时,从所述各个空的数据块中选取使用频度最小的空的第一数据块并写入所述1数据;
[0010]当所述第一数据块中存储的所述1数据写出时,对所述第一数据块进行回收,并将所述第一数据块的使用频度计数加一。
[0011]优选的,所述按照使用频度从小到大的顺序对所述各个空的数据块进行排列,包括:
[0012]采用B+树算法,按照使用频度从小到大的顺序对所述各个空的数据块进行排列。
[0013]优选的,采用B+树算法,按照使用频度从小到大的顺序对所述各个空的数据块进行排列,包括:
[0014]建立一个B+树;其中,所述B+数为空块树;所述空块树上每个树元素用来保存当前空的数据块,所述空块树上的每个树元素的标记包括保存的空的数据块的块号和使用频度;
[0015]利用B+算法对所述B+树进行改变,将B+树变换为使用频度由小到大分布的空块树;其中,所述B+树中的最左侧的树元素为使用频度最小的空的数据块。
[0016]优选的,所述从所述各个空的数据块中选取使用频度最小的空的数据块并写入所述1数据之后,还包括:
[0017]当所述1数据进行更改时,从所述硬盘中剩余的数据块中选取使用频度最小的第二数据块,将所述第一块中的1数据转入内存中进行修改,并将修改后的1数据转至所述第二数据块。
[0018]优选的,所述当所述1数据进行更改时,从所述硬盘中剩余的数据块中选取使用频度最小的第二数据块,将所述第一块中的1数据转入内存中进行修改,并将修改后的1数据转至所述第二数据块,包括:
[0019]当所述1数据进行更改时,从所述硬盘中剩余的数据块中选取使用频度最小的第二数据块,将所述第二数据块映射到内存中,形成所述第二模块的映射镜像;
[0020]将所述第一数据块中的所述1数据复制到所述第二数据块的映射镜像中,在所述第二数据块的映射镜像中形成1数据复本;
[0021]将所述第二数据块的映射镜像中的1数据复本进行修改,将改后的1数据复本写入至所述第二数据块中;
[0022]删除所述第一数据块中的所述1数据,回收所述第一数据块,将所述第一数据块的使用频度计数加一。
[0023]本发明还提供一种优化的磁盘空间管理的装置,该装置包括:
[0024]计算模块,用于计算磁盘中各个空的数据块的使用频度;
[0025]排列模块,用于按照使用频度从小到大的顺序对所述各个空的数据块进行排列;
[0026]写入模块,用于当10数据传入时,从所述各个空的数据块中选取使用频度最小的空的第一数据块并写入所述1数据;
[0027]计数模块,用于当所述第一数据块中存储的所述1数据写出时,对所述第一数据块进行回收,并将所述第一数据块的使用频度计数加一。
[0028]优选的,所述排列模块包括B+树排列模块,用于采用B+树算法,按照使用频度从小到大的顺序对所述各个空的数据块进行排列。
[0029]优选的,所述B+树排列模块包括:
[0030]建立单元,用于建立一个B+树;其中,所述B+数为空块树;所述空块树上每个树元素用来保存当前空的数据块,所述空块树上的每个树元素的标记包括保存的空的数据块的块号和使用频度;
[0031 ] 变换单元,用于利用B+算法对该B+树进行改变,将B+树变换为使用频度由小到大分布的空块树;其中,所述B+树中的最左侧的树元素为使用频度最小的空的数据块。
[0032]优选的,所述装置还包括:
[0033]数据更改模块,用于当所述1数据进行更改时,从所述硬盘中剩余的数据块中选取使用频度最小的第二数据块,将所述第一块中的1数据转入内存中进行修改,并将修改后的1数据转至所述第二数据块。
[0034]优选的,所述数据更改模块包括:
[0035]选取单元,用于当所述1数据进行更改时,从所述硬盘中剩余的数据块中选取使用频度最小的第二数据块,将所述第二数据块映射到内存中,形成所述第二模块的映射镜像;
[0036]复制单元,用于将所述第一数据块中的所述1数据复制到所述第二数据块的映射镜像中,在所述第二数据块的映射镜像中形成1数据复本;
[0037]修改单元,用于将所述第二数据块的映射镜像中的1数据复本进行修改,将改后的1数据复本写入至所述第二数据块中;
[0038]回收模块,用于删除所述第一数据块中的所述1数据,回收所述第一数据块,将所述第一数据块的使用频度计数加一。
[0039]本发明所提供的一种优化的磁盘空间管理的方法及装置,计算磁盘中各个空的数据块的使用频度;按照使用频度从小到大的顺序对各个空的数据块进行排列;当1数据传入时,从各个空的数据块中选取使用频度最小的空的第一数据块并写入1数据;当第一数据块中存储的1数据写出时,对所述第一数据块进行回收,并将所述第一数据块的使用频度计数加一。可见,通过统计磁盘中各个空的数据块的使用频度,使得在分配新的数据块时,使用频度较低的空的数据块能够被优先分配使用,从而在整体上保证各个数据块都能比较均衡的被使用,进而从整体上提高磁盘的寿命和利用率。
【附图说明】
[0040]为了更清楚地说明本发明实施例或现有技术中的技术方案,