CN102024016B - 一种分布式文件***快速数据恢复的方法 - Google Patents
一种分布式文件***快速数据恢复的方法 Download PDFInfo
- Publication number
- CN102024016B CN102024016B CN 201010536451 CN201010536451A CN102024016B CN 102024016 B CN102024016 B CN 102024016B CN 201010536451 CN201010536451 CN 201010536451 CN 201010536451 A CN201010536451 A CN 201010536451A CN 102024016 B CN102024016 B CN 102024016B
- Authority
- CN
- China
- Prior art keywords
- file
- obj2disk
- disk
- inode
- data server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种并行文件***快速数据恢复的方法,包括:引入磁盘对象文件的概念,用来在***正常运行过程中记录数据服务器每个磁盘存放了哪些对象,对于多元数据服务器,磁盘对象文件分布存储,以减少通讯,提高数据恢复时的并发性;磁盘对象文件异步写入,使得对并行文件***关键路径的影响微乎其微;磁盘对象文件刷回放在索引节点(inode)被刷回的时机,这样可以充分利用元数据本身的可靠性机制。
Description
技术领域
本发明涉及分布式并行文件***数据恢复,具体涉及一种分布式文件***快速数据恢复的方法。
背景技术
随着存储***体系结构的发展,目前主要有以下几种磁盘存储***:直连***;存储区域网络(SAN);网络附加存储(NAS)以及分布式集群存储***。
直连***作为最传统的存储方式,虽然具有低延迟、独享、完全的控制权等优点,但是它有以下缺点:1)可扩展性有限,很难做到在线扩展;2)占用主机CPU、内存等***资源开销;3)可用性、可靠性有限。随着需要存储的数据量的飞速增长,其缺点已经越来越突出,很难满足大规模存储需求。
存储区域网络(SAN)是最昂贵的存储***,自身的可扩展性很好,容易做到在线扩展,但由于其对外提供块设备接口,而只有少数的高端数据库直接使用块设备,通常需要安装文件***来管理,所以用户得到的可扩展性以及其它性能,最终由文件***决定,而不是SAN自身。
网络附加存储(NAS)对外提供文件***接口,服务器性能即是用户所见性能,它通常提供NFS和CIFS接口,但是其可扩展性有限,难以做到在线扩展。
分布式集群存储***继承了计算集群***的可扩展性,随着磁盘容量、价格比大幅的提升,竞争力越来越明显,以当前的技术水平,它是部署大容量、高性价比存储***的唯一结构。已经成为大规模存储的主流发展趋势。
分布式并行文件***一般分为元数据服务器,数据服务器以及客户端几个模块,其中元数据根据集中存放还是分布式存放,又可以分为单元数据服务器及多元数据服务器。前者优点是容易控制,但是单元数据服务器很容易成为***瓶颈;后者正好相反。
元数据与数据服务器分离是当前的主流架构(图1为并行文件***的一个典型***结构),为了提高文件访问的并发度及速度,充分发挥所有数据服务器的读写能力,文件一般会被分割成不同对象存放到不同数据服务器及磁盘。同时,为了消除单点故障,多副本技术是分布式文件***提高可靠性的一个主要方式。
随着存储规模的增大以及单个磁盘容量的增加,当发生磁盘故障时如何进行快速数据恢复已经成为一个重要问题。针对数据副本以对象为单位的存储方式,无论哪种数据恢复策略,都需要首先找到故障磁盘上存放了哪些数据,这样才能根据对应副本进行修复。如果***正常运行过程中,不对该信息进行记录,则故障发生时,需要扫描***内所有索引节点(inode),在分布式文件***中,这是令人难以容忍的;而如果在文件创建的关键路径上记录这些信息,为了防止断电丢失某些对象需要进行同步记录,当某个文件涉及多个磁盘时,这也是令人难以容忍的,即使首先将文件涉及的所有磁盘一次记录入临时文件,随后异步处理临时文件,这一同步操作与关键路径上其他内存操作相比,仍然是开销很大。本发明主要提出了一种高效、安全的解决这一问题的方法。
为实施本发明,给出如下定义:
对象:一个文件存储于单个磁盘上的全部数据的集合,称为一个对象,通常对应OSD(对象存储设备)中本地物理文件***中的一个文件。当利用分片模式进行存储时,一个文件可以包含多个对象,如图2所示,每一列代表一个磁盘,椭圆区域各代表一个对象。
磁盘对象文件:记录每个磁盘存放了哪些对象的文件,数据服务器(ds)的每个磁盘在每个元数据服务器(mds)上都对应一个文件。在下面的介绍中简称obj2disk。
本发明引入obj2disk的概念,在并行文件***运行过程中在元数据服务器上记录obj2disk,以便发生磁盘故障时进行快速恢复。
对于多元数据服务器,为了减少存储***内部通讯,同时也为了故障发生时能并发获取磁盘所存储的对象,各个元数据服务器只记录在其上创建的对象,所有元数据服务器的合集即为完整的obj2disk,即磁盘对象文件也采用分布式存储。
发明内容
本发明的主要内容是提出了一种高效、准确记录哪个磁盘上存放哪些对象的方法,当分布式并行文件***数据服务器发生磁盘故障时,为快速修复提供一个前提和保证。
一种分布式文件***快速数据恢复的方法,包括以下步骤:
A、***正常运行过程中,客户端向元数据服务器发送创建或删除文件请求;
B、对于创建请求,元数据服务器分配资源并进行初始化后,置flag标志,表明尚未记录入obj2disk,然后对客户端进行应答;对于删除请求,置索引节点inode无效后对客户端进行应答;
C、脏队列回刷线程对inode回刷时,如果发现obj2disk标志被置位,则将对象通过扩展hash记录入本inode涉及到的所有obj2disk文件,清除标志位后刷回;垃圾回收线程负责从obj2disk文件清除已被删除的对象记录;
D、当数据服务器发生磁盘故障时,所有元数据服务器上与故障盘对应的obj2disk文件的合集即为该盘的所有对象集合,可以以此为基础根据副本进行快速数据恢复。
本发明一种优选技术方案在于:所述obj2disk采用了本地双写,可以通过本地副本进行拷贝。
本发明另一优选技术方案在于:当两个副本盘同时故障导致obj2disk文件被毁,可以通过扫描inode进行恢复。
本发明再一优选技术方案在于:若***断电导致部分内存数据丢失,可以根据日志恢复元数据的同时记录obj2disk文件。
本发明带来的有益效果如下:
1)引入obj2disk文件,在***正常运行过程中动态记录、维护每个ds磁盘所包含的对象,可以在发生磁盘故障时快速确定故障盘所存放的所有对象;
2)磁盘对象文件分布式存储,这不仅减少了记录过程中的通讯,更为数据恢复的并发进行提供了基础。
3)磁盘对象文件记录异步添加、清除,这样对文件创建及删除的关键路径的影响微乎其微。
4)磁盘文件刷回放在inode被刷回的时机,由于元数据是所有文件***的核心所在,所以文件***尤其是并行文件***肯定会在元数据上下很大功夫来提高其可靠性。这样,磁盘对象文件就能受益于部分可靠机制,如日志机制。
附图说明
图1为并行存储***的***结构示意图
图2为文件如何被分片放到磁盘上的示意图
图3为***运行及利用obj2disk文件进行数据恢复的示意图
具体实施方式
下面结合说明图举例对本发明的具体实施方式进行说明。
图1为并行存储***的***结构示意图,主要包含元数据、数据、客户端等模块。其中元数据服务器(mds)采用多元数据服务器架构,mds服务器成组使用,同一组内服务器互为副本,同时,为了进一步保证元数据的可靠性,单个服务器内部采用双写策略,并引入了日志模块。实施***包含多个数据服务器(ds),文件数据存放提供分片方式,为提高数据可靠性,引入副本机制,文件对象的不同副本放在不同的磁盘上。
obj2disk存放在mds服务器,采用本地双写,为了实现简单,避免通讯开销以及副本间同步,mds服务器上obj2disk只保存本mds创建的文件,同时不在组内广播。这是因为磁盘对象文件的重要性低于元数据,而且并非不可恢复,最坏情况下本地两个副本都坏了,还能通过扫描所有元数据进行恢复。
为了减少冗余信息,文件删除时,其记录要从所有相关obj2disk中删除,这就需要能够快速定位记录位置。为了能在文件删除时快速定位删除对象在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刷回。
如果客户端要删除某个文件,则元数据服务器接到文件删除请求后,置对应inode无效,删除其dentry项后向客户端应答,垃圾回收线程会将对象从obj2disk文件删除,并删除文件数据。
如果***运行过程中发生了磁盘故障,则所有mds并发从本mds上读取由其创建的存放到故障盘上的对象,找到该对象的所有副本,并分配一个新的磁盘替代故障盘,由某个副本(ds)负责将该副本拷贝到新的磁盘。这样就能获取很高的故障恢复速率。
同时,obj2disk本身具有很好的可靠性:如果元数据服务器某个磁盘故障,因为obj2disk采用了本地双写,可以通过本地副本进行拷贝;如果不幸两个副本盘都同时故障,obj2disk文件被毁(这种概率相对非常小),也不是致命问题,可以通过扫描inode进行恢复,这个会比较耗时;如果***断电导致部分内存数据丢失,因为元数据具有日志机制,可以在根据日志恢复元数据的同时记录obj2disk文件。
Claims (3)
1.一种分布式文件***快速数据恢复的方法,其特征在于:
磁盘对象文件:记录每个磁盘存放了哪些对象的文件,数据服务器的每个磁盘在每个元数据服务器上都对应一个文件,在下面的介绍中简称obj2disk;
所述分布式文件***快速数据恢复的方法包括以下步骤:
A、***正常运行过程中,客户端向元数据服务器发送创建或删除文件请求;
B、对于创建请求,元数据服务器分配inode并进行初始化后,置flag标志,表明尚未记录入obj2disk,然后为该文件分配磁盘并将inode加入相关队列,同时创建dentry项,当然,在这一过程中需要记录日志,然后对客户端进行应答;对于删除请求,置索引节点inode无效,删除其dentry项后对客户端进行应答,垃圾回收线程会将对象从obj2disk文件删除,并删除文件数据;
C、脏队列回刷线程对inode回刷时,如果发现obj2disk标志被置位,则将对象通过扩展hash记录入本inode涉及到的所有obj2disk文件,清除标志位后将该inode刷回;垃圾回收线程负责从obj2disk文件清除已被删除的对象记录;
D、当数据服务器发生磁盘故障时,所有元数据服务器上与故障盘对应的obj2djsk文件的合集即为该盘的所有对象集合,以此为基础根据副本进行快速数据恢复。
2.如权利要求1所述一种分布式文件***快速数据恢复的方法,其特征在于:所述obj2disk采用了本地双写,通过本地副本进行拷贝。
3.如权利要求1所述一种分布式文件***快速数据恢复的方法,其特征在于:当两个副本盘同时故障导致obj2disk文件被毁,通过扫描inode进行恢复。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010536451 CN102024016B (zh) | 2010-11-04 | 2010-11-04 | 一种分布式文件***快速数据恢复的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010536451 CN102024016B (zh) | 2010-11-04 | 2010-11-04 | 一种分布式文件***快速数据恢复的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102024016A CN102024016A (zh) | 2011-04-20 |
CN102024016B true CN102024016B (zh) | 2013-03-13 |
Family
ID=43865314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010536451 Active CN102024016B (zh) | 2010-11-04 | 2010-11-04 | 一种分布式文件***快速数据恢复的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102024016B (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833273B (zh) * | 2011-06-13 | 2017-11-03 | 中兴通讯股份有限公司 | 临时故障时的数据修复方法及分布式缓存*** |
CN102541985A (zh) * | 2011-10-25 | 2012-07-04 | 曙光信息产业(北京)有限公司 | 一种分布式文件***中客户端目录缓存的组织方法 |
WO2013131253A1 (zh) * | 2012-03-06 | 2013-09-12 | 北京大学深圳研究生院 | 分布式存储数据的污染恢复方法及装置 |
CN102662795A (zh) * | 2012-03-20 | 2012-09-12 | 浪潮电子信息产业股份有限公司 | 一种分布式存储***中元数据容错恢复方法 |
CN103051681B (zh) * | 2012-12-06 | 2015-06-17 | 华中科技大学 | 一种面向分布式文件***的协作式日志*** |
CN103064765B (zh) * | 2012-12-28 | 2015-12-02 | 华为技术有限公司 | 数据恢复方法、装置及集群存储*** |
CN104113439A (zh) * | 2014-08-02 | 2014-10-22 | 成都致云科技有限公司 | 云存储***的自动数据修复方法 |
CN104239182B (zh) * | 2014-09-03 | 2017-05-03 | 北京鲸鲨软件科技有限公司 | 一种集群文件***脑裂处理方法和装置 |
CN105589887B (zh) * | 2014-10-24 | 2020-04-03 | 中兴通讯股份有限公司 | 分布式文件***的数据处理方法及分布式文件*** |
CN104598168B (zh) * | 2015-01-23 | 2017-09-29 | 华为技术有限公司 | 一种数据恢复方法及对象存储设备 |
CN105094711B (zh) * | 2015-09-22 | 2018-05-18 | 浪潮(北京)电子信息产业有限公司 | 一种实现写时复制文件***的方法及装置 |
CN105159790B (zh) * | 2015-09-30 | 2018-03-16 | 成都华为技术有限公司 | 一种数据抢救方法及文件服务器 |
CN105740334A (zh) * | 2016-01-22 | 2016-07-06 | 中国科学院计算技术研究所 | 一种文件***中异步批量创建文件的***及方法 |
CN106484566B (zh) * | 2016-09-28 | 2020-06-26 | 上海爱数信息技术股份有限公司 | 基于ndmp协议的nas数据备份和文件细粒度浏览恢复方法 |
CN109426587B (zh) * | 2017-08-25 | 2020-08-28 | 杭州海康威视数字技术股份有限公司 | 一种数据恢复方法及装置 |
CN108108422A (zh) * | 2017-12-15 | 2018-06-01 | 郑州云海信息技术有限公司 | 一种Ceph文件***的元数据获取方法、装置及介质 |
CN108647118B (zh) * | 2018-05-15 | 2021-05-07 | 新华三技术有限公司成都分公司 | 基于存储集群的副本异常恢复方法、装置及计算机设备 |
CN111381769B (zh) * | 2018-12-29 | 2023-11-14 | 深圳市茁壮网络股份有限公司 | 一种分布式数据存储方法及*** |
CN109857592B (zh) * | 2019-01-04 | 2023-09-15 | 平安科技(深圳)有限公司 | 数据恢复控制方法、服务器及存储介质 |
CN110618976B (zh) * | 2019-09-09 | 2022-06-03 | 北京达佳互联信息技术有限公司 | 访问文件的方法、装置、电子设备及存储介质 |
CN110704241B (zh) * | 2019-09-12 | 2022-10-28 | 浪潮电子信息产业股份有限公司 | 一种文件元数据的恢复方法、装置、设备及介质 |
CN111046001B (zh) * | 2019-12-28 | 2023-03-14 | 浪潮电子信息产业股份有限公司 | 一种批量创建文件的方法、装置、设备及存储介质 |
CN111176901B (zh) * | 2019-12-31 | 2022-10-11 | 厦门市美亚柏科信息股份有限公司 | 一种hdfs删除文件恢复方法、终端设备及存储介质 |
CN111245933A (zh) * | 2020-01-10 | 2020-06-05 | 上海德拓信息技术股份有限公司 | 一种基于日志的对象存储追加写实现方法 |
CN112015349B (zh) * | 2020-08-28 | 2022-07-05 | 北京浪潮数据技术有限公司 | 一种全闪***卷删除方法、装置及电子设备和存储介质 |
CN112162883A (zh) * | 2020-09-27 | 2021-01-01 | 北京浪潮数据技术有限公司 | 一种副本数据恢复方法、***、电子设备及存储介质 |
CN114063935B (zh) * | 2022-01-17 | 2022-06-14 | 阿里云计算有限公司 | 处理数据的方法以及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5828876A (en) * | 1996-07-31 | 1998-10-27 | Ncr Corporation | File system for a clustered processing system |
CN1545047A (zh) * | 2003-11-24 | 2004-11-10 | 华中科技大学 | 一种存储虚拟化***的元数据层次管理方法及其*** |
CN101162469A (zh) * | 2007-11-09 | 2008-04-16 | 清华大学 | 基于快照的细粒度文件与目录版本管理方法 |
US7406484B1 (en) * | 2000-09-12 | 2008-07-29 | Tbrix, Inc. | Storage allocation in a distributed segmented file system |
-
2010
- 2010-11-04 CN CN 201010536451 patent/CN102024016B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5828876A (en) * | 1996-07-31 | 1998-10-27 | Ncr Corporation | File system for a clustered processing system |
US7406484B1 (en) * | 2000-09-12 | 2008-07-29 | Tbrix, Inc. | Storage allocation in a distributed segmented file system |
CN1545047A (zh) * | 2003-11-24 | 2004-11-10 | 华中科技大学 | 一种存储虚拟化***的元数据层次管理方法及其*** |
CN101162469A (zh) * | 2007-11-09 | 2008-04-16 | 清华大学 | 基于快照的细粒度文件与目录版本管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102024016A (zh) | 2011-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102024016B (zh) | 一种分布式文件***快速数据恢复的方法 | |
CN103098015B (zh) | 存储*** | |
US7992037B2 (en) | Scalable secondary storage systems and methods | |
CN106547859B (zh) | 一种多租户数据存储***下的数据文件的存储方法及装置 | |
CN101577735B (zh) | 一种接管故障元数据服务器的方法、装置及*** | |
CN101582920B (zh) | 一种分布式文件***中校验和同步数据块的方法及装置 | |
CN103116661B (zh) | 一种数据库的数据处理方法 | |
JP2019036353A (ja) | 索引更新パイプライン | |
WO2012126232A1 (zh) | 一种数据备份恢复的方法、***和服务节点 | |
CN102622185B (zh) | 在多个存储单元中存储文件的方法以及存储分配方法 | |
CN102955720A (zh) | 一种提高ext文件***稳定性的方法 | |
CN104184812B (zh) | 一种基于私有云的多点数据传输方法 | |
CN105426427A (zh) | 基于raid 0 存储的mpp 数据库集群副本实现方法 | |
CN103929609B (zh) | 一种录像回放方法和装置 | |
CN102339321A (zh) | 具有版本控制的网络文件***及方法 | |
CN108123976A (zh) | 集群间的数据备份方法、装置及*** | |
CN113626431A (zh) | 一种基于lsm树的延迟垃圾回收的键值分离存储方法及*** | |
CN113377292B (zh) | 一种单机存储引擎 | |
CN113885809B (zh) | 数据管理***及方法 | |
CN104636218B (zh) | 数据恢复方法及装置 | |
CN103365740A (zh) | 一种数据冷备方法及装置 | |
US7668846B1 (en) | Data reconstruction from shared update log | |
CN104991739A (zh) | 元数据服务器失效接替中精确一次执行语义的方法及*** | |
KR101035857B1 (ko) | 데이터 관리 방법 및 그 시스템 | |
CN114860850A (zh) | 一种分布式关系型大数据存储平台技术的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230918 Address after: 300451 floor 3, No. 15, Haitai Huake street, Huayuan Industrial Zone (outside the ring), Binhai New Area, Tianjin Patentee after: Tianjin Zhongke Shuguang Storage Technology Co.,Ltd. Address before: 300384 Xiqing District, Tianjin Huayuan Industrial Zone (outside the ring) 15 1-3, hahihuayu street. Patentee before: DAWNING INFORMATION INDUSTRY Co.,Ltd. |
|
TR01 | Transfer of patent right |