分布式文件系统的制作方法

文档序号:6338592阅读:211来源:国知局
专利名称:分布式文件系统的制作方法
分布式文件系统技术领域
本发明实施例涉及数据备份技术,尤其涉及一种分布式文件系统。
技术背景
随着互联网向更宽更广方向发展,各行各业应用越来越多,特别是流媒体应 用,内容发布网络(ContentDeliveryNetwork;以下简称CDN)中的内容供应服务器性能及可靠性越来越重要,而承载这些应用数据的核心文件系统对性能和可靠性要求也越 来越高。
对于可靠性,现有技术主要采用独立冗余磁盘阵列(Redundant Arrayof bidependentDisk;以下简称RAID)技术使用冗余备份特性保证。简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬 盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。而对于性能,现有技术 通常采用分布式文件系统的存储条带化管理来叠加聚合硬盘带宽。所述的条带化为一种 管理功能,其作用是将数据按一定步长分散在多个存储设备上,使得读取时并行从多个 物理存储设备上获取,实现多物理存储设备性能叠加。RAID技术的数据冗余与数据条带 化特性,保证了分布式文件系统的高可靠性与高性能。
一般来说,分布式文件系统可以理解成建立在一个网络存储系统上的。在高性 能需求不断增加形式下,硬盘逐渐被固态硬盘取代的趋势发展,由于固态盘极为昂贵, 此时采用固态硬盘备份固态硬盘的RAID技术导致了服务器成本开销剧增。RAID技术常 采用RAIDl与RAID5实现。其中,RAIDl是第1级RAID技术,采用一种完整镜像备 份,需要两个同质的存储系统同步进行读写操作,互为镜像,即使有一个磁盘损坏,系 统仍能正常工作。RAID5是一种存储性能、数据安全和存储成本兼顾的存储解决方案, 不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各 个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一 个磁盘数据发生损坏后,利用余下的数据和相应的奇偶校验信息去恢复被损坏的数据。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题在CDN网 络中,使用RAID技术存在以下缺点同等容量,组成RAID需要更多的磁盘,特别 是RAIDl需要双倍的磁盘,并且固态盘极为昂贵,因而存储成本导致系统成本过高; RAID5任何数据的修改需要重写校验,导致写入数据稍慢,数据恢复时间久,可能影响 业务;而且,数据备份的恢复受到损坏磁盘的数量的限制。发明内容
本发明实施例提供一种分布式文件系统,包括接入模块、与所述接入模块连 接的元数据管理单元,以及分别与所述元数据管理单元连接的主用存储系统和备用存储 系统,所述接入模块还分别与所述主用存储系统和所述备用存储系统连接;所述接入模 块、所述元数据管理单元、所述主用存储系统和所述备用存储系统之间通过系统总线连4接;还包括外部存储系统,所述外部存储系统通过网络与所述主用存储系统和所述备用 存储系统连接;其中
所述接入模块,用于接收读/写数据请求,向所述元数据管理单元发送元数据 请求以获取所请求的数据对应的元数据,并应用所述元数据向所述主用存储系统或所述 备用存储系统读写数据;
所述元数据管理单元,用于在所述接入模块请求所述元数据时,查找所请求的 数据在所述主用存储系统或所述备用存储系统上的位置,并构造所述元数据,返回给所 述接入模块;所述主用存储系统,用于在所述分布式文件系统处于正常状态时为所述接 入模块提供所请求的数据;所述备用存储系统,用于在所述分布式文件系统处于异常状 态或恢复状态时,为所述主用存储系统提供数据备份;所述外部存储系统,用于为所述 主用存储系统提供数据备份。
本发明实施例提供的分布式文件系统中,通过将数据写入到主用存储系统中, 采用异步备份机制备份到备用存储系统,不影响高速设备的读写性能;而且可以实现在 线恢复数据,数据对外服务过程中自动实现数据恢复,加快恢复过程。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或 现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是 本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图1为本发明一实施例分布式文件系统组成示意图2为本发明另一实施例分布式文件系统组成示意图3为本发明实施例分布式文件系统在正常状态下处理流程示意图4为本发明实施例分布式文件系统在异常状态下并且为读数据请求情况下的 处理流程示意图5为本发明实施例分布式文件系统在异常状态下并且为写数据请求情况下的 处理流程示意图6为本发明实施例分布式文件系统在恢复状态下响应读数据请求的处理流程 示意图7本发明实施例分布式文件系统在恢复状态下响应写数据请求的处理流程示 意图8为本发明实施例分布式文件系统在系统恢复状态下数据恢复过程的处理流 程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施 例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实 施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普 通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例分布式文件系统组成示意图,如图1所示,该分布式文件 系统1包括接入模块11、与接入模块11连接的元数据管理单元12,以及分别与元数据管 理单元12连接的主用存储系统13和备用存储系统14,接入模块11还分别与主用存储系 统13和备用存储系统14连接;其中,接入模块11、元数据管理单元12、主用存储系统 13和备用存储系统14均位于内部网络中,各功能模块之间通过系统总线连接;该分布式 文件系统1还包括位于外部网络中的外部存储系统15,外部存储系统15通过主用存储系 统13和备用存储系统14网络与连接。
分布式文件系统1中的接入模块11,用于接收读/写数据请求,向元数据管理单 元12发送元数据请求以获取所请求的数据对应的元数据,并应用元数据向主用存储系统 13或备用存储系统14读写数据;
接入模块11是分布式文件系统1访问数据的入口,接收应用程序的读写数据请 求,向元数据管理单元12获取元数据,使用元数据信息向主用存储系统13、备用存储系 统14读写数据。作为一个功能模块可以单独部署在一个处理单元,如PC机,单板。一 般接入模块有多个,以向系统外部提供高吞吐量,至少有一个。
元数据管理单元12,用于在接入模块11请求所述元数据时,查找所请求的数据 在主用存储系统13或备用存储系统14上的位置,并构造所述元数据,返回给接入模块 11 ;还用于根据主用存储系统13的设备状态事件转换本分布式文件系统1的系统状态。 分布式文件系统1具有三种状态正常状态、异常状态和恢复状态其中
正常状态,指主用存储系统13的存储设备没有出现故障,数据存储在主用存储 系统上,有需要时会备份到备用存储系统14上。
异常状态,指主用存储系统13有存储设备出现故障,此时需要主用存储系统 13、备用存储系统14共同工作,协调完成数据存储,并保存协调结果,协调结果用于数 据恢复过程。
恢复状态,指主用存储系统13恢复了故障存储设备后,触发系统进行系统数据 恢复,主要使用备用存储系统14上的备份数据恢复到原来存储在故障存储设备上的数 据。
进一步地,元数据管理单元12负责在接入模块11请求元数据时,查找数据在存 储系统上的位置并构造元数据,返回给接入模块11。元数据管理单元12也负责管理系统 状态,其接收主用存储系统13设备状态事件,根据事件信息,转换系统状态、选择存储 系统,决定数据存储设备(位置);还负责系统的可靠性,其根据数据访问信息,自动备 份数据。在设备故障时,根据主用、备用、外部存储系统的数据分布情况,自动组成可 用元数据,保证系统的可用性;以及负责系统数据自动在线恢复,确保数据的可用性与 数据一致性。数据管理单元12可以单独部署在一个服务器上。
主用存储系统13,用于在所述的正常状态下为接入模块11提供所请求的数据。 具体地,主用存储系统13是分布式文件系统1的主要存储,用来保存系统所有数据,以 高读写性能为目的,系统正常状态下使用主用存储系统13读写数据并且全部数据都保存 在主用存储系统13上,由高速存储设备组成,使用存储条带化技术支持存储带宽聚合提 高读写性能,提供块访问方式,接入模块11可以以块方式直接读写其上存储的数据。
备用存储系统14,用于在所述的异常状态和所述的恢复状态下,为主用存储系 统13提供数据备份。具体地,备用存储系统14是分布式文件系统1的次要存储,用来 备份数据以支持系统的可靠性、可用性、数据可恢复性,使用存储条带化技术支持存储 带宽聚合提高读写性能,提供块访问方式,接入模块11可以以块方式直接读写其上存储 的数据。
外部存储系统15,用于为主用存储系统13提供数据备份。具体地,外部存储系 统15指存储有更多数据的存储系统,可以是上一层或同层其它系统。外部存储系统15 通过网络与系统的其他模块连接起来,使用网络访问方式读写数据,用作外部数据备份 补充,如果在主用存储系统13、备用存储系统14找不到相应数据,就可以向外部存储系 统15请求数据。
上述的内部网络是连接接入模块11、元数据管理单元12、主用存储系统13和备 用存储系统14直连的网络,可以是以太网也可以是内部总线(如PCIe总线)。元数据主 要是描述数据属性的信息,用来支持如指示存储位置、历史信息、资源信息以及文件记 录等,例如可以是保存请求的数据(请求的长度和偏移)的存储地址(可以是包括存储设 备号、存储块号、数据偏移)。元数据也可以是数据的索引节点号。数据的索引节点保 存在存储设备中,并标识数据的存储地址。根据数据的索引节点号,可以计算出索引节 点的存储地址。
图2为本发明另一实施例分布式文件系统组成示意图,基于上述实施例,如图2 所示,该分布式文件系统1包括接入模块11、元数据管理单元12、主用存储系统13和 备用存储系统14和外部存储系统15。进一步地,元数据管理单元12包括元数据操作模 块、备份模块和异常恢复模块;其中
所述元数据操作模块,分别与接入模块11、主用存储系统13连接,用于接收所 述元数据请求,向主用存储系统13或异常恢复模块请求元数据并向接入模块11返回所述 元数据;还用于根据接收的主用存储系统13上报的设备状态事件,更新所述系统状态; 还负责系统的状态管理,记录所述读/写数据请求中的数据控制信息。具体地,所述元 数据操作模块接收接入模块11所有的元数据请求,首先检索其元数据缓存,如果没有查 找到元数据,则需要向主用存储系统13或备用存储系统14请求元数据,缓存得到元数 据,最后返回元数据给接入模块11。
在正常状态下,检索元数据缓存,如果没有,则向主用存储系统13请求元数 据,同时记录下接收到的元数据请求中的数据控制信息,然后返回元数据给接入模块 11。数据控制信息可以记录到内存,也可以持久化到数据库。本实施例中,元数据管理 单元12可以包括一个数据控制信息记录模块,连接在元数据操作模块和备份模块之间, 用于永久性存储所述的数据控制信息。
在异常状态下,元数据操作模块把接收模块11发来的元数据请求转发给异常恢 复模块,由异常恢复模块负责向主用存储系统13、备用存储系统14获取元数据信息。
在恢复状态下,写数据过程跟正常状态下一样,元数据操作模块向主用存储系 统13请求元数据;读数据过程,请求异常恢复模块负责处理。
元数据操作模块负责状态管理,主用存储系统13负责上报设备状态事件,当接 收到设备故障事件,记录故障设备ID,系统状态由正常转为异常;当接收到设备恢复事件时,系统状态由异常转为恢复;当恢复操作完成时,由异常恢复模块通报元数据操作 模块后,系统状态由恢复转为正常。
所述备份模块,与所述元数据操作模块和备用存储系统13连接,用于读取所述 元数据操作模块记录下来的所述数据控制信息,生成数据备份操作控制信息并发送给备 用存储系统14,以将主用存储系统13上的数据备份到备用存储系统14中。具体地,所 述备份模块在正常状态下,以后台线程运行,读取前一段时间的元数据操作模块记录下 来的数据控制信息,根据备份策略分析出数据使用状况并生成数据备份请求,然后向备 用存储系统14上发出备份操作控制信息(操作类型,目标文件路径,源文件路径),要 求将主用存储系统上的文件备份到备用存储服务器上指定位置。所述备份模块结合备份 策略,可以灵活实现各种数据备份方案,包括全备份方案,分析数据时只分析写数据操 作,一旦是有写数据就需要生成备份请求;包括热点备份方案,分析数据时只分析读数 据使用情况(读数据请求次数、读数据频率),根据策略中的数据热点条件(可以使用次 数、读数据频率);包括备份指定数据方案,可以由策略指定数据特征码,分析数据时 分析出指定数据特征码并生成备份请求;包括分析出数据里备份请求信息,根据备份请 求信息生成备份请求。
所述异常恢复模块,分别与所述元数据操作模块、所述备份模块、主用存储系 统13和备用存储系统14连接,用于在所述异常状态和所述恢复状态下获取所述元数据并 返回给所述元数据操作模块。所述异常恢复模块负责异常、恢复状态下获取元数据信息 并维护元数据缓存的有效性,以及控制主用存储系统13数据恢复操作,以支持主用存储 系统13发生故障下系统可用性。
所述异常恢复模块可以包括如下子模块
第一处理子模块,用于在所述异常状态下,对于读数据请求,对从缓存或从主 用存储系统13获得的元数据进行缺失块检测,若检测到所述元数据有缺失块,则向备用 存储系统14发送请求信息包括缺失块信息和外部存储系统14的地址;在备用存储系统 14返回所述元数据后,进行块地址重绑定操作,重组可用的元数据并发送。具体地,在 异常状态下,对于读数据请求,所述异常恢复模块通过第一处理子模块首先检索其元数 据缓存,如果没有查找到元数据,向主用存储系统13请求元数据,接着对元数据进行缺 失块(数据存储在故障存储设备上,检测其存储设备ID)检测,如果发现有缺失块,再向 备用存储系统14请求元数据,请求信息包括缺失块信息(块号,数据ID,偏移)与外部 存储系统15地址,在备用存储系统14返回元数据后,进行块地址重绑定操作。块地址 重绑定操作指把备用存储系统14上的缺失块对应的元数据信息替换掉主用存储系统13上 的缺失块对应的元数据信息,重组成可用的元数据并缓存此元数据以加快元数据获取。
第二处理子模块,用于在所述异常状态下,对于写数据请求,仅向备用存储系 统14请求元数据并返回给所述元数据操作模块;还用于记录写数据操作,以在数据恢复 过程中根据记录的所述写数据操作将数据同步到主用存储系统13中。具体地,在异常状 态下,对于写数据请求,所述异常恢复模块通过第二处理子模块自动选择备用存储系统 14为存储目标,只向备用存储系统14请求元数据并返回请求结果到元数据操作模块,这 样,接入模块11根据元数据信息会把数据都写到备用存储系统14上,异常恢复模块还会 记录下写数据操作,数据恢复过程中,会根据这些记录把数据同步到主用存储系统13。
恢复状态下,异常恢复模块负责在线数据恢复,可以同时进行数据服务与数据 恢复。异常恢复模块通过故障存储设备bitmap位图表示缺失块恢复情况,恢复过程中, 异常恢复模块负责维护bitmap的更新。检测缺失块时,先根据存储设备ID,再对比数据 块所对应的bitmap是否已经恢复。
异常恢复模块还可以包括第三处理子模块,用于在所述恢复状态下,对于读数 据请求,对从缓存或从主用存储系统13获得的元数据进行缺失块检测,若检测到所述元 数据有缺失块,则向备用存储系统14发送请求信息包括缺失块信息,在备用存储系统14 返回元数据后,构造缺失块恢复操作信息,以供主存储系统13进行数据恢复;并更新主 存储系统13的故障存储设备位图,返回所述元数据。
具体地,在恢复状态下,对于读数据请求,异常恢复模块通过第三处理子模块 首先检索其元数据缓存,如果没有查找到元数据,则向主用存储系统13请求元数据,接 着对从缓存或主用存储系统13得到的元数据进行缺失块检测,如果发现有缺失块,再向 备用存储系统14请求元数据,传递缺失块信息(块号,数据ID,偏移),在备用存储系 统14返回元数据后,构造主用存储系统13缺失块恢复操作信息,主用存储系统13根据 此信息或者向备用存储系统14或者向外部存储系统15恢复数据。恢复后,更新故障存 储设备bitmap位图,返回元数据。
异常恢复模块还可以包括第四处理子模块,用于在所述恢复状态下,对于写数 据请求,向主用存储系统13请求元数据,获得所述元数据后,若检测到所述元数据有缺 失块,则更新主存储系统13的故障存储设备位图,返回所述元数据。具体地,在恢复状 态下,对于写数据请求,异常恢复模块通过第四处理子模块向主用存储系统13请求元数 据,得到元数据后,以故障存储设备ID检测缺失块,如果有缺失块则直接更新故障存储 设备bitmap位图,然后返回请求结果到元数据操作模块。
在恢复状态下,异常恢复模块启动一个后台恢复线程。恢复线程根据恢复设备 的类型,选择恢复过程。如果是存储设备没有读写故障(可能是存储设备热插拔后又插 回来),只需要把在异常期间写到备用存储系统的数据保存到主用存储系统,并删掉重绑 定的元数据缓存。
如果是存储设备读写故障,遍历主用存储系统的数据,其恢复过程如下异常 恢复模块首先检索其元数据缓存,如果查找到元数据缓存,就要检查是否有数据在备用 存储系统,如果有数据在备用存储系统(也就是有重绑定过的元数据缓存),则构造主用 存储缺失块恢复操作信息,主存储系统根据此信息向备份存储系统恢复数据。恢复后, 删掉重绑定过的元数据缓存并更新故障存储设备bitmap位图。
如果在元数据缓存没有查找到元数据,则向主用存储系统请求元数据,接着对 从主用存储系统得到的元数据进行缺失块检测,如果发现有缺失块,再向备用存储系统 请求元数据,请求信息包括缺失块信息(块号,数据ID,偏移),但不包括外部存储地 址,在备用存储系统返回元数据后,构造主用存储系统缺失块恢复操作信息,主存储系 统根据此信息或者向备份存储系统或者向外部存储系统恢复数据。恢复后,更新故障存 储设备bitmap位图。
后台恢复线程在遍历主用存储系统的数据后,还遍历在异常期间异常恢复模块 记录下写数据操作,负责把写在备用存储系统的数据保存到主用存储系统,然后更新故障存储设备bitmap位图并删掉元数据缓存。
如图2所示,该分布式文件系统中还可以包括主用数据管理模块,连接在主用 存储系统13和元数据管理单元12之间,用于管理主用存储系统13所存储的数据,响应 元数据请求和数据操作请求。具体地,主用数据管理模块负责响应元数据请求,还负责 接收恢复操作信息并实现数据恢复,恢复操作信息有两类,一种有备用存储系统地址信 息,一种有外部存储系统地址信息的。主用数据管理模块根据恢复操作信息,或者向备 用存储系统或者外部存储系统恢复数据块。
该分布式文件系统中还可以包括备用数据管理模块,连接在备用存储系统14和 元数据管理单12元之间,用于管理备用存储系统14所存储的数据,响应元数据请求和数 据操作请求。具体地,备用数据管理模块负责响应元数据请求,还负责接收备份请求并 实现数据备份。元数据请求有两类,第一类有外部存储地址信息,第二类没有外部存储 系统地址,备用数据管理模块对这两类元数据请求的区别是如果在备用存储系统14检 索不到元数据,则处理第一类时会向外部存储系统15请求所有数据并存储下来,返回存 储后的元数据。备用存储系统14处理备份请求时,根据备份请求,直接向主用存储系统 13请求数据并保存下来。
上述的分布式文件系统中,主用存储系统包括数个高速存储设备,所述的高速 存储设备包括但不限于高数据传输率的SC^I硬盘、SATA硬盘、SSD。主用存储系统也 负责监控自身存储设备状态,并上报设备事件(如设备故障,设备恢复)。上述设备故障 包括存储设备读写故障、热插拔存储设备。备用存储系统包括数个高速存储设备和/或 低速存储设备,其中,高速存储设备包括但不限于高数据传输率的SC^[硬盘、SATA硬 盘、SSD;低速存储设备包括但不限于低数据传输率的存储设备。
上述实施例中所述的恢复操作信息有两类,一种有备用存储系统地址信息,一 种有外部存储系统地址信息的。主用数据管理模块根据恢复操作信息,或者向备用存储 系统或者外部存储系统恢复数据块。也就是说,有备用存储系统地址信息的恢复操作信 息,主用数据管理模块从备用存储系统恢复数据块有外部存储系统地址信息的恢复操作 信息,主用数据管理模块从外部存储系统恢复数据块在恢复状态下,读数据时,就会构 造上面的恢复操作信息,这样,既提供读数据服务又马上恢复所访问的数据,根据数据 的局部性原理,最近访问的数据也就是大多数用户关注的数据,优先恢复这些数据,有 利于提高性能。
关于外部存储地址在异常状态下,读数据时,需要向备用存储系统请求元数 据,这是包括外部存储地址的,这希望备用存储系统本身没有所请求的元数据时,备用 存储系统先从外部存储系统请求数据(相当于把所有数据从外部存储系统备份到备用存 储系统),再返回元数据。这样,既保证读数据服务又把数据从外部存储系统备份到备用 存储系统中,而恢复时可以从备用存储系统中恢复数据,从而加速数据恢复。在恢复状 态下,读数据时或后台数据恢复线程时,可能会向备用存储系统请求元数据,这是不包 括外部存储地址的,这样,如果备用存储系统本身没有所请求的元数据,备用存储系统 不会向外部存储存储系统请求数据,备用存储系统返回空。接着主用存储系统使用外部 存储地址,向外部存储系统请求数据(只请求缺失块所包含的数据,数据恢复时只需要 恢复缺失块所包含的数据)。
本发明实施例提供的分布式文件系统,将数据写入到主用存储系统中,采用异 步备份机制备份到备用存储系统,不影响高速设备的读写性能;可以在线恢复数据,数 据对外服务过程中自动实现数据恢复,加快恢复过程;而且恢复数据时不需要计算,即 使数据没有备份,仍可以通过外部存储恢复;在CDN环境下,使用策略备份数据机制与 可用外部存储获取没有备份的数据,可实现部分数据备份而不影响可用性;另外,可以 用廉价的存储设备组成备用存储系统,降低产品成本。
图3为本发明实施例分布式文件系统在正常状态下处理流程示意图,如图3所 示,该流程包括
步骤1、备份管理模块读取数据控制信息;
步骤2、备份管理模块按照备份策略对数据控制信息进行读写请求情况分析,如 果满足策略要求,组成备份控制信息,发到备用数据管理模块,要求将主用存储系统上 的文件备份到备用存储服务器上;
步骤3、备用数据管理模块接收备份管理模块发过来的备份控制请求(操作类 型,目标文件路径,源文件路径),根据备份控制请求信息,向主用数据管理模块发出备 份请求;
步骤4、主用数据管理模块接收备份请求,向主用存储系统中的存储设备读取数 据;
步骤5、主用数据管理模块返回数据给备用数据管理模块;
步骤6、备用数据管理模块把数据写到备用存储系统中的存储设备上;
步骤7、返回备份情况给备份管理模块。
图4为本发明实施例分布式文件系统在异常状态下并且为读数据请求情况下的 处理流程示意图,如图4所示,该流程包括
步骤1、应用程序向接入模块发出读数据的请求;
步骤2、接入模块向元数据操作模块发出读取元数据请求;
步骤3、元数据操作模块把读取元数据请求转发给异常恢复模块;
步骤4、异常恢复模块先在元数据信息缓存查找元数据,如果找到转向第6步;
步骤5、异常恢复模块向主用数据管理模块发起元数据请求,主用数据管理模块 接收备份请求,向主用存储系统中的存储设备读取元数据,然后返回元数据给异常恢复 模块;
步骤6、异常恢复模块检查从元数据缓存或主用存储系统返回来的元数据信息 是否有缺失块存在,有则向备用存储系统发起元数据请求并带上一个外部备份控制信息 (包括外部存储系统位置,数据位置信息),没有则返回元数据信息到元数据操作模块, 并转向第9步;
步骤7、如果此数据已经备份在备用存储系统,则备用数据管理模块返回元数 据,否则备用数据管理模块根据外部备份控制信息向外部存储系统请求数据,把所得数 据存储在备用存储系统,并返回元数据信息;
步骤8、异常恢复模块进行块地址重绑定操作,修改缺失块的元数据的块映射 表,将在备用存储系统上应用相应的块地址替换掉缺失块地址,并将生绑定的元数据缓 存起来,返回所有的元数据给元数据操作模块;11
步骤9、元数据操作模块返回元数据给接入模块;
步骤10、接入模块根据返回的元数据信息,向相应的主用存储系统、备用存储 系统发起IO数据请求;
步骤11、主用存储系统、备用存储系统返回数据给接入模块;
步骤12、接入模块响应数据返回给应用程序。
图5为本发明实施例分布式文件系统在异常状态下并且为写数据请求情况下的 处理流程示意图,如图5所示,该流程包括
步骤1、应用程序向接入模块发出写数据的请求;
步骤2、接入模块向元数据操作模块发出读取元数据请求;
步骤3、元数据操作模块把读取元数据请求转发给异常恢复模块;
步骤4、异常恢复模块直接向备用存储系统发起元数据请求;
步骤5、备用数据管理模块接收元数据请求并构造元数据,返回元数据;
步骤6、异常恢复模块返回元数据信息给元数据操作模块;
步骤7、元数据操作模块返回元数据给接入模块;
步骤8、接入模块根据返回的元数据信息,向备用存储设备发起IO数据请求;
步骤9、接入模块写数据到备用存储系统;
步骤10、接入模块返回写数据结果给应用程序。
图6为本发明实施例分布式文件系统在恢复状态下响应读数据请求的处理流程 示意图,如图6所示,该流程包括
步骤1、应用程序向接入模块发出写数据的请求;
步骤2、接入模块向元数据操作模块发出读取元数据请求;
步骤3、元数据操作模块把读取元数据请求转发给异常恢复模块;
步骤4、异常恢复模块检索元数据缓存,如果没有找到,则向主用存储系统请求 元数据,如果找到跳到第6步;
步骤5、主用存储系统接收请求元数据,返回元数据;
步骤6、异常恢复模块检查有没有缺失块,如果有则向备用存储系统请求元数 据,如果没有,则跳到第11步;
步骤7、异常恢复模块根据备用存储系统返回的元数据,构造恢复控制信息发给 主用存储系统;
步骤8、主用存储系统接收到恢复控制信息,并执行数据恢复;
步骤9、返回数据恢复结果到异常恢复模块;
步骤10、异常恢复模块更新已经恢复的缺失块bitmap位步骤11、返回从元数据缓存或主用存储系统得到的元数据给元数据操作模块;
步骤12、元数据操作模块返回元数据给接入模块;
步骤13、接入模块根据返回的元数据信息,向相应的主用存储系统、备用存储 系统发起IO数据请求;
步骤14、主用存储系统、备用存储系统返回数据给接入模块;
步骤15、接入模块响应数据返回给应用程序。
图7本发明实施例分布式文件系统在恢复状态下响应写数据请求的处理流程示意图,如图7所示,该流程包括
步骤1、应用程序向接入模块发出写数据的请求;
步骤2、接入模块向元数据操作模块发出读取元数据请求;
步骤3、元数据操作模块把读取元数据请求转发给异常恢复模块;
步骤4、异常恢复模块向主用存储系统请求元数据;
步骤5、主用存储系统接收请求元数据,返回元数据;
步骤6、异常恢复模块检查有没有缺失块,如果有,则更新已经恢复的缺失块 bitmap位图,把缺失块所对应的位图设置为1 ;
步骤7、返回从元数据给元数据操作模块。
图8为本发明实施例分布式文件系统在系统恢复状态下数据恢复过程的处理流 程示意图,如图8所示,该流程包括
步骤1、后台数据恢复线程在元数据缓存中查找将要恢复的数据的元数据,如果 没有找到则跳到第6步;
步骤2、如果找到元数据缓存,后台数据恢复线程检查是否有数据在备用存储系 统上,如果没有数据在备用存储系统上,跳到第11步;
步骤3、如果有数据在备用存储系统上,后台数据恢复线程构造主用存储缺失块 恢复操作信息并发给主用存储系统;
步骤4、主用存储系统接收到缺失块恢复操作信息并执行,将备用存储系统数据 十到缺失块,返回缺失块恢复操作结果;
步骤5、后台数据恢复线程删掉重绑定过的元数据缓存并跳到第11步;
步骤6、如果在元数据缓存没有找到元数据,则后台数据恢复线程向主用存储系 统请求元数据;
步骤7、对返回的元数据进行缺失块检查,如果没有缺失块,跳到第11步;
步骤8、如果有缺失块,后台数据恢复线程请求向备用存储系统恢复数据;
步骤9、如果第8步备份成功,则跳到第11步;
步骤10、如果第8步备份失败,则后台数据恢复线程请求向外部存储系统恢复 数据;
步骤11、更新故障存储设备bitmap位图,则此数据恢复完成。
本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以 通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中, 该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括ROM、 RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制; 尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其 依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等 同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方 案的精神和范围。
权利要求
1.一种分布式文件系统,其特征在于,包括接入模块、与所述接入模块连接的元 数据管理单元,以及分别与所述元数据管理单元连接的主用存储系统和备用存储系统, 所述接入模块还分别与所述主用存储系统和所述备用存储系统连接;所述接入模块、所 述元数据管理单元、所述主用存储系统和所述备用存储系统之间通过系统总线连接;还 包括外部存储系统,所述外部存储系统通过网络与所述主用存储系统和所述备用存储系 统连接;其中所述接入模块,用于接收读/写数据请求,向所述元数据管理单元发送元数据请求 以获取所请求的数据对应的元数据,并应用所述元数据向所述主用存储系统或所述备用 存储系统读写数据;所述元数据管理单元,用于在所述接入模块请求所述元数据时,查找所请求的数据 在所述主用存储系统或所述备用存储系统上的位置,并构造所述元数据,返回给所述接 入模块;所述主用存储系统,用于在所述分布式文件系统处于正常状态时为所述接入模 块提供所请求的数据;所述备用存储系统,用于在所述分布式文件系统处于异常状态或 恢复状态时,为所述主用存储系统提供数据备份;所述外部存储系统,用于为所述主用 存储系统提供数据备份。
2.根据权利要求1所述的分布式文件系统,其特征在于,所述元数据管理单元包括 元数据操作模块、备份模块和异常恢复模块;其中所述元数据操作模块,分别与所述接入模块、所述主用存储系统连接,用于接收所 述元数据请求,向所述主用存储系统或所述异常恢复模块请求元数据并向所述接入模块 返回所述元数据;还用于根据接收的所述主用存储系统上报的设备状态事件,更新所述 系统状态;还用于记录所述读/写数据请求中的数据控制信息;所述备份模块,与所述元数据操作模块和所述备用存储系统连接,用于读取所述元 数据操作模块记录下来的所述数据控制信息,生成数据备份操作控制信息并发送给所述 备用存储系统,以将所述主用存储系统上的数据备份到所述备用存储系统中;所述异常恢复模块,分别与所述元数据操作模块、所述备份模块、所述主用存储系 统和所述备用存储系统连接,用于在所述异常状态和所述恢复状态下获取所述元数据并 返回给所述元数据操作模块。
3.根据权利要求2所述的分布式文件系统,其特征在于,所述元数据管理单元还包括数据控制信息记录模块,连接在所述元数据操作模块和所述备份模块之间,用于存 储所述数据控制信息。
4.根据权利要求2所述的分布式文件系统,其特征在于,所述异常恢复模块包括第一处理子模块,用于在所述异常状态下,对于读数据请求,对从缓存或从所述主用存储系统获得的元数据进行缺失块检测,若检测到所述元数据有缺失块,则向所述备 用存储系统发送请求信息包括缺失块信息和所述外部存储系统的地址;在所述备用存储 系统返回所述元数据后,进行块地址重绑定操作,重组可用的元数据并发送;第二处理子模块,用于在所述异常状态下,对于写数据请求,仅向所述备用存储系 统请求元数据并返回给所述元数据操作模块;还用于记录写数据操作,以在数据恢复过 程中根据记录的所述写数据操作将数据同步到所述主用存储系统中;第三处理子模块,用于在所述恢复状态下,对于读数据请求,对从缓存或从所述主 用存储系统获得的元数据进行缺失块检测,若检测到所述元数据有缺失块,则向所述备 用存储系统发送请求信息包括缺失块信息,在所述备用存储系统返回元数据后,构造缺 失块恢复操作信息,以供所述主存储系统进行数据恢复;并更新所述主存储系统的故障 存储设备位图,返回所述元数据;第四处理子模块,用于在所述恢复状态下,对于写数据请求,向所述主用存储系统 请求元数据,获得所述元数据后,若检测到所述元数据有缺失块,则更新所述主存储系 统的故障存储设备位图,返回所述元数据。
5.根据权利要求1或2或3或4所述的分布式文件系统,其特征在于,还包括 主用数据管理模块,连接在所述主用存储系统和所述元数据管理单元之间,用于管理所述主用存储系统所存储的数据,响应元数据请求和数据操作请求;以及备用数据管理模块,连接在所述备用存储系统和所述元数据管理单元之间,用于管 理所述备用存储系统所存储的数据,响应元数据请求和数据操作请求。
6.根据权利要求5所述的分布式文件系统,其特征在于,所述主用存储系统包括数 个高速存储设备,所述高速存储设备包括但不限于高数据传输率的SCSI硬盘、SATA硬 盘、SSD ;所述备用存储系统包括数个高速存储设备和/或低速存储设备,其中,所述高速存 储设备包括SCSI硬盘、SATA硬盘、SSD。
7.根据权利要求1所述的分布式文件系统,其特征在于, 所述正常状态指主用存储系统没有出现故障;所述异常状态指主用存储系统出现故障,主用存储系统和备用存储系统共同工作, 协调完成数据存储,保存协调结果,其中,所述协调结果用于数据恢复过程;所述恢复状态是指经过异常状态后,使用备用存储系统上的数据恢复主用存储系统 中的数据。
全文摘要
本发明实施例提供一种分布式文件系统。本包括分布式文件系统接入模块、元数据管理单元,主用存储系统、备用存储系统和外部存储系统;其中,所述接入模块、所述元数据管理单元、所述主用存储系统和所述备用存储系统之间通过系统总线连接;所述外部存储系统通过网络与所述主用存储系统和所述备用存储系统连接。本发明实施例提供的分布式文件系统中,通过将数据写入到主用存储系统中,采用异步备份机制备份到备用存储系统,不影响高速设备的读写性能;而且可以实现在线恢复数据,数据对外服务过程中自动实现数据恢复,加快恢复过程。
文档编号G06F17/30GK102024044SQ20101058723
公开日2011年4月20日 申请日期2010年12月8日 优先权日2010年12月8日
发明者吴波, 姜南, 张辉, 范家星 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1