一种磁盘空间分配方法及装置制造方法及图纸

技术编号:12798799 阅读:53 留言:0更新日期:2016-01-30 20:06
本发明专利技术公开了一种磁盘空间分配方法及装置,该方法包括:所述磁盘空间被划分为至少两个区域空间,将LUN的逻辑区块地址LBA按照设定长度划分成多个LBA分段;确定每个LBA分段对应的覆盖写频率;当接收到覆盖写操作申请可变长度小块磁盘空间grain的请求时,确定该覆盖写操作所在的第一LBA分段,获取所述第一LBA分段对应的第一覆盖写频率;从所述至少两个区域空间中,确定与所述第一覆盖写频率对应的目标区域空间;从所述目标区域空间中分配grain给所述覆盖写操作。本发明专利技术公开的方法及装置及系统解决现有技术LUN中不同LBA地址区域存在访问频度的差异,导致磁盘中出现大量碎片空间在allocator中堆积的问题。

【技术实现步骤摘要】

本专利技术涉及电子
,尤其涉及一种磁盘空间分配方法及装置
技术介绍
对于高端存储来说,磁盘阵列(RedundantArrays of Independent Disks,RAID)和快照是所有上层应用的基础。RAID、分层和存储瘦分配关系很大,有一个好的RAID基础,如采用RAID 2.0块虚拟化技术,上层的动态分层和精简配置应用实现就会更加灵活和高效。同样,快照技术是灾备的基础,在逻辑单元号(Logical Unit Number, LUN)的复制、迀移、数据的本地备份、远程复制等等都需要用到快照技术的支持。目前实现快照一般有两种方法,传统的存储快照技术(Copy-On-Write,COW)和现在渐渐流行的基于写重定向的存储快照技术(Redirect-0n-Write,ROW)。在采用写时重定向(Redirect on write,ROW)方式的LUN设备中,同一个物理存储空间小块(grain),可能被不同的逻辑区块地址((Logical Block Address,LBA)所指向(如图1所示)。在对一个已经写过数据的LBA再次写数据(或称为覆盖写)时,由于原LBA指向的grain仍被其他LBA指向,无法直接修改原grain的内容,只能重新申请grain空间写入新数据。Grain的分配由磁盘空间管理模块磁盘空间分配器(allocator)负责,allocator从资源池(pool)中取到固定长度的大块连续物理空间(extent),再将extent切分为不同大小的可变长度小块磁盘空间(grain)提供给rowlun读写。由于LUN中不同LBA地址区域存在访问频度的差异,对于分配到覆盖写频度较高LBA区域的grain,可以很快被再次覆盖写,原grain被释放回allocator ;而对于分配到覆盖写频度较低LBA区域的grain,则可能一直被占用。如果一直被占用的grain来自于同一extent,会导致该extent在allocator无法合并为完整的extent,也就无法释放回pool。出现大量碎片空间在allocator中堆积的现象,从而会导致严重的管理资源开销和分配性能的降低。
技术实现思路
本专利技术实施例提供一种磁盘空间分配方法及装置,以解决现有技术中由于LUN中不同LBA地址区域存在访问频度的差异,导致磁盘中出现大量碎片空间在allocator中堆积,从而使得磁盘的分配性能降低的问题。第一方面,提供一种磁盘空间分配方法,所述磁盘空间被划分为至少两个区域空间,该方法包括:将逻辑单元号LUN的逻辑区块地址LBA按照设定长度划分成多个LBA分段;确定每个LBA分段对应的覆盖写频率;当接收到覆盖写操作申请可变长度小块磁盘空间grain的请求时,确定该覆盖写操作所在的第一 LBA分段,获取所述第一 LBA分段对应的第一覆盖写频率;从所述至少两个区域空间中,确定与所述第一覆盖写频率对应的目标区域空间;从所述目标区域空间中分配grain给所述覆盖写操作。结合第一方面,在第一种可能的实现方式中,所述至少一个区域空间包括第一区域空间和第二区域空间,则确定与所述第一覆盖写频率对应的目标区域空间包括:判断所述第一覆盖写频率是否大于设定阈值,如果是,则确定所述第一区域空间为所述目标区域空间;否则,确定所述第二区域空间为所述目标区域空间。结合第一方面的第一种可能的实现方式,在第而种可能的实现方式中,该方法进一步包括:当从资源池中分配extent到所述第一区域空间或第二区域空间时,如果确定所述资源池中的任一 extent是从所述第一区域空间中释放的,则将所述任一 extent分配到所述第二区域空间中。结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,确定所述资源池中的任一 extent是从所述第一区域空间中释放的,包括:获取所述任一 extent对应的标签信息,根据所述标签信息确定释放所述任一extent的区域空间;其中,该标签信息用于表示回收所述任一 extent时,释放所述任一extent的区域空间。结合第一方面,或者第一方面的第一至三种可能的实现方式中的任意一种,在第四种可能的实现方式中,所述LBA分段对应的覆盖写频率为设定时间段内每个LBA分段所对应的写请求次数。第二方面,提供一种磁盘空间分配装置,该磁盘空间被划分为至少两个区域空间,该装置包括:分段模块,用于将LUN的逻辑区块地址LBA按照设定长度划分成多个LBA分段;计算模块,用于确定每个LBA分段对应的覆盖写频率;确定模块,用于当接收到覆盖写操作申请可变长度小块磁盘空间grain的请求时,确定该覆盖写操作所在的第一 LBA分段,获取所述第一 LBA分段对应的第一覆盖写频率;分配模块,用于从所述至少两个区域空间中,确定与所述第一覆盖写频率对应的目标区域空间;并从所述目标区域空间中分配grain给所述覆盖写操作。结合第二方面,在第一种可能的实现方式中,所述至少一个区域空间包括第一区域空间和第二区域空间,所述分配模块具体用于判断所述第一覆盖写频率是否大于设定阈值,如果是,则确定所述第一区域空间为所述目标区域空间;否则,确定所述第二区域空间为所述目标区域空间。结合第二方面的第一种可能的实现方式,在第而种可能的实现方式中,该装置包括:资源分配模块,用于当从资源池中分配extent到所述第一区域空间或第二区域空间时,如果确定所述资源池中的任一 extent是从所述第一区域空间中释放的,则将所述任一 extent分配到所述第二区域空间中。结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,资源分配模块具体用于获取所述任一 extent对应的标签信息,根据所述标签信息确定释放所述任一 extent的区域空间;其中,该标签信息用于表示回收所述任一 extent时,释放所述任一extent的区域空间。结合第二方面,或者第二方面的第一至三种可能的实现方式中的任意一种,在第四种可能的实现方式中,所述计算模块具体用于根据设定时间段内每个LBA分段所对应的写请求次数确定每个LBA分段对应的覆盖写频率。第三方面,提供一种存储设备,该装置包括:磁盘,该磁盘的空间被划分为至少两个区域空间;处理器,用于将LUN的逻辑区块地址LBA按照设定长度划分成多个LBA分段;确定每个LBA分段对应的覆盖写频率;当接收到覆盖写操作申请可变长度小块磁盘空间grain的请求时,确定该覆盖写操作所在的第一 LBA分段,获取所述第一 LBA分段对应的第一覆盖写频率;从所述磁盘至少两个区域空间中,确定与所述第一覆盖写频率对应的目标区域空间;并从所述目标区域空间中分配grain给所述覆盖写操作。上述技术方案中的一个或两个,至少具有如下技术效果:本专利技术实施例所提供的方案,首先将磁盘划分成了多个区域空间,根据每个LBA分段的覆盖写频率,将覆盖写频率不同的grain请求分配到不同的区域空间中,使得覆盖写频率相近的grain请求分配到同一区域空间。从而使得覆盖写频率低的grain控制在一定的extent中,有效的减小了磁盘碎片出现的可能,从而确保磁盘空间集中分配和释放,有效避免了覆盖写频率不同导致的extent空间无法合并释放的问题。而且对于单LBA区域的空间,来自覆盖写频率相似本文档来自技高网
...
一种磁盘空间分配方法及装置

【技术保护点】
一种磁盘空间分配方法,其特征在于,所述磁盘空间被划分为至少两个区域空间,该方法包括:将逻辑单元号LUN的逻辑区块地址LBA按照设定长度划分成多个LBA分段;确定每个LBA分段对应的覆盖写频率;当接收到覆盖写操作申请可变长度小块磁盘空间grain的请求时,确定该覆盖写操作所在的第一LBA分段,获取所述第一LBA分段对应的第一覆盖写频率;从所述至少两个区域空间中,确定与所述第一覆盖写频率对应的目标区域空间;从所述目标区域空间中分配grain给所述覆盖写操作。

【技术特征摘要】

【专利技术属性】
技术研发人员:黄焰张宗全付旭东
申请(专利权)人:成都华为技术有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1