本发明专利技术提供一种利用固态硬盘提高快照性能的方法,该方法是兼顾性能的考虑,利用固态硬盘来提高快照性能的方法。提到的兼顾性能的考虑,是因为如果以普通硬盘存储快照数据,快照数据的操作会极大的降低快照的性能。利用固态硬盘来存储快照数据,是利用固态硬盘的高随机读写性能来提高快照数据操作的速率。本发明专利技术的一种将固态硬盘作为快照的例外仓库存储设备的方法,利用固态硬盘高随机读写性能,提高快照对元数据的操作性能,而且掉电元数据不丢失,达到了高性能、高可用性快照的技术效果。
【技术实现步骤摘要】
本专利技术涉及计算机系统及存储领域,具体地说是。
技术介绍
固态硬盘(Solid State Disk ;简称SSD)由控制单元与存储单元组成。存储单元多采用非易失性的闪存(Flash)芯片,或者采用同步动态随机存取存储器(SynchronousDynamic Random Access Memory ;简称SDRAM)。SSD 不具有机械转动装置,具有很高的随机读写性能。但造价很高,经常用于高端存储领域。快照一般是指关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(例如拷贝开始的时间点)的映像。快照可以是所表示的数据的一个副本或复制品。快照的作用是能够进行在线数据恢复,当存储设备发生应用故障或者文件损坏时,可以利用快照进行及时数据恢复,将数据恢复成快照产生时间点的状态。快照实现的方法有很多种,例如即写即拷、分割镜像快照等。在Iinux中,基于LVM实现快照,采用的是copy on firest write (cow)机制,其中一个重要的概念就是例外。即快照映射关系,表明快照源上数据在建立快照之后修改过,改变之前的数据从快照源设备的某一个chunk已经拷贝到或正在拷贝到快照上另一个chunk。为了体现这种映射关系,需要元数据来表示这种映射关系。元数据存放的设备也叫例外仓卷。当对快照卷或源卷读写时,首先需要查找对应元数据,查看该chunk是否已经映射过,即创建好快照之后源卷数据是否已经修改过,假如没有的话还需再建立新的映射关系,创建新的元数据。如果删除快照的话,还需要删除对应的元数据等。每个数据块都必须进行元数据操作。假如将元数据存放至硬盘中,对元数据的操作必将成为快照的性能瓶颈。假如将元数据存放至内存中,虽然可以增加快照的性能,但一旦掉电之后,元数据就会丢失。
技术实现思路
本专利技术的目的是提供。本专利技术的目的是按以下方式实现的,该方法是利用固态硬盘高随机读写性能,以固态硬盘作为快照的例外仓卷,将元数据和COW数据存储在固态硬盘中,固态硬盘中元数据的组织方式,是将快照的元数据存储在固态硬盘的最前端,将COW数据存储在剩余区段,以提高快照对元数据的操作性能,系统包括快照模块(I)、例外仓卷模块(2),具体步骤如下 (I)快照模块采用增量快照的方式,以固态硬盘作为例外仓卷,将固态硬盘分为元数据区和cow数据区,当对源卷建立快照之后,初始化例外仓库卷的元数据区,元数据的形式为oldchunk, new chunk, snap ID range,其中,old chunk 指向源卷中的块,new chunk 指向快照卷对应的块,snapID range为快照ID的范围,每个快照都有一个ID,snapID range用于表明元数据指定的块是在哪个快照范围之内; 当对源卷进行写时,首先查找元数据,假如没有查找到话,说明是第一次修改快照源,需要将快照源的数据拷贝到COW设备上,假定快照源的数据所在的位置为旧chunk,完成上述过程需要以下三个步骤 1)在COW设备上查找用于保存数据的位置,记为新chunk; 2)将快照数据源的数据保存到COW设备上新chunk处 ; 3)将例外信息old chunk, new chunk, snap ID 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位的指针,指向从属节点,叶节点为位掩码,每个叶子节点包含单独的位,I意味着已分配,O表示空闲,位图的根节点位置存于超级块中,深度由设备大小和chunk大小共同决定; 如果深度是0,则根位图块只包含单个的位,设备非常小,以至于I个块用作位图就足够,如果深度是1,则根位图块是一组64位的指针,指向的块用作单个位图,如果深度是2,则是二级指针,以此类推; 位图查找时,根据位图块号从根节点开始遍历,遍历时,由位图块号和深度求出每一层的索引,直到查找到叶子节点为止。本专利技术的有益效果是该方法是兼顾性能的考虑,利用固态硬盘来提高快照性能的方法。提到的兼顾性能的考虑,是因为如果以普通硬盘存储快照数据,快照数据的操作会极大的降低快照的性能。利用固态硬盘来存储快照数据,是利用固态硬盘的高随机读写性能来提高快照数据操作的速率。本专利技术的一种将固态硬盘作为快照的例外仓库存储设备的方法,利用固态硬盘高随机读写性能,提高快照对元数据的操作性能,而且掉电元数据不丢失,达到了高性能、高可用性快照的技术效果。附图说明 图I是快照模块结构 图2是元数据组织结构 图3是位图组织结构图。具体实施例方式参照说明书附图对本专利技术的方法作以下详细地说明。具体技术方案如下 IX 一种实现快照的方式,以固态硬盘作为快照的例外仓卷,将元数据和COW数据存储在固态硬盘中; 2〉.固态硬盘中元数据的组织方式,将快照的元数据存储在固态硬盘的最前端,将COW数据存储在剩余区段; (I)快照模块 本例采用增量快照的方式,以固态硬盘作为例外仓卷,如图I所示 将固态硬盘分为元数据区和■数据区,当对源卷建立快照之后,初始化例外仓库卷的元数据区。元数据的形式为(old chunk, new chunk, snap ID range), old chunk指向源卷中的块,new chun本文档来自技高网...
【技术保护点】
一种利用固态硬盘提高快照性能的方法,?其特征在于,该方法是利用固态硬盘高随机读写性能,以固态硬盘作为快照的例外仓卷,将元数据和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,则是二级指针,以此类推;位图查找时,根据位图块号从根节点开始遍历,遍历时,由位图块号和深度求出每一层的索引,直到查找到叶子节点为止。...
【技术特征摘要】
【专利技术属性】
技术研发人员:王少锋,
申请(专利权)人:浪潮电子信息产业股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。