当前位置: 首页 > 专利查询>清华大学专利>正文

基于快照的细粒度文件与目录版本管理方法技术

技术编号:2918202 阅读:216 留言:0更新日期:2012-04-11 18:40
基于快照的细粒度文件与目录版本管理方法属于多版本文件系统领域。将整个文件系统中文件和目录名字组成的名字空间与代表不同版本生成时间的版本空间独立开来,采用相对独立的策略进行管理,形成了层级化的二维结构;在名字空间中形成从根目录到文件的层级结构;版本空间中,文件和目录的版本按照版本生成的时间通过索引结构组织起来,形成版本空间中的层级结构。名字空间的检索采用了基于动态哈希的索引策略,版本空间的检索采用了基于红黑树的索引策略,目录版本和文件版本分别采用针对各自特点的红黑树结构变体。本发明专利技术能够大大提升系统的可用性和性能,将维护历史版本所带来的时间空间消耗控制在可接受的范围内。

【技术实现步骤摘要】

属于多版本文件系统领域,尤其涉及文件与 目录版本的生成、文件与目录数据的组织及检索领域。
技术介绍
多版本文件系统是这样一种具有高可靠性的文件系统通过将文件的数据和历史数据保 存为不同的版本,在用户误操作或系统故障导致数据损失时文件系统能够自动查询正确的版 本恢复损失的数据;同时,文件系统能够提供文件数据的变化记录供用户分析文件访问模式、追踪可疑的数据变化。传统多版本文件系统主要通过记录日志和历史数据实时拷贝技术来实 现版本的保留。前者将对文件的每次改变都以一条记录的形式记录在日志中,占用空间量大,同时使用日志恢复历史数据时需要回滚日志,性能差;后者将文件系统在某一时刻的历史数 据集中拷贝到一专门开辟的历史数据存储空间屮,不但性能差、不易实现在线拷贝、占用空 间量大,而且保留整个文件系统历史数据映像的操作粒度过粗,不能满足用户灵活保留部分 目录与文件内容的需求,不利于管理。同时,使用以上技术的传统多版本文件系统在检索文件的指定历史版本时往往需要线性遍历之前的所有版本,存在性能瓶颈。提出了一整套新的版本生成、组织与检索技 术,有效的解决了上述问题。
技术实现思路
本专利技术的目的在于提供一个能够全面满足网络服务和科学计算服务需求的高可靠高性能 的多版本文件系统,实现数据的在线实时保护。本专利技术的重点是轻量级细粒度版本生成机 制和高效版本检索模块的设计。本专利技术的特征在于快照技术为轻量级,快照执行时仅保留基本的时间信息,所有的拷 贝操作(包括数据的拷贝和元数据的拷贝)被转移到真正需要修改时再进行。将整个文件系统中由文件和目录名字组成的名字空间与由不同时间生成的版本所组成的 的版本空间独立开来,采用相对独立的策略进行管理。名字空间中,彼此相关的子文件和子 目录存放在同一父目录下,形成从根目录到各级子目录,最后到文件的层级结构,这里的每 个文件和目录都对应一系列的版本;版本空间中,文件和目录的版本按照版本生成的时间通 过索引结构组织起来,生成时间相近的文件和子目录版本存放在同一个父目录下,形成版本 空间中的层级结构。名字空间的检索采用了基于动态哈希的索引策略,用来代替传统文件系统中的线性索引 策略,不但使得检索时间不随目录规模的扩大而线性增加,而且保证了较低的额外空间占用率。版本空间的检索采用了基于红黑树的索引策略,目录版本和文件版本分别采用针对各自 特点的红黑树结构变体,相应元数据存放在版本对应的inode结构体(类UNIX系统中用来表示文件或目录的数据结构)中。所述的依次含有以下步骤步骤l:细粒度版本生成步骤1.1,按以下方式执行快照操作-当快照生成时在系统对应数据结构中记录快照的位置和时间,快照后的时间分别记录在文件系统的全局变量中,称为全局快照的时间戳,即全局snap印och;在用户执行快照操作所针对的文件或目录的当前版本的元数据中,称为该文件或目录的本地快照时间戳,即本地sn邓epochj歩骤1.2,按以下方式修改文件或目录在文件系统层级结构树中,自顶向下执行由根目录当前版本到要修改的目录或文件的当 前版本的寻径。对寻径途中所经过的各文件或目录的当前版本,找出其在名字空间中的父目录,按以下公式对该版本的本地snap印och进行调整本地snap印och二MAX(目录或文件的父目录当前版本的snap印och,本地s卿印och);步骤1. 3,判断步骤1. 2所述的待修改的文件或目录在调整快照时间后是否应该生成新的 版本比较经步骤1. 2修改过的目录或文件的当前版本的Inode中的印och与snap印och的 值,若sn印印och大于印och,说明最近一次快照操作后该版本还未被修改,该当前版本己 经过期,需要保留旧数据,并复制该目录或文件当前版本的Inode元数据,作为历史版本保 留,加入到索引结构中,同时通过位图形式记录当前版本与历史版本的数据共享信息;否则, 说明当前版本没有过期,不用保留旧数据与元数据,直接修改当前版本的相关数据,同时修 改当前版本的数据共享位图。步骤2:在名字空间中建立快速索引名字空间中目录内部采用动态哈希表来组织各目录项,与传统线性索引相比,用动态哈 希表组织各个目录项具有检索速度快且恒定的优点,同时相对于普通哈希表而言,其空间消 耗能够随目录规模而自适应变化,扩展性好且空间利用率高。动态哈希表使用了一族哈希函 数,其中各个函数对应的地址空间大小满足指数级递增的规律。当目录规模较小时,我们使 用较小地址空间的哈希函数,当目录内容增加导致当前哈希函数地址空间无法容纳某个目录 项时,需要进行哈希函数的升级,扩大地址空间,反之则要降级。按以下步骤在名字空间中建立快速索引步骤2. 1,在名字空间目录中建立动态哈希表,其中,每个表项代表目录中的一个子目录 或子文件,其地址存储在目录版本Inode中的记录映射表i—block域中,该目录当前所用哈 希函数被存储在Inode中的hash域;该动态哈希表的每个表项包括两个部分(a)指针 pointer,指向一个基本存储单元bucket,设定为一个物理块的大小,内存着子目录或子文 件的目录项,且其中变长数据块代表存储在该bucket中的目录项,该目录项含有子目录或子 文件的名字及该目录项所代表的子目录或子文件的Inode号;(b)当前表项的级别Level,代表表项所指bucket被分裂的次数,当新插入的目录项映射到某表项,且该表项的pointer所 指向的bucket没有足够的空间容纳该目录项,bucket就需要分裂;动态哈希表的每个哈希 表项有不同的存储地址,作为名字的哈希值来把子目录或子文件映射到该表项;在该动态哈 希表中采用了一组哈希函数h。、 ……hk, k = 「log2i^, n为该系统中目录可容纳的目录项的最大数目,ie{0,1,2........k}, (i为哈希函数的级别level), = hmod2i (h为具有均匀分布特性的传统哈希函数,例如信息摘要算法MD5,安全哈希算法SHA)。步骤2.2,以子目录名或子文件名作为输入,哈希函数的计数结果即为相应子目录或子文件所对应的表项在动态哈希索引表中的地址; 步骤3:在版本空间中建立快速索引步骤3. 1,为文件系统中同一目录的不同版本建立基于Inode内嵌式红黑树的快速索弓l, 以检索目录版本的元数据,其步骤如下步骤3. 1.1,该红黑树的叶结点只作为外部结点,没有对应实体,只为维持一个红黑树而 存在;该红黑树的非叶结点作为内部结点,其中每一个内部结点与目录的某个具体版本一一 对应;步骤3. 1.2,内部结点的数据都存储在代表该目录版本的Inode中,存放在外存中,存储 以下信息结点关键值,为版本的生成时间印och,指向该结点相应父结点的指针,指向左 子树的指针,指向右子树的指针以及本结点的颜色;外部结点没有对应实体,只存在于内存 中,存储以下信息指向该结点相应父结点的指针,外部结点的颜色(缺省为黑色);在各个 内部结点之间,结点按关键值排序以根结点为基准,结点关键值比根结点大的内部结点, 代表创建时间较晚的目录版本,位于根结点的左子树中,反之,则位于右子树中。按照红黑 树树体调整算法,随着结点的插入和删除,各个结点(含根结点)的位置会自适应的变动。步骤3. 1. 3,目录新版本文档来自技高网...

【技术保护点】
基于快照的细粒度文件与目录版本管理方法,其特征在于,该方法是在文件与目录版本管理服务器上依次按照以下步骤实现的:步骤(1).初始化:对文件与目录系统的数据结构作以下扩充:在文件或目录的系统数据结构,即文件系统索引结点Inod e中增加以下内容以适应支持文件或目录版本生成机制的系统要求:版本生成时的操作系统时间epoch,一个文件或目录的不同版本对应于不同的epoch值,越早生成的版本其对应的epoch值越小,反之越大;最近一次对文件或目录执行快照 操作的时间snapepoch;共享位图,其中存放着同一文件或目录不同版本间的数据共享关系;位图位于Inode中的根索引结构以及间接索引结构内,其形式为比特位的集合;集合中比特与索引结构中的指针是依序一一对应的;比特‘1’代表对应指针 所指向的数据块由本Inode管理,本Inode对该数据块有占有权,并可与之前的版本共享该数据块;比特‘0’代表对应指针所指向的数据块不属于本Inode,而是由之后的某个版本的Inode管理,本Inode仅具有对该数据块的使用权;版本 索引结构,用来存放索引其他版本的指针以及相关状态;对于目录版本,其Inode中还有:索引数据块的指针i_block,指向动态哈希索引表;指向哈希函数的指针hash,标志当前所使用的哈希函数;文件系统中目录表中 的目录项dentry;生命周期二元组,其中包括:出生时间,birth_epoch,即目录项所代表的目录版本被创建时的系统时间;死亡时间,death_epoch,即目录项所代表的目录版本被删去时的系统时间;与此同时,把整个文件系统中由 文件和目录的不同名字组成的名字空间与由不同时间生成但名字相同的版本所组成的版本空间独立开来;在名字空间中,把彼此相关的子文件和子目录都存放在名字空间中同一个父目录下,从而不同名字的文件和目录按逻辑上包容的关系形成从名字空间的根目录出发的层级结构;在这里,每一个名字下的各个文件和目录都对应一系列的版本,组成一个版本空间,其中,文件和目录的版本按照版本生成的时间通过索引结构组织起来,使得生成时间相近的子文件和子目录版本按生成时间先后存放在同一个父目录的版本下,形成版本空间中的层级结构;名字空间的搜索采用了基于动态哈希的索引策略,版本空间的检索采用了基于红黑树的索引策略,且目录版本和文件版本分别采用针对各...

【技术特征摘要】

【专利技术属性】
技术研发人员:舒继武薛巍向小佳
申请(专利权)人:清华大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1