存储系统数据写时拷贝的处理方法和处理装置的制造方法

文档序号:8943001阅读:401来源:国知局
存储系统数据写时拷贝的处理方法和处理装置的制造方法
【技术领域】
[0001]本发明涉及存储技术领域,特别涉及一种存储系统数据写时拷贝的处理方法和处理装置。
【背景技术】
[0002]存储系统的一个重要功能,就是将系统中多个物理磁盘空间组织成连续的逻辑存储空间提供给上层应用。目前,现有技术的通常做法是将多个物理磁盘空间合并成一个统一的逻辑地址空间,再从该逻辑地址空间划分一部分形成逻辑卷的地址空间,并将逻辑卷提供给上层应用。采用这种空间管理方式就要求存储系统维护物理磁盘空间到逻辑存储空间的地址映射关系,为了实现物理/逻辑地址映射,现有存储系统通常采用两种数据组织方式:定长块组织方式和变长块组织方式。
[0003]定长块组织方式是将物理磁盘空间划分成一定大小的定长块,同时将逻辑空间也划分成同样大小的定长块,建立物理/逻辑地址映射关系的过程主要是建立逻辑块与物理块的对应关系。
[0004]变长块组织方式的基本单位是区段,区段的大小不定。建立物理/逻辑地址映射关系的过程是根据1请求需要写入数据的大小,创建对应大小的区段,再从物理磁盘空间中分配对应大小的空间,建立地址对应关系,从而建立物理/逻辑地址的映射。
[0005]定长块和变长块两种组织方式在数据块更新时都能采用写时拷贝C0W(Copy onWrite)方式更新。COW是指更新一个已经建立地址映射关系的数据块或数据区段时,重新分配一个新的数据块或数据区段,建立地址映射关系后将原数据块或数据区段内容拷贝到新的数据块或数据区段中,再将待更新数据写入到新分配的数据块或数据区段中,接下来更新元数据,用新分配的数据块或数据区段替换原有数据块或数据区段,最后释放旧的数据块或数据区段。
[0006]实际使用中,定长块和变长块两种组织方式各有优缺点。变长块组织方式的优点是大块顺序请求性能较好,存储空间利用率高,不会产生空间浪费现象;但缺点是采用写时拷贝方式更新数据时,对小块随机写请求的支持较差,存在严重的碎片化和性能降低。定长块组织方式的优点是磁盘碎片较少,对随机小块写请求支持较好;但缺点是采用写时拷贝方式更新数据时,需要把旧的数据块内容全部读取出来,再写入新的数据块中,会产生写惩罚(write penalty)。此外,如果写请求的数据块小于定长块大小时,会存在存储空间的浪费。

【发明内容】

[0007]为了解决上述技术问题,本发明提供一种存储系统数据写时拷贝的处理方法和处理装置,有效克服现有技术写时拷贝存在写惩罚、存储空间浪费和碎片化的缺陷。
[0008]为了达到本发明目的,本发明提供了一种存储系统数据写时拷贝的处理方法,包括:
[0009]提取数据块的逻辑地址与待写入数据块的逻辑地址有重叠的数据块;
[0010]判断数据块的重叠程度,提取重叠程度小的数据块;
[0011]将重叠程度小的数据块拆分,直到拆分后的数据块变成重叠程度大的数据块;
[0012]为待写入数据块分配新数据块,新数据块的逻辑地址范围是与待写入数据块的逻辑地址有重叠的所有的数据块的逻辑地址范围之和;
[0013]将有重叠的所有的数据块的数据复制到分配的新数据块中,将待写入数据块更新到新数据块中;
[0014]为分配的新数据块建立逻辑/物理地址映射关系,刷写到磁盘,回收有重叠的所有的数据块。
[0015]进一步地,存储系统采用卷逻辑地址/池逻辑地址、池逻辑地址/磁盘物理地址的两级地址映射,所述存储系统的逻辑磁盘被划分为大小不同的多个数据块,每个数据块的大小为磁盘扇区大小的2的整数次幂倍,数据块大小的最大值是用户设定的存储系统数据块大小;所述存储系统的存储池被划分为大小不同的多个池逻辑块,大小相同的池逻辑块与数据块相对应;所述存储系统的逻辑卷被划分为大小不同的多个卷逻辑块,大小相同的卷逻辑块与池逻辑块相对应。
[0016]进一步地,所述重叠程度小的数据块是指,重叠的逻辑地址范围小于等于数据块的逻辑地址范围的二分之一,所述重叠程度大的数据块是指,重叠的逻辑地址范围大于数据块的逻辑地址范围的二分之一。
[0017]进一步地,还包括:
[0018]存储系统维护1请求的队列,将队列中地址范围相邻的写请求合并;
[0019]根据写请求的逻辑地址范围,在缓存中查找是否存在逻辑地址与写请求逻辑地址范围重叠的数据块的缓存;如果未查找到,从数据块地址映射关系的元数据中查找,将找到的数据块读取到缓存中;
[0020]判断找到的数据块的逻辑地址与待写入数据块的逻辑地址是否存在重叠。
[0021]进一步地,如果查找到,且数据块的缓存状态为脏,将其刷写到磁盘上。为了达到本发明目的,本发明提供了一种存储系统数据写时拷贝的处理装置,包括:
[0022]提取模块,用于提取数据块的逻辑地址与待写入数据块的逻辑地址有重叠的数据块,并发送给拆分模块;
[0023]拆分模块,用于判断数据块的重叠程度,将重叠程度小的数据块拆分,直到拆分后的数据块变成重叠程度大的数据块,将与待写入数据块有重叠的所有的数据块发送给分配模块和处理模块;
[0024]分配模块,用于为待写入数据块分配新数据块,新数据块的逻辑地址范围是与待写入数据块的逻辑地址有重叠的所有的数据块的逻辑地址范围之和,将新数据块发送给处理模块;
[0025]处理模块,用于将与待写入数据块有重叠的所有的数据块的数据复制到分配的新数据块中,将待写入数据块更新到新数据块中,为分配的新数据块建立逻辑/物理地址映射关系,刷写到磁盘,回收有重叠的所有的数据块。
[0026]进一步地,存储系统采用卷逻辑地址/池逻辑地址、池逻辑地址/磁盘物理地址的两级地址映射,所述存储系统的逻辑磁盘被划分为大小不同的多个数据块,每个数据块的大小为磁盘扇区大小的2的整数次幂倍,数据块大小的最大值是用户设定的存储系统数据块大小;所述存储系统的存储池被划分为大小不同的多个池逻辑块,大小相同的池逻辑块与数据块相对应;所述存储系统的逻辑卷被划分为大小不同的多个卷逻辑块,大小相同的卷逻辑块与池逻辑块相对应。
[0027]进一步地,所述重叠程度小的数据块是指,重叠的逻辑地址范围小于等于数据块的逻辑地址范围的二分之一,所述重叠程度大的数据块是指,重叠的逻辑地址范围大于数据块的逻辑地址范围的二分之一。
[0028]进一步地,还包括:
[0029]维护模块,用于维护1请求的队列,将队列中地址范围相邻的写请求合并,将合并后的写请求发送给查找模块;
[0030]查找模块,用于根据写请求的逻辑地址范围,在缓存中查找是否存在逻辑地址与写请求逻辑地址范围重叠的数据块的缓存;如果未查找到,从数据块地址映射关系的元数据中查找,将找到的数据块读取到缓存中,并发送给判断模块;
[0031]判断模块,用于判断找到的数据块的逻辑地址与待写入数据块的逻辑地址是否存在重叠,将判断结果发送给提取模块。
[0032]
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1