一种分布式文件系统快速数据恢复的方法

文档序号:6335465阅读:464来源:国知局
专利名称:一种分布式文件系统快速数据恢复的方法
技术领域
本发明涉及分布式并行文件系统数据恢复,具体涉及一种分布式文件系统快速 数据恢复的方法。
背景技术
随着存储系统体系结构的发展,目前主要有以下几种磁盘存储系统直连系 统;存储区域网络(SAN);网络附加存储(NAS)以及分布式集群存储系统。直连系统作为最传统的存储方式,虽然具有低延迟、独享、完全的控制权等优 点,但是它有以下缺点1)可扩展性有限,很难做到在线扩展;2)占用主机CPU、内存 等系统资源开销;3)可用性、可靠性有限。随着需要存储的数据量的飞速增长,其缺点 已经越来越突出,很难满足大规模存储需求。存储区域网络(SAN)是最昂贵的存储系统,自身的可扩展性很好,容易做到在 线扩展,但由于其对外提供块设备接口,而只有少数的高端数据库直接使用块设备,通 常需要安装文件系统来管理,所以用户得到的可扩展性以及其它性能,最终由文件系统 决定,而不是SAN自身。网络附加存储(NAS)对外提供文件系统接口,服务器性能即是用户所见性能, 它通常提供NFS和CIFS接口,但是其可扩展性有限,难以做到在线扩展。分布式集群存储系统继承了计算集群系统的可扩展性,随着磁盘容量、价格比 大幅的提升,竞争力越来越明显,以当前的技术水平,它是部署大容量、高性价比存储 系统的唯一结构。已经成为大规模存储的主流发展趋势。分布式并行文件系统一般分为元数据服务器,数据服务器以及客户端几个模 块,其中元数据根据集中存放还是分布式存放,又可以分为单元数据服务器及多元数据 服务器。前者优点是容易控制,但是单元数据服务器很容易成为系统瓶颈;后者正好相 反。元数据与数据服务器分离是当前的主流架构(图1为并行文件系统的一个典型系 统结构),为了提高文件访问的并发度及速度,充分发挥所有数据服务器的读写能力,文 件一般会被分割成不同对象存放到不同数据服务器及磁盘。同时,为了消除单点故障, 多副本技术是分布式文件系统提高可靠性的一个主要方式。随着存储规模的增大以及单个磁盘容量的增加,当发生磁盘故障时如何进行快 速数据恢复已经成为一个重要问题。针对数据副本以对象为单位的存储方式,无论哪种 数据恢复策略,都需要首先找到故障磁盘上存放了哪些数据,这样才能根据对应副本进 行修复。如果系统正常运行过程中,不对该信息进行记录,则故障发生时,需要扫描系 统内所有索引节点(inode),在分布式文件系统中,这是令人难以容忍的;而如果在文件 创建的关键路径上记录这些信息,为了防止断电丢失某些对象需要进行同步记录,当某 个文件涉及多个磁盘时,这也是令人难以容忍的,即使首先将文件涉及的所有磁盘一次 记录入临时文件,随后异步处理临时文件,这一同步操作与关键路径上其他内存操作相
3比,仍然是开销很大。本发明主要提出了一种高效、安全的解决这一问题的方法。为实施本发明,给出如下定义对象一个文件存储于单个磁盘上的全部数据的集合,称为一个对象,通常对 应OSD (对象存储设备)中本地物理文件系统中的一个文件。当利用分片模式进行存储 时,一个文件可以包含多个对象,如图2所示,每一列代表一个磁盘,椭圆区域各代表 一个对象。磁盘对象文件记录每个磁盘存放了哪些对象的文件,数据服务器(ds)的每个 磁盘在每个元数据服务器(mds)上都对应一个文件。在下面的介绍中简称obj2disk。本发明引入obj2disk的概念,在并行文件系统运行过程中在元数据服务器上记录 0bj2disk,以便发生磁盘故障时进行快速恢复。对于多元数据服务器,为了减少存储系统内部通讯,同时也为了故障发生时能 并发获取磁盘所存储的对象,各个元数据服务器只记录在其上创建的对象,所有元数据 服务器的合集即为完整的obj2disk,即磁盘对象文件也采用分布式存储。

发明内容
本发明的主要内容是提出了一种高效、准确记录哪个磁盘上存放哪些对象的方 法,当分布式并行文件系统数据服务器发生磁盘故障时,为快速修复提供一个前提和保 证。一种分布式文件系统快速数据恢复的方法,包括以下步骤A、系统正常运行过程中,客户端向元数据服务器发送创建或删除文件请求;B、对于创建请求,元数据服务器分配资源并进行初始化后,置flag标志,表明 尚未记录入obj2disk,然后对客户端进行应答;对于删除请求,置索引节点inode无效后 对客户端进行应答;C、脏队列回刷线程对inode回刷时,如果发现obj2disk标志被置位,则将对象 通过扩展hash记录入本inode涉及到的所有obj2disk文件,清除标志位后刷回;垃圾回收 线程负责从obj2disk文件清除已被删除的对象记录;D、当数据服务器发生磁盘故障时,所有元数据服务器上与故障盘对应的 obj2disk文件的合集即为该盘的所有对象集合,可以以此为基础根据副本进行快速数据恢
Μ. ο本发明一种优选技术方案在于所述0bj2disk采用了本地双写,可以通过本地 副本进行拷贝。本发明另一优选技术方案在于当两个副本盘同时故障导致0bj2disk文件被 毁,可以通过扫描inode进行恢复。本发明再一优选技术方案在于若系统断电导致部分内存数据丢失,可以根据 日志恢复元数据的同时记录obj2disk文件。本发明带来的有益效果如下1)引入obj2disk文件,在系统正常运行过程中动态记录、维护每个ds磁盘所包 含的对象,可以在发生磁盘故障时快速确定故障盘所存放的所有对象;2)磁盘对象文件分布式存储,这不仅减少了记录过程中的通讯,更为数据恢复
4的并发进行提供了基础。3)磁盘对象文件记录异步添加、清除,这样对文件创建及删除的关键路径的影 响微乎其微。4)磁盘文件刷回放在inode被刷回的时机,由于元数据是所有文件系统的核心所 在,所以文件系统尤其是并行文件系统肯定会在元数据上下很大功夫来提高其可靠性。 这样,磁盘对象文件就能受益于部分可靠机制,如日志机制。


图1为并行存储系统的系统结构示意2为文件如何被分片放到磁盘上的示意3为系统运行及利用0bj2disk文件进行数据恢复的示意图
具体实施例方式下面结合说明图举例对本发明的具体实施方式
进行说明。图1为并行存储系统的系统结构示意图,主要包含元数据、数据、客户端等模 块。其中元数据服务器(mds)采用多元数据服务器架构,mds服务器成组使用,同一组 内服务器互为副本,同时,为了进一步保证元数据的可靠性,单个服务器内部采用双写 策略,并引入了日志模块。实施系统包含多个数据服务器(ds),文件数据存放提供分片 方式,为提高数据可靠性,引入副本机制,文件对象的不同副本放在不同的磁盘上。obj2disk存放在mds服务器,采用本地双写,为了实现简单,避免通讯开销以及 副本间同步,mds服务器上obj2disk只保存本mds创建的文件,同时不在组内广播。这 是因为磁盘对象文件的重要性低于元数据,而且并非不可恢复,最坏情况下本地两个副 本都坏了,还能通过扫描所有元数据进行恢复。为了减少冗余信息,文件删除时,其记录要从所有相关0bj2disk中删除,这就需 要能够快速定位记录位置。为了能在文件删除时快速定位删除对象在obj2disk中的位置, 引入了扩展hash对其进行管理。图3为加入obj2disk文件后,系统正常运行过程及ds磁盘故障修复示意图1表 示系统运行过程中客户端向mds发送创建或删除文件请求;2表示mds作了必要处理后 向客户端进行应答;3表示后台线程异步修改obj2disk文件,对其进行添加和删除;4表 示ds发生磁盘故障,所有mds根据obj2disk文件以及可用副本对故障磁盘内容进行并行恢复。下面我们对对象加入obj2disk以及从中被删除的过程进行说明元数据服务器收到创建文件请求,为该文件分配inode并进行初始化,在这里置 flag标志,表明尚未记录入obj2disk,然后为该文件分配磁盘并将inode加入相关队列(包 含脏队列),同时创建dentry项,当然,在这一过程中需要记录日志。所有工作做完以 后就可以向客户端应答。当脏队列回刷线程对该inode进行回刷时,发现obj2disk标志被 置位,则将对象通过扩展hash记录入本inode涉及到的所有obj2disk文件,清除标志位后 将该inode刷回。如果客户端要删除某个文件,则元数据服务器接到文件删除请求后,置对应
5inode无效,删除其dentry项后向客户端应答,垃圾回收线程会将对象从obj2disk文件删 除,并删除文件数据。如果系统运行过程中发生了磁盘故障,则所有mds并发从本mds上读取由其 创建的存放到故障盘上的对象,找到该对象的所有副本,并分配一个新的磁盘替代故障 盘,由某个副本(ds)负责将该副本拷贝到新的磁盘。这样就能获取很高的故障恢复速率。同时,obj2disk本身具有很好的可靠性如果元数据服务器某个磁盘故障,因为 obj2disk采用了本地双写,可以通过本地副本进行拷贝;如果不幸两个副本盘都同时故 障,obj2disk文件被毁(这种概率相对非常小),也不是致命问题,可以通过扫描inode进 行恢复,这个会比较耗时;如果系统断电导致部分内存数据丢失,因为元数据具有日志 机制,可以在根据日志恢复元数据的同时记录obj2disk文件。
权利要求
1.一种分布式文件系统快速数据恢复的方法,其特征在于包括以下步骤A、系统正常运行过程中,客户端向元数据服务器发送创建或删除文件请求;B、对于创建请求,元数据服务器分配资源并进行初始化后,置flag标志,表明尚未 记录入obj2disk,然后对客户端进行应答;对于删除请求,置索引节点inode无效后对客 户端进行应答;C、脏队列回刷线程对inode回刷时,如果发现obj2disk标志被置位,则将对象通过 扩展hash记录入本inode涉及到的所有obj2disk文件,清除标志位后刷回;垃圾回收线程 负责从obj2disk文件清除已被删除的对象记录;D、当数据服务器发生磁盘故障时,所有元数据服务器上与故障盘对应的obj2disk文 件的合集即为该盘的所有对象集合,可以以此为基础根据副本进行快速数据恢复。
2.如权利要求1所述一种分布式文件系统快速数据恢复的方法,其特征在于所述 obj2disk采用了本地双写,可以通过本地副本进行拷贝。
3.如权利要求1所述一种分布式文件系统快速数据恢复的方法,其特征在于当两 个副本盘同时故障导致obj2disk文件被毁,可以通过扫描inode进行恢复。
4.如权利要求1所述一种分布式文件系统快速数据恢复的方法,其特征在于若系 统断电导致部分内存数据丢失,可以根据日志恢复元数据的同时记录obj2disk文件。
全文摘要
本发明公开了一种并行文件系统快速数据恢复的方法,包括引入磁盘对象文件的概念,用来在系统正常运行过程中记录数据服务器每个磁盘存放了哪些对象,对于多元数据服务器,磁盘对象文件分布存储,以减少通讯,提高数据恢复时的并发性;磁盘对象文件异步写入,使得对并行文件系统关键路径的影响微乎其微;磁盘对象文件刷回放在索引节点(inode)被刷回的时机,这样可以充分利用元数据本身的可靠性机制。
文档编号G06F17/30GK102024016SQ20101053645
公开日2011年4月20日 申请日期2010年11月4日 优先权日2010年11月4日
发明者付根希, 杨浩, 王勇, 苗艳超, 马照云 申请人:天津曙光计算机产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1