《一种利用固态硬盘提高快照性能的方法.pdf》由会员分享,可在线阅读,更多相关《一种利用固态硬盘提高快照性能的方法.pdf(10页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102968381 A(43)申请公布日 2013.03.13CN102968381A*CN102968381A*(21)申请号 201210465199.6(22)申请日 2012.11.19G06F 12/02(2006.01)(71)申请人浪潮电子信息产业股份有限公司地址 250014 山东省济南市高新区舜雅路1036号(72)发明人王少锋(54) 发明名称一种利用固态硬盘提高快照性能的方法(57) 摘要本发明提供一种利用固态硬盘提高快照性能的方法,该方法是兼顾性能的考虑,利用固态硬盘来提高快照性能的方法。提到的兼顾性能的考虑,是因为如果以普通硬盘存储快照数据,。
2、快照数据的操作会极大的降低快照的性能。利用固态硬盘来存储快照数据,是利用固态硬盘的高随机读写性能来提高快照数据操作的速率。本发明的一种将固态硬盘作为快照的例外仓库存储设备的方法,利用固态硬盘高随机读写性能,提高快照对元数据的操作性能,而且掉电元数据不丢失,达到了高性能、高可用性快照的技术效果。(51)Int.Cl.权利要求书2页 说明书4页 附图3页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书 2 页 说明书 4 页 附图 3 页1/2页21.一种利用固态硬盘提高快照性能的方法, 其特征在于,该方法是利用固态硬盘高随机读写性能,以固态硬盘作为快照的例外仓卷,将元数据和CO。
3、W数据存储在固态硬盘中,固态硬盘中元数据的组织方式,是将快照的元数据存储在固态硬盘的最前端,将COW数据存储在剩余区段,以提高快照对元数据的操作性能,系统包括:快照模块(1)、例外仓卷模块(2),具体步骤如下:(1)快照模块采用增量快照的方式,以固态硬盘作为例外仓卷,将固态硬盘分为元数据区和cow数据区,当对源卷建立快照之后,初始化例外仓库卷的元数据区,元数据的形式为old chunk,new chunk,snapID range,其中,old chunk指向源卷中的块,new chunk指向快照卷对应的块,snapID range为快照ID的范围,每个快照都有一个ID,snapID rang。
4、e用于表明元数据指定的块是在哪个快照范围之内;当对源卷进行写时,首先查找元数据,假如没有查找到话,说明是第一次修改快照源,需要将快照源的数据拷贝到COW设备上,假定快照源的数据所在的位置为旧chunk,完成上述过程需要以下三个步骤:1) 在COW设备上查找用于保存数据的位置,记为新chunk;2) 将快照数据源的数据保存到COW设备上新 chunk处;3) 将例外信息old chunk,new chunk,snapID range即所谓元数据保存至固态硬盘;如果查找到的话,说明在创建快照之后,源卷已经更新过,源卷的数据已经保存到COW设备中了,直接对源卷进行写操作; 当对源卷进行读操作时,直接。
5、对源卷进行读操作即可;当对快照卷进行写操作时,首先查找元数据,如果没有查找到的话,说明源卷该chunk处的数据还没有修改,需要将新数据写到COW设备上,在COW设备上查找用于保存数据的位置,记为新chunk,再将元数据保存至固态硬盘上;如果查找到的话,直接对查找到的new chunk写操作即可;当对快照卷进行读操作时,首先查找元数据,如果没有查找到的话,读源卷的对应chunk,如果查找到的话,读快照仓卷的对应chunk;(2)例外仓卷模块固态硬盘的第一个扇区作为超级块,用于记录元数据B+树的根节点位置、B+树的深度和位图和根节点; 在固态硬盘的前一部分作为元数据存储区,元数据以B+树的形式组织。
6、,B+树的叶子目录项包含:old chunk源卷中,new chunk快照仓卷中,这对映射属于的snapshot ID范围,B+树的关键字Key由old chunk,snapshot ID range 组成,在一个node中的最大目录项号是有规定的,以至于一个node刚好填充一个块; 内部节点与叶子节点有相同的数据结构,如果是内部节点,new_chunk则代表指向从属B+树node的指针,如果是叶子节点,new_chunk就是要查找的数据内容; 查找元数据B+树时,从根节点开时查找,根据关键字key来比较,对节点内的关键字序列进行二分查找,直到达到叶子节点才能命中,内部节点相当于叶子节点的索引。
7、,叶子节点直接指向COW数据区;固态硬盘没有物理机械臂,随机读写性能很高,COW数据在例外仓卷中直接以随机的方权 利 要 求 书CN 102968381 A2/2页3式存储与固态硬盘中,其中元数据的new_chunk用于保存COW数据所存的扇区号,当在元数据区查找到new_chunk后,直接读写例外仓卷的改chunk位置;例外仓卷空闲空间由位图管理,位图由一颗基树指向,每个内部节点包含64位的指针,指向从属节点,叶节点为位掩码,每个叶子节点包含单独的位,1意味着已分配,0表示空闲,位图的根节点位置存于超级块中,深度由设备大小和chunk大小共同决定;如果深度是0,则根位图块只包含单个的位,设备。
8、非常小,以至于1个块用作位图就足够,如果深度是1,则根位图块是一组64位的指针,指向的块用作单个位图,如果深度是2,则是二级指针,以此类推;位图查找时,根据位图块号从根节点开始遍历,遍历时,由位图块号和深度求出每一层的索引,直到查找到叶子节点为止。权 利 要 求 书CN 102968381 A1/4页4一种利用固态硬盘提高快照性能的方法技术领域0001 本发明涉及计算机系统及存储领域, 具体地说是一种利用固态硬盘提高快照性能的方法。背景技术0002 固态硬盘 (Solid State Disk ;简称:SSD) 由控制单元与存储单元组成。存储单元多采用非易失性的闪存(Flash)芯片,或者采用。
9、同步动态随机存取存储器(SynchronousDynamic Random Access Memory;简称:SDRAM)。SSD不具有机械转动装置,具有很高的随机读写性能。但造价很高,经常用于高端存储领域。0003 快照一般是指关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(例如:拷贝开始的时间点)的映像。快照可以是所表示的数据的一个副本或复制品。快照的作用是能够进行在线数据恢复,当存储设备发生应用故障或者文件损坏时,可以利用快照进行及时数据恢复,将数据恢复成快照产生时间点的状态。快照实现的方法有很多种,例如 :即写即拷、分割镜像快照等。0004 在linux中,基于LV。
10、M实现快照,采用的是copy on firest write(cow)机制,其中一个重要的概念就是例外。即快照映射关系,表明快照源上数据在建立快照之后修改过,改变之前的数据从快照源设备的某一个 chunk 已经拷贝到或正在拷贝到快照上另一个 chunk。为了体现这种映射关系,需要元数据来表示这种映射关系。元数据存放的设备也叫例外仓卷。0005 当对快照卷或源卷读写时,首先需要查找对应元数据,查看该chunk是否已经映射过,即创建好快照之后源卷数据是否已经修改过,假如没有的话还需再建立新的映射关系,创建新的元数据。如果删除快照的话,还需要删除对应的元数据等。每个数据块都必须进行元数据操作。假如将。
11、元数据存放至硬盘中,对元数据的操作必将成为快照的性能瓶颈。假如将元数据存放至内存中,虽然可以增加快照的性能,但一旦掉电之后,元数据就会丢失。发明内容0006 本发明的目的是提供一种利用固态硬盘提高快照性能的方法。0007 本发明的目的是按以下方式实现的,该方法是利用固态硬盘高随机读写性能,以固态硬盘作为快照的例外仓卷,将元数据和COW数据存储在固态硬盘中,固态硬盘中元数据的组织方式,是将快照的元数据存储在固态硬盘的最前端,将COW数据存储在剩余区段,以提高快照对元数据的操作性能,系统包括:快照模块(1)、例外仓卷模块(2),具体步骤如下:(1) 快照模块采用增量快照的方式,以固态硬盘作为例外仓。
12、卷,将固态硬盘分为元数据区和cow数据区,当对源卷建立快照之后,初始化例外仓库卷的元数据区,元数据的形式为old 说 明 书CN 102968381 A2/4页5chunk,new chunk,snapID range,其中,old chunk指向源卷中的块,new chunk指向快照卷对应的块,snapID range为快照ID的范围,每个快照都有一个ID,snapID range用于表明元数据指定的块是在哪个快照范围之内;当对源卷进行写时,首先查找元数据,假如没有查找到话,说明是第一次修改快照源,需要将快照源的数据拷贝到COW设备上,假定快照源的数据所在的位置为旧chunk,完成上述过程需。
13、要以下三个步骤:1) 在COW设备上查找用于保存数据的位置,记为新chunk;2) 将快照数据源的数据保存到COW设备上新 chunk处;3) 将例外信息old chunk,new chunk,snapID range即所谓元数据保存至固态硬盘;如果查找到的话,说明在创建快照之后,源卷已经更新过,源卷的数据已经保存到COW设备中了,直接对源卷进行写操作; 当对源卷进行读操作时,直接对源卷进行读操作即可;当对快照卷进行写操作时,首先查找元数据,如果没有查找到的话,说明源卷该chunk处的数据还没有修改,需要将新数据写到COW设备上,在COW设备上查找用于保存数据的位置,记为新chunk,再将元数。
14、据保存至固态硬盘上;如果查找到的话,直接对查找到的new chunk写操作即可;当对快照卷进行读操作时,首先查找元数据,如果没有查找到的话,读源卷的对应chunk,如果查找到的话,读快照仓卷的对应chunk;(2) 例外仓卷模块固态硬盘的第一个扇区作为超级块,用于记录元数据B+树的根节点位置、B+树的深度和位图和根节点; 在固态硬盘的前一部分作为元数据存储区,元数据以B+树的形式组织,B+树的叶子目录项包含:old chunk源卷中,new chunk快照仓卷中,这对映射属于的snapshot ID范围,B+树的关键字Key由old chunk,snapshot ID range 组成,在一个。
15、node中的最大目录项号是有规定的,以至于一个node刚好填充一个块; 内部节点与叶子节点有相同的数据结构,如果是内部节点,new_chunk则代表指向从属B+树node的指针,如果是叶子节点,new_chunk就是要查找的数据内容; 查找元数据B+树时,从根节点开时查找,根据关键字key来比较,对节点内的关键字序列进行二分查找,直到达到叶子节点才能命中,内部节点相当于叶子节点的索引,叶子节点直接指向COW数据区;固态硬盘没有物理机械臂,随机读写性能很高,COW数据在例外仓卷中直接以随机的方式存储与固态硬盘中,其中元数据的new_chunk用于保存COW数据所存的扇区号,当在元数据区查找到ne。
16、w_chunk后,直接读写例外仓卷的改chunk位置;例外仓卷空闲空间由位图管理,位图由一颗基树指向,每个内部节点包含64位的指针,指向从属节点,叶节点为位掩码,每个叶子节点包含单独的位,1意味着已分配,0表示空闲,位图的根节点位置存于超级块中,深度由设备大小和chunk大小共同决定;如果深度是0,则根位图块只包含单个的位,设备非常小,以至于1个块用作位图就足够,如果深度是1,则根位图块是一组64位的指针,指向的块用作单个位图,如果深度是2,说 明 书CN 102968381 A3/4页6则是二级指针,以此类推;位图查找时,根据位图块号从根节点开始遍历,遍历时,由位图块号和深度求出每一层的索引。
17、,直到查找到叶子节点为止。0008 本发明的有益效果是:该方法是兼顾性能的考虑,利用固态硬盘来提高快照性能的方法。提到的兼顾性能的考虑,是因为如果以普通硬盘存储快照数据,快照数据的操作会极大的降低快照的性能。利用固态硬盘来存储快照数据,是利用固态硬盘的高随机读写性能来提高快照数据操作的速率。本发明的一种将固态硬盘作为快照的例外仓库存储设备的方法,利用固态硬盘高随机读写性能,提高快照对元数据的操作性能,而且掉电元数据不丢失,达到了高性能、高可用性快照的技术效果。附图说明0009 图1 是快照模块结构图;图2 是元数据组织结构图;图3 是位图组织结构图。具体实施方式0010 参照说明书附图对本发明。
18、的方法作以下详细地说明。0011 具体技术方案如下:1.一种实现快照的方式,以固态硬盘作为快照的例外仓卷,将元数据和COW数据存储在固态硬盘中;2.固态硬盘中元数据的组织方式,将快照的元数据存储在固态硬盘的最前端,将COW数据存储在剩余区段;(1)快照模块本例采用增量快照的方式,以固态硬盘作为例外仓卷,如图1所示:将固态硬盘分为元数据区和cow数据区,当对源卷建立快照之后,初始化例外仓库卷的元数据区。元数据的形式为(old chunk,new chunk,snapID range),old chunk指向源卷中的块,new chunk指向快照卷对应的块,snapID range为快照ID的范围。
19、,每个快照都有一个ID,snapID range用于表明元数据指定的块是在哪个快照范围之内;当对源卷进行写时,首先查找元数据,假如没有查找到话,说明是第一次修改快照源,需要将快照源的数据拷贝到COW设备上,假定快照源的数据所在的位置为旧chunk,完成上述过程需要三个步骤;1) 在COW设备上查找用于保存数据的位置,记为新chunk;2) 将快照数据源的数据保存到COW设备上新 chunk处;3) 将例外信息(old chunk,new chunk,snapID range)即所谓元数据保存至固态硬盘;如果查找到的话,说明在创建快照之后,源卷已经更新过,源卷的数据已经保存到COW设备中了。可以。
20、直接对源卷进行写;当对源卷进行读时,直接对源卷进行读即可;当对快照卷进行写操作时,首先查找元数据,如果没有查找到的话,说明源卷该chunk说 明 书CN 102968381 A4/4页7处的数据还没有修改,需要将新数据写到COW设备上。在COW设备上查找用于保存数据的位置,记为新chunk。再将元数据保存至固态硬盘上;如果查找到的话,直接对查找到的new chunk写即可;当对快照卷进行读操作时,首先查找元数据,如果没有查找到的话,读源卷的对应chunk,如果查找到的话,读快照仓卷的对应chunk;(2)例外仓卷模块固态硬盘的第一个扇区作为超级块,用于记录元数据B+树的根节点位置、B+树的深度。
21、和位图和根节点 。 在固态硬盘的前一部分作为元数据存储区,元数据以B+树的形式组织。B+树的叶子目录项包含:old chunk(源卷中),new chunk(快照仓卷中),这对映射属于的snapshot ID范围。B+树的关键字(Key)由old chunk,snapshot ID range 组成。在一个node中的最大目录项号是有规定的,以至于一个node刚好填充一个块。 0012 内部节点与叶子节点有相同的数据结构。如果是内部节点,new_chunk则代表指向从属B+树node的指针。如果是叶子节点,new_chunk就是要查找的数据内容。如图2所示。0013 查找元数据B+树时,从根节。
22、点开时查找,根据关键字key来比较,对节点内的关键字序列进行二分查找,直到达到叶子节点才能命中,内部节点相当于叶子节点的索引。叶子节点直接指向COW数据区。0014 固态硬盘没有物理机械臂,随机读写性能很高,COW数据在例外仓卷中直接以随机的方式存储与固态硬盘中,其中元数据的new_chunk用于保存COW数据所存的扇区号,当在元数据区查找到new_chunk后,直接读写例外仓卷的改chunk位置。0015 例外仓卷空闲空间由位图管理。位图由一颗基树指向。每个内部节点包含64位的指针,指向从属节点,叶节点为位掩码。每个叶子节点包含单独的位,1意味着已分配,0表示空闲。位图的根节点位置存于超级块。
23、中,深度由设备大小和chunk大小共同决定。0016 如果深度是0,则根位图块只包含单个的位(设备非常小,以至于1个块用作位图就足够)。如果深度是1,则根位图块是一组64位的指针,指向的块用作单个位图。如果深度是2,则是二级指针,以此类推。由图3所示。0017 位图查找时,根据位图块号从根节点开始遍历,遍历时,由位图块号和深度求出每一层的索引,直到查找到叶子节点为止。0018 除说明书所述的技术特征外,均为本专业技术人员的已知技术。说 明 书CN 102968381 A1/3页8图1说 明 书 附 图CN 102968381 A2/3页9图2说 明 书 附 图CN 102968381 A3/3页10图3说 明 书 附 图CN 102968381 A10。