一种元数据处理方法及系统的制作方法

文档序号:6630039阅读:235来源:国知局
一种元数据处理方法及系统的制作方法
【专利摘要】本发明提供一种元数据处理方法及系统,包括以下步骤:元数据原本与元数据副本相互交错更新;更新完成后,元数据指针指向更新后的元数据原本或元数据副本。本发明通过在更新元数据信息的时候,元数据原本和元数据副本相互交错更新,相互作为历史元数据信息,提高了元数据可靠性和回滚的作用,保证了损坏的元数据,可从元数据副本的历史记录中恢复出数据,达到解决数据丢失问题,防止了元数据丢失造成存储池、逻辑卷数据丢失的问题,提高了存储池元数据可靠性。
【专利说明】一种元数据处理方法及系统

【技术领域】
[0001]本发明属于数据管理领域,尤其涉及一种元数据处理方法及系统。

【背景技术】
[0002]在高端磁盘阵列中,存储池对底层物理存储资源进行统一管理,将物理资源虚拟化,达到提供超大空间的存储资源并提供一种动态的逻辑存储资源,提高存储池的读写速率和存储资源利用率。
[0003]存储池将底层小容量的物理存储资源按照一定的规则组织成一个虚拟的大容量的存储资源,还可动态的在其上创建指定大小的逻辑存储资源,即逻辑卷。这种统一管理多个小容量物理磁盘,和管理其上的多个虚拟逻辑卷的创建、删除、扩容、缩容等操作,都需要一套完整、可靠的元数据进行管理。
[0004]元数据对于整个存储池很重要,如果在操作中或者某个异常处理中,不慎将元数据丢失,整个存储池、逻辑卷资源都将丢失。


【发明内容】

[0005]本发明提供一种元数据处理方法及系统,以解决上述问题。
[0006]本发明提供一种元数据处理方法。上述方法包括以下步骤:
[0007]元数据原本与元数据副本相互交错更新;
[0008]更新完成后,元数据指针指向更新后的元数据原本或元数据副本。
[0009]本发明还提供一种元数据处理系统,包括交替更新模块、指针重定位模块;其中,所述交替更新模块与所述指针重定位模块相连;
[0010]所述交替更新模块,用于控制元数据原本与元数据副本相互交错更新并将更新结果通知所述指针重定位模块;
[0011]所述指针重定位模块,用于控制元数据指针指向更新后的元数据原本或元数据副本。
[0012]本发明通过在更新元数据信息的时候,元数据原本和元数据副本相互交错更新,相互作为历史元数据信息,提高了元数据可靠性和回滚的作用,保证了损坏的元数据,可从元数据副本的历史记录中恢复出数据,达到解决数据丢失问题,防止了元数据丢失造成存储池、逻辑卷数据丢失的问题,提高了存储池元数据可靠性。

【专利附图】

【附图说明】
[0013]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0014]图1所示为本发明实施例1的存储池增加元数据副本后的空间布局示意图;
[0015]图2所示为本发明实施例2的存储池更新元数据操作的处理流程示意图;
[0016]图3所示为本发明实施例3的元数据处理方法流程图;
[0017]图4所示为本发明实施例4的元数据处理系统结构图。

【具体实施方式】
[0018]下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0019]本发明的核心是在存储池中增加元数据副本和元数据指针。
[0020]最开始元数据副本和元数据原本保存了两份完整的元数据,互为镜像,当一个元数据空间损坏,可从另一个元数据副本恢复。
[0021]若更新所述元数据原本信息时,将所述元数据副本的信息拷贝到所述元数据原本中,并增加更新拷贝过来的元数据信息后或者将最新内容的所述元数据副本信息拷贝到所述元数据原本中并更新或修改所述元数据原本中的逻辑卷信息后,所述元数据指针指向更新后的所述元数据原本;
[0022]下次若再需要更新元数据时,将所述元数据原本的信息拷贝到所述元数据副本中,并增加更新拷贝过来元数据信息或者将最新内容的所述元数据原本信息拷贝到所述元数据副本中并更新或修改所述元数据副本中的逻辑卷信息后,所述元数据指针指向更新后的元数据副本。
[0023]元数据指针指向元数据原本,存储池就使用元数据原本管理整个池子的操作和逻辑卷的操作;如果元数据指针指向元数据副本,那存储池就使用元数据副本管理整个池子的操作和逻辑卷的操作。
[0024]当需要更新元数据原本信息时,将元数据副本的信息拷贝到元数据原本中,并增加更新拷贝过来的元数据信息,元数据指针指向更新后的元数据原本。元数据副本不做更新,作为元数据历史信息。下次再需要更新元数据的话,将元数据原本的信息拷贝到元数据副本中,并增加更新拷贝过来元数据信息,元数据指针指向更新后的元数据副本。元数据原本不做更新,作为元数据历史信息。
[0025]若更新所述元数据副本信息时,将所述元数据原本的信息拷贝到所述元数据副本中,并增加更新拷贝过来的元数据信息后或者将最新内容的所述元数据原本信息拷贝到所述元数据副本中并更新或修改所述元数据副本中的逻辑卷信息后,所述元数据指针指向更新后的所述元数据副本;
[0026]下次若再需要更新元数据时,将所述元数据副本的信息拷贝到所述元数据原本中,并增加更新拷贝过来元数据信息或者将最新内容的所述元数据副本信息拷贝到所述元数据原本中并更新或修改所述元数据原本中的逻辑卷信息后,所述元数据指针指向更新后的元数据原本。
[0027]当某个元数据在更新过程中损坏,可以从元数据副本中的历史记录信息中回滚恢复出元数据信息(恢复到更新之前的状态)。
[0028]如图1所示,存储池中包括元数据原本、元数据副本、元数据指针,数据区域;其中,元数据原本与元数据副本互为镜像;元数据指针(Meta_0ffSet)记录当前所用元数据的地址。
[0029]元数据原本、元数据副本的结构分别包括存储池超级块(Pool_superblock)、元数据空间位图(Meta_bmp)、数据空间位图(Data_bmp)、逻辑卷元数据(Lv_info)、预留空间。
[0030]如图2所示,在存储池逻辑卷管理处理流程中,设计相互交错处理元数据原本和元数据副本的机制,当元数据损坏后,可以通过元数据副本恢复到更新之前的状态,详细说明如下:
[0031]初始化时,元数据原本和元数据副本相同;
[0032]若更新所述元数据副本信息时,将所述元数据原本的信息拷贝到所述元数据副本中,并增加更新拷贝过来的元数据信息或者将最新内容的所述元数据原本信息拷贝到所述元数据副本中并更新或修改所述元数据副本中的逻辑卷信息;
[0033]更新完成后,所述元数据指针Meta_0fTSet指向元数据副本区,使用所述元数据副本中的元数据;
[0034]元数据原本保留更新之前的元数据信息,起备份历史信息作用。
[0035]再次创建或修改逻辑卷,需要更新元数据时,将所述元数据副本的信息拷贝到所述元数据原本中,并增加更新拷贝过来元数据信息,此时更新或修改所述元数据原本中的逻辑卷信息;或者
[0036]再次创建或修改逻辑卷,需要更新元数据时,将最新内容的元数据副本信息拷贝到所述元数据原本中并更新或修改所述元数据原本中的逻辑卷信息;
[0037]更新完成后,所述元数据指针Meta_0fTSet指向元数据原本区,使用所述元数据原本中的元数据。
[0038]元数据副本保留更新之前的元数据信息,起备份历史信息作用。
[0039]更新元数据信息时,元数据原本和元数据副本相互交错,作为对方历史信息的记录,提高了元数据可靠性和回滚的作用。
[0040]图3所示为本发明实施例3的元数据处理方法流程图,包括以下步骤:
[0041]步骤301:元数据原本与元数据副本相互交错更新;
[0042]步骤302:更新完成后,元数据指针指向更新后的元数据原本或元数据副本。
[0043]图4所示为本发明实施例4的元数据处理系统结构图,包括交替更新模块、指针重定位模块;其中,所述交替更新模块与所述指针重定位模块相连;
[0044]所述交替更新模块,用于控制元数据原本与元数据副本相互交错更新并将更新结果通知所述指针重定位模块;
[0045]所述指针重定位模块,用于控制元数据指针指向更新后的元数据原本或元数据副本。
[0046]本发明通过在更新元数据信息的时候,元数据原本和元数据副本相互交错更新,相互作为历史元数据信息,提高了元数据可靠性和回滚的作用,保证了损坏的元数据,可从元数据副本的历史记录中恢复出数据,达到解决数据丢失问题,防止了元数据丢失造成存储池、逻辑卷数据丢失的问题,提高了存储池元数据可靠性。
[0047]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种元数据处理方法,其特征在于,包括以下步骤: 元数据原本与元数据副本相互交错更新; 更新完成后,元数据指针指向更新后的元数据原本或元数据副本。
2.根据权利要求1所述的方法,其特征在于:所述元数据原本与所述元数据副本相互交错更新的过程为: 若更新所述元数据副本信息时,将所述元数据原本的信息拷贝到所述元数据副本中,并增加更新拷贝过来的元数据信息后或者将最新内容的所述元数据原本信息拷贝到所述元数据副本中并更新或修改所述元数据副本中的逻辑卷信息后,所述元数据指针指向更新后的所述元数据副本; 下次若再需要更新元数据时,将所述元数据副本的信息拷贝到所述元数据原本中,并增加更新拷贝过来元数据信息或者将最新内容的所述元数据副本信息拷贝到所述元数据原本中并更新或修改所述元数据原本中的逻辑卷信息后,所述元数据指针指向更新后的元数据原本。
3.根据权利要求2所述的方法,其特征在于: 初始化时,所述元数据原本和所述元数据副本相同,创建逻辑卷; 若更新所述元数据副本信息时,将所述元数据原本的信息拷贝到所述元数据副本中,并增加更新拷贝过来的元数据信息后或者将最新内容的所述元数据原本信息拷贝到所述元数据副本中并更新或修改所述元数据副本中的逻辑卷信息后,此时在所述元数据副本中更新逻辑卷信息区,更新完成后,所述元数据指针指向元数据副本区,使用所述元数据副本中的元数据; 再次创建或修改逻辑卷,需要更新元数据时,将所述元数据副本的信息拷贝到所述元数据原本中,并增加更新拷贝过来元数据信息或者将最新内容的所述元数据副本信息拷贝到所述元数据原本中并更新或修改所述元数据原本中的逻辑卷信息;更新完成后,所述元数据指针指向元数据原本区,使用所述元数据原本中的元数据。
4.根据权利要求1所述的方法,其特征在于:所述元数据原本与所述元数据副本相互交错更新的过程为: 若更新所述元数据原本信息时,将所述元数据副本的信息拷贝到所述元数据原本中,并增加更新拷贝过来的元数据信息后,所述元数据指针指向更新后的所述元数据原本;下次若再需要更新元数据时,将所述元数据原本的信息拷贝到所述元数据副本中,并增加更新拷贝过来元数据信息后,所述元数据指针指向更新后的元数据副本。
5.根据权利要求1-4任一项所述的方法,其特征在于:所述元数据指针记录当前所用元数据的地址。
6.根据权利要求5所述的方法,其特征在于:若所述元数据指针指向所述元数据原本,存储池就使用所述元数据原本管理整个池子的操作和逻辑卷的操作;若所述元数据指针指向所述元数据副本,存储池就使用所述元数据副本管理整个池子的操作和逻辑卷的操作。
7.根据权利要求6所述的方法,其特征在于:所述存储池中包括所述元数据原本、所述元数据副本、所述元数据指针、数据区域;其中,所述元数据原本与所述元数据副本互为镜像。
8.根据权利要求7所述的方法,其特征在于:所述元数据原本、所述元数据副本的结构分别包括存储池超级块Pool_superblock、元数据空间位图Meta_bmp、数据空间位图Data_bmp、逻辑卷元数据Lv_info、预留空间。
9.根据权利要求8所述的方法,其特征在于:当元数据在更新过程中损坏,则通过元数据副本中的历史记录信息,恢复到更新之前的状态。
10.一种元数据处理方法,其特征在于,包括交替更新模块、指针重定位模块;其中,所述交替更新模块与所述指针重定位模块相连; 所述交替更新模块,用于控制元数据原本与元数据副本相互交错更新并将更新结果通知所述指针重定位模块; 所述指针重定位模块,用于控制元数据指针指向更新后的元数据原本或元数据副本。
【文档编号】G06F12/02GK104268097SQ201410538901
【公开日】2015年1月7日 申请日期:2014年10月13日 优先权日:2014年10月13日
【发明者】周耀辉, 施培任 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1