发明名称 一种利用固态硬盘提高快照性能的方法
摘要 本发明提供一种利用固态硬盘提高快照性能的方法,该方法是兼顾性能的考虑,利用固态硬盘来提高快照性能的方法。提到的兼顾性能的考虑,是因为如果以普通硬盘存储快照数据,快照数据的操作会极大的降低快照的性能。利用固态硬盘来存储快照数据,是利用固态硬盘的高随机读写性能来提高快照数据操作的速率。本发明的一种将固态硬盘作为快照的例外仓库存储设备的方法,利用固态硬盘高随机读写性能,提高快照对元数据的操作性能,而且掉电元数据不丢失,达到了高性能、高可用性快照的技术效果。
申请公布号 CN102968381A 申请公布日期 2013.03.13
申请号 CN201210465199.6 申请日期 2012.11.19
申请人 浪潮电子信息产业股份有限公司 发明人 王少锋
分类号 G06F12/02(2006.01)I 主分类号 G06F12/02(2006.01)I
代理机构 代理人
主权项 一种利用固态硬盘提高快照性能的方法, 其特征在于,该方法是利用固态硬盘高随机读写性能,以固态硬盘作为快照的例外仓卷,将元数据和COW数据存储在固态硬盘中,固态硬盘中元数据的组织方式,是将快照的元数据存储在固态硬盘的最前端,将COW数据存储在剩余区段,以提高快照对元数据的操作性能,系统包括:快照模块(1)、例外仓卷模块(2),具体步骤如下:(1)快照模块采用增量快照的方式,以固态硬盘作为例外仓卷,将固态硬盘分为元数据区和cow数据区,当对源卷建立快照之后,初始化例外仓库卷的元数据区,元数据的形式为old chunk,new chunk,snapID range,其中,old chunk指向源卷中的块,new chunk指向快照卷对应的块,snapID range为快照ID的范围,每个快照都有一个ID,snapID range用于表明元数据指定的块是在哪个快照范围之内;当对源卷进行写时,首先查找元数据,假如没有查找到话,说明是第一次修改快照源,需要将快照源的数据拷贝到COW设备上,假定快照源的数据所在的位置为旧chunk,完成上述过程需要以下三个步骤:1)  在COW设备上查找用于保存数据的位置,记为新chunk;2)  将快照数据源的数据保存到COW设备上新 chunk处;3)  将例外信息old chunk,new chunk,snapID range即所谓元数据保存至固态硬盘;如果查找到的话,说明在创建快照之后,源卷已经更新过,源卷的数据已经保存到COW设备中了,直接对源卷进行写操作; 当对源卷进行读操作时,直接对源卷进行读操作即可;当对快照卷进行写操作时,首先查找元数据,如果没有查找到的话,说明源卷该chunk处的数据还没有修改,需要将新数据写到COW设备上,在COW设备上查找用于保存数据的位置,记为新chunk,再将元数据保存至固态硬盘上;如果查找到的话,直接对查找到的new chunk写操作即可;当对快照卷进行读操作时,首先查找元数据,如果没有查找到的话,读源卷的对应chunk,如果查找到的话,读快照仓卷的对应chunk;(2)例外仓卷模块固态硬盘的第一个扇区作为超级块,用于记录元数据B+树的根节点位置、B+树的深度和位图和根节点;  在固态硬盘的前一部分作为元数据存储区,元数据以B+树的形式组织,B+树的叶子目录项包含:old chunk源卷中,new chunk快照仓卷中,这对映射属于的snapshot ID范围,B+树的关键字Key由old chunk,snapshot ID range 组成,在一个node中的最大目录项号是有规定的,以至于一个node刚好填充一个块; 内部节点与叶子节点有相同的数据结构,如果是内部节点,new_chunk则代表指向从属B+树node的指针,如果是叶子节点,new_chunk就是要查找的数据内容; 查找元数据B+树时,从根节点开时查找,根据关键字key来比较,对节点内的关键字序列进行二分查找,直到达到叶子节点才能命中,内部节点相当于叶子节点的索引,叶子节点直接指向COW数据区;固态硬盘没有物理机械臂,随机读写性能很高,COW数据在例外仓卷中直接以随机的方式存储与固态硬盘中,其中元数据的new_chunk用于保存COW数据所存的扇区号,当在元数据区查找到new_chunk后,直接读写例外仓卷的改chunk位置;例外仓卷空闲空间由位图管理,位图由一颗基树指向,每个内部节点包含64位的指针,指向从属节点,叶节点为位掩码,每个叶子节点包含单独的位,1意味着已分配,0表示空闲,位图的根节点位置存于超级块中,深度由设备大小和chunk大小共同决定;如果深度是0,则根位图块只包含单个的位,设备非常小,以至于1个块用作位图就足够,如果深度是1,则根位图块是一组64位的指针,指向的块用作单个位图,如果深度是2,则是二级指针,以此类推;位图查找时,根据位图块号从根节点开始遍历,遍历时,由位图块号和深度求出每一层的索引,直到查找到叶子节点为止。
地址 250014 山东省济南市高新区舜雅路1036号