书签 分享 收藏 举报 版权申诉 / 10

一种利用固态硬盘提高快照性能的方法.pdf

  • 上传人:b***
  • 文档编号:1497096
  • 上传时间:2018-06-18
  • 格式:PDF
  • 页数:10
  • 大小:511.24KB
  • 摘要
    申请专利号:

    CN201210465199.6

    申请日:

    2012.11.19

    公开号:

    CN102968381A

    公开日:

    2013.03.13

    当前法律状态:

    撤回

    有效性:

    无权

    法律详情:

    发明专利申请公布后的视为撤回IPC(主分类):G06F 12/02申请公布日:20130313|||实质审查的生效IPC(主分类):G06F 12/02申请日:20121119|||公开

    IPC分类号:

    G06F12/02

    主分类号:

    G06F12/02

    申请人:

    浪潮电子信息产业股份有限公司

    发明人:

    王少锋

    地址:

    250014 山东省济南市高新区舜雅路1036号

    优先权:

    专利代理机构:

    代理人:

    PDF完整版下载: PDF下载
    内容摘要

    本发明提供一种利用固态硬盘提高快照性能的方法,该方法是兼顾性能的考虑,利用固态硬盘来提高快照性能的方法。提到的兼顾性能的考虑,是因为如果以普通硬盘存储快照数据,快照数据的操作会极大的降低快照的性能。利用固态硬盘来存储快照数据,是利用固态硬盘的高随机读写性能来提高快照数据操作的速率。本发明的一种将固态硬盘作为快照的例外仓库存储设备的方法,利用固态硬盘高随机读写性能,提高快照对元数据的操作性能,而且掉电元数据不丢失,达到了高性能、高可用性快照的技术效果。

    权利要求书

    权利要求书一种利用固态硬盘提高快照性能的方法, 其特征在于,该方法是利用固态硬盘高随机读写性能,以固态硬盘作为快照的例外仓卷,将元数据和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,则是二级指针,以此类推;
    位图查找时,根据位图块号从根节点开始遍历,遍历时,由位图块号和深度求出每一层的索引,直到查找到叶子节点为止。

    说明书

    说明书一种利用固态硬盘提高快照性能的方法
    技术领域
    本发明涉及计算机系统及存储领域, 具体地说是一种利用固态硬盘提高快照性能的方法。
    背景技术
    固态硬盘 (Solid State Disk ;简称:SSD) 由控制单元与存储单元组成。存储单元多采用非易失性的闪存(Flash)芯片,或者采用同步动态随机存取存储器(SynchronousDynamic Random Access Memory;简称:SDRAM)。SSD不具有机械转动装置,具有很高的随机读写性能。但造价很高,经常用于高端存储领域。
    快照一般是指关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(例如:拷贝开始的时间点)的映像。快照可以是所表示的数据的一个副本或复制品。快照的作用是能够进行在线数据恢复,当存储设备发生应用故障或者文件损坏时,可以利用快照进行及时数据恢复,将数据恢复成快照产生时间点的状态。快照实现的方法有很多种,例如 :即写即拷、分割镜像快照等。
    在linux中,基于LVM实现快照,采用的是copy on firest write(cow)机制,其中一个重要的概念就是例外。即快照映射关系,表明快照源上数据在建立快照之后修改过,改变之前的数据从快照源设备的某一个 chunk 已经拷贝到或正在拷贝到快照上另一个 chunk。为了体现这种映射关系,需要元数据来表示这种映射关系。元数据存放的设备也叫例外仓卷。
    当对快照卷或源卷读写时,首先需要查找对应元数据,查看该chunk是否已经映射过,即创建好快照之后源卷数据是否已经修改过,假如没有的话还需再建立新的映射关系,创建新的元数据。如果删除快照的话,还需要删除对应的元数据等。每个数据块都必须进行元数据操作。假如将元数据存放至硬盘中,对元数据的操作必将成为快照的性能瓶颈。假如将元数据存放至内存中,虽然可以增加快照的性能,但一旦掉电之后,元数据就会丢失。
    发明内容
    本发明的目的是提供一种利用固态硬盘提高快照性能的方法。
    本发明的目的是按以下方式实现的,该方法是利用固态硬盘高随机读写性能,以固态硬盘作为快照的例外仓卷,将元数据和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,则是二级指针,以此类推;
    位图查找时,根据位图块号从根节点开始遍历,遍历时,由位图块号和深度求出每一层的索引,直到查找到叶子节点为止。
    本发明的有益效果是:该方法是兼顾性能的考虑,利用固态硬盘来提高快照性能的方法。提到的兼顾性能的考虑,是因为如果以普通硬盘存储快照数据,快照数据的操作会极大的降低快照的性能。利用固态硬盘来存储快照数据,是利用固态硬盘的高随机读写性能来提高快照数据操作的速率。本发明的一种将固态硬盘作为快照的例外仓库存储设备的方法,利用固态硬盘高随机读写性能,提高快照对元数据的操作性能,而且掉电元数据不丢失,达到了高性能、高可用性快照的技术效果。
    附图说明
    图1 是快照模块结构图;
    图2 是元数据组织结构图;
    图3 是位图组织结构图。
    具体实施方式
    参照说明书附图对本发明的方法作以下详细地说明。
    具体技术方案如下:
    1>.一种实现快照的方式,以固态硬盘作为快照的例外仓卷,将元数据和COW数据存储在固态硬盘中;
    2>.固态硬盘中元数据的组织方式,将快照的元数据存储在固态硬盘的最前端,将COW数据存储在剩余区段;
    (1)快照模块
    本例采用增量快照的方式,以固态硬盘作为例外仓卷,如图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就是要查找的数据内容。如图2所示。
      查找元数据B+树时,从根节点开时查找,根据关键字key来比较,对节点内的关键字序列进行二分查找,直到达到叶子节点才能命中,内部节点相当于叶子节点的索引。叶子节点直接指向COW数据区。
      固态硬盘没有物理机械臂,随机读写性能很高,COW数据在例外仓卷中直接以随机的方式存储与固态硬盘中,其中元数据的new_chunk用于保存COW数据所存的扇区号,当在元数据区查找到new_chunk后,直接读写例外仓卷的改chunk位置。
    例外仓卷空闲空间由位图管理。位图由一颗基树指向。每个内部节点包含64位的指针,指向从属节点,叶节点为位掩码。每个叶子节点包含单独的位,1意味着已分配,0表示空闲。位图的根节点位置存于超级块中,深度由设备大小和chunk大小共同决定。
    如果深度是0,则根位图块只包含单个的位(设备非常小,以至于1个块用作位图就足够)。如果深度是1,则根位图块是一组64位的指针,指向的块用作单个位图。如果深度是2,则是二级指针,以此类推。由图3所示。
    位图查找时,根据位图块号从根节点开始遍历,遍历时,由位图块号和深度求出每一层的索引,直到查找到叶子节点为止。
    除说明书所述的技术特征外,均为本专业技术人员的已知技术。

    关 键  词:
    一种 利用 固态 硬盘 提高 快照 性能 方法
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种利用固态硬盘提高快照性能的方法.pdf
    链接地址:https://www.zhuanlichaxun.net/p-1497096.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1