元数据文件格式转换方法

文档序号:6383339阅读:1816来源:国知局
专利名称:元数据文件格式转换方法
技术领域
本发明涉及分布式存储系统,更具体地,涉及元数据文件格式转换方法。
背景技术
在分布式存储系统中,元数据服务器通过操作元数据文件向其他节点提供服务,元数据文件保存着存储系统中所有文件的信息(大小、布局等),作用相当重要。在分布式存储系统中,这些信息被组织成一定格式的文件存放在本地文件系统(如ext3)中,其被称为元数据文件,例如其中存放文件系统超级块信息的文件和存放文件inode信息的文件等。这些文件的格式一般很少变化,但是随着文件系统功能的扩展,旧的文件格式无法满足新的需求,这时就需要对旧的元数据文件格式进行调整,既要转变文件格式,又要保护已有的数据信息。元数据格式转换面临ー些问题首先就是数据安全,即,在转换过程中如何保证已有的数据能够完整的保存到新的文件中去,转换过程比较复杂,可能有许多突发状况(诸如断电、系统宕机等)威胁数据安全;其次就是转换速度,运行时间长的存储系统元数据文件很庞大,转换所需要的时间也较长。针对相关技术中的问题,目前尚未提出有效的解决方案。

发明内容
针对相关技术中的问题,本发明g在提供ー种安全可靠的元数据文件转换思想和方法,使这种转换能快速地完成,并严格保证用户数据的安全。根据本发明的实 施例,提供了一种元数据文件格式转换方法,包括以下步骤将元数据文件进行备份;以及采用多线程处理方式来对元数据文件的格式进行转换。优选地,在进行格式转换之后,该方法还包括清理备份数据的步骤。优选地,将所述元数据文件进行备份包括用户提供远程主机的地址和路径并将元数据文件拷贝到所述路径。优选地,将元数据文件进行备份包括用户提供其他存储介质并将元数据文件拷贝到存储介质中。优选地,将元数据文件进行备份包括在本地对元数据文件进行备份。优选地,采用多线程处理方式来对元数据文件的格式进行转换包括主线程将元数据文件分派给多个子线程;以及多个子线程对分派给自己的元数据文件进行格式转换。优选地,主线程将元数据文件分派给多个子线程包括主线程获取文件系统并扫描文件系统的目录结构来获取其中的元数据文件;主线程根据子线程的数目对元数据文件的文件名进行哈希计算来获取ー个数值X,其中I彡X彡NR,NR为子线程的数目;以及主线程将元数据文件的文件名放入ID等于X的子线程的工作队列中。优选地,多个子线程对分派给自己的元数据文件进行格式转换包括子线程从自己的工作队列中获取元数据文件的文件名;子线程分析元数据文件的类型;以及子线程调用相应的处理接ロ对元数据文件的格式进行转换。更优选地,多个子线程在处理ー个文件系统之后,调用操作系统的同步命令来同步磁盘数据,井根据设定的备份方式来删除旧的文件。更优选地,将元数据文件的路径名进行拆分,将文件名的共有部分在内存中只存储ー份,在查找元数据文件时将路径名的共有部分与特有部分进行合并来得到完整的路径名。本发明通过进行数据备份和使用多线程并发操作,从而保证了数据安全并尽量缩短了转换时间。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是根据本发明实施例的元数据文件格式转换方法的流程图;以及图2是根据本发明实施例的分派和转换的示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。以下,參照附图详细描述本发明。图1示出了根据本发明实施例的元数据文件格式转换方法的流程图。參照图1,根据本发明实施例的元数据文件格式转换方法包括以下步骤S102,将元数据文件进行备份;以及S104,采用多线程处理方式来对元数据文件的格式进行转换。以下进行具体描述。首先,进行转换前的准备工作,包括备份数据和启动工作线程。在转换的过程中,可能出现很多突发情况(比如断电、系统宕机等)导致转换工作异常终止,为了防止已有数据意外丢失,本发明提供了三种备份模式,供用户选择A、远程备份,用户提供远程主机的地址和路径,工具将数据拷贝到目的路径;转换时删除本地旧文件。B、磁盘备份,用户提供ー块额外的磁盘,工具将数据拷贝到这块磁盘上;转换时删除本地旧文件。C、本地备份,不做其他备份,在转换数据的过程中不删除旧数据,转换完成后再删除本地旧文件。其次,为了加快处理速度,本发明的方案采用多线程处理方式,主线程启动时开启多个子工作线程,主线程将文件分派给这些子线程,这些子线程同时工作,互不影响。以下描述如何进行分派和转换。
主线程首先获取系统中的文件系统(根据文件系统自己的命名规则),本发明转换元数据文件,以存储系统中的文件系统为单位,属于同一个文件系统的元数据文件存放在同一个目录树下,所以需要首先根据存储系统的规则找到每个文件系统的目录树,然后顺序扫描每个文件系统的目录结构,获取其中的元数据文件,接着对文件名字按开启的子线程数目做哈希计算,获取ー个数值X (大小是I NR),NR =开启的工作线程数目),最后将该文件放到id等于X的线程的工作队列中。这里的哈希运算具体为为了使文件能尽量均衡地分配到各个线程上,维护ー个文件计数,分派文件时为该计数加1,然后在使用该计数对子线程数目求模即可。此外,工作线程的数目由使用者来指定,其大于等于1,最好等于计算机cpu的核心数目。然后,工作线程从自己的工作队列获取文件名,分析文件类型(超级块文件、inode文件等),然后调用相应的处理接ロ对文件进行转换。主线程在处理ー个文件系统后,调用操作系统的sync命令同步磁盘数据,然后根据用户的配置(參见上述备份方式A、B和C)删除旧的文件。注意,如何对元数据文件格式进行转换属于本领域的公知常识,这里为了避免冗余而省略其描述。在处理过程中,分派给线程处理的文件路径存放在内存中,这些信息会占用很多内存空间。多数时候路径名字会很长,而路径名都有很多共有的部分,所以本发明提供了一种方法来保存路径信息。具体来说,将路径名分拆成若干段,使一段共有的路径在内存中只有一份存储,在查找文件时再通过这些信息将其路径名组装起来。例如,文件Fl /x/y/z/filel,F2 /x/y/z/file2有共同的路径PATH :/x/y/z,我们就将PATH字符串的内存地址放在F1、F2的文件控制结构(该机构包含F1、F2各自的文件名filel或者file2)中,要查找Fl吋,我们将PATH和Fl的文件名filel合并后就得到了 Fl的完整路径名。这样让共享数据只有ー份,就极大地节省了内存使用量。最后,在转换完成之后清理备份数据。本发明经过实际测试,能快速对分布式文件系统的元数据格式进行转换。并能将已有数据完整地转移到新格式的文件中。综上所述,借助于本发明的上述技术方案,通过事先对元数据文件进行备份并由用户自由选择备份方式,保证了数据安全并且为用户提供了很好的灵活性。其次,通过使用多线程进行转换,提高了转换速度。此外,通过采用上述路径名存储方式,減少了文件路径的存储空间。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种元数据文件格式转换方法,其特征在于,所述方法包括以下步骤 将元数据文件进行备份;以及 采用多线程处理方式来对所述元数据文件的格式进行转换。
2.根据权利要求1所述的方法,其特征在于,在进行格式转换之后,所述方法还包括清理备份数据的步骤。
3.根据权利要求1所述的方法,其特征在于,将所述元数据文件进行备份包括 用户提供远程主机的地址和路径并将所述元数据文件拷贝到所述路径。
4.根据权利要求1所述的方法,其特征在于,将所述元数据文件进行备份包括 用户提供其他存储介质并将所述元数据文件拷贝到所述存储介质中。
5.根据权利要求1所述的方法,其特征在于,将所述元数据文件进行备份包括 在本地对所述元数据文件进行备份。
6.根据权利要求1所述的方法,其特征在于,采用多线程处理方式来对所述元数据文件的格式进行转换包括 主线程将所述元数据文件分派给多个子线程;以及 所述多个子线程对分派给自己的元数据文件进行格式转换。
7.根据权利要求6所述的方法,其特征在于,所述主线程将所述元数据文件分派给所述多个子线程包括 所述主线程获取文件系统并扫描所述文件系统的目录结构来获取其中的元数据文件; 所述主线程根据子线程的数目对所述元数据文件的文件名进行哈希计算来获取一个数值X,其中I彡X彡NR,NR为所述子线程的数目;以及 所述主线程将所述元数据文件的文件名放入ID等于X的子线程的工作队列中。
8.根据权利要求7所述的方法,其特征在于,所述多个子线程对分派给自己的元数据文件进行格式转换包括 所述子线程从自己的工作队列中获取所述元数据文件的文件名; 所述子线程分析所述元数据文件的类型;以及 所述子线程调用相应的处理接口对所述元数据文件的格式进行转换。
9.根据权利要求8所述的方法,其特征在于,所述多个子线程在处理一个文件系统之后,调用操作系统的同步命令来同步磁盘数据,并根据设定的备份方式来删除旧的文件。
10.根据权利要求8所述的方法,其特征在于,将所述元数据文件的路径名进行拆分,将所述文件名的共有部分在内存中只存储一份,在查找所述元数据文件时将路径名的共有部分与特有部分进行合并来得到完整的路径名。
全文摘要
本发明公开了一种,元数据文件格式转换方法,包括以下步骤将元数据文件进行备份;以及采用多线程处理方式来对元数据文件的格式进行转换。本发明通过进行数据备份和使用多线程并发操作,从而保证了数据安全并尽量缩短了转换时间。
文档编号G06F11/14GK103034701SQ201210518650
公开日2013年4月10日 申请日期2012年12月5日 优先权日2012年12月5日
发明者马振杰, 杨浩, 马照云, 付根希, 苗艳超 申请人:曙光信息产业(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1