一种分布式存储系统的数据存储方法及装置的制作方法

文档序号:7896128阅读:129来源:国知局
专利名称:一种分布式存储系统的数据存储方法及装置的制作方法
技术领域
本发明涉及数据存储领域,尤其涉及一种分布式存储系统的数据存储方法及装置。
背景技术
分布式存储系统广泛应用于交互式网络电视IPTV、视频监控、搜索等需要用到海量存储的领域。在分布式存储系统中,分布式文件系统将应用程序产生的用户数据通过计算机网络存储在外接的大容量的外接存储设备上,应用程序一般运行在刀片服务器上,各刀片服务器之间互相通信,以完成信令及媒体数据的交互,刀片服务器通过计算机网络外接大容量的外接存储设备。用户数据被切成若干固定大小的数据片,按照一定的副本策略分散存放在这些外接存储设备中。目前,在分布式存储系统的数据存储过程中,如果分布式文件系统发生外接存储设备的数据存储故障,如刀片服务器连接外接存储设备的外接端口发生故障等,会导致分布式文件系统无法实现数据存储,那么应用程序正在存入或将要存入该外接存储设备的数据将会全部丢失,在银行、运营商、监控系统等对数据的安全性要求极高的场合,这种重要数据的丢失往往给用户带来无法估量的损失。

发明内容
本发明提供一种分布式存储系统的数据存储方法及装置,解决了分布式文件系统因发生外接存储设备的数据存储故障而导致数据丢失的问题。为解决上述技术问题,本发明采用以下技术方案一种分布式存储系统的数据存储方法,所述分布式存储系统包括分布式文件系统、所述分布式文件系统本地的本地存储设备和所述分布式文件系统外接的外接存储设备,所述分布式存储系统的数据存储方法包括监测所述分布式文件系统是否发生外接存储设备的数据存储故障,以及监测所述故障是否恢复;如果发生所述故障,则将故障期间需要存储的数据存储到所述本地存储设备;如果所述故障已经恢复,则将故障期间存入所述本地存储设备的数据存储到所述外接存储设备。还包括判断故障期间需要存储的数据是否已经在分布式文件系统中创建了对应文件,如果是,则采用第一存入方式将故障期间需要存储的数据存储到所述本地存储设备, 如果否,则采用第二存入方式将故障期间需要存储的数据存储到所述本地存储设备,如果所述故障已经恢复,则按照故障期间存入本地存储设备的存入方式,将故障期间存入所述本地存储设备的数据存储到所述外接存储设备。所述第一存入方式为页存入方式,具体包括如果所述故障期间需要存储的数据在所述分布式文件系统中已经创建了对应文件,则将所述故障期间需要存储的数据以页为单位存入本地存储设备,待故障恢复后,在所述分布式文件系统中查找所述已存在的对应文件,将所述以页为单位存入本地存储设备的数据通过所述分布式文件系统中已存在的对应文件存储到外接存储设备中。以页为单位存入本地存储设备的数据的文件名格式为fileid_chimkidx_ pageidx,其中fileid表示该页数据在分布式文件系统中对应文件的描述符,chunkidx表示该页数据在分布式文件系统中对应文件的数据块,pageidx表示该页数据在分布式文件系统中对应文件的页数。所述第二存入方式为文件存入方式,具体包括如果所述故障期间需要存储的数据在所述分布式文件系统中未创建对应文件,则将所述故障期间需要存储的数据以文件为单位存入本地存储设备,待故障恢复后,在所述分布式文件系统中创建对应文件,将所述以文件为单位存入本地存储设备的数据通过所述分布式文件系统中的新创建的对应文件储存到外接存储设备中。所述对应文件包括文件描述符和文件名。还包括通过监测分布式文件系统所在刀片服务器连接外接存储设备的外接端口的状态来监测分布式文件系统是否发生外接存储设备的数据存储故障。一种分布式存储系统的数据存储装置,包括分布式文件系统,还包括故障监测模块、故障处理模块、所述分布式文件系统本地的本地存储设备和所述分布式文件系统外接的外接存储设备,其中所述故障监测模块用于监测所述分布式文件系统是否发生外接存储设备的数据存储故障,以及监测所述故障是否恢复;所述故障处理模块用于将所述故障期间需要存储的数据存储到所述本地存储设备,以及待故障恢复后,将故障期间存入所述本地存储设备的数据存储到所述外接存储设备。如果所述故障期间需要存储的数据在所述分布式文件系统中已经创建了对应文件,则所述故障处理模块用于将所述故障期间需要存储的数据以页为单位存入本地存储设备,待故障恢复后,在所述分布式文件系统中查找所述已存在的对应文件,将所述以页为单位存入本地存储设备的数据通过所述分布式文件系统中已存在的对应文件存储到外接存储设备中。如果所述故障期间需要存储的数据在所述分布式文件系统中未创建对应文件,则所述故障处理模块用于将所述故障期间需要存储的数据以文件为单位存入本地存储设备, 待故障恢复后,在所述分布式文件系统中创建对应文件,将所述以文件为单位存入本地存储设备的数据通过所述分布式文件系统中的新创建的对应文件储存到外接存储设备中。本发明提供一种分布式存储系统的数据存储方法及装置,该方法通过监测分布式文件系统是否发生外接存储设备的数据存储故障,将故障期间需要存储的数据存储到本地存储设备,等到故障恢复,将故障期间存入本地存储设备的数据存储到外接存储设备中,解决了现有技术中分布式文件系统因发生外接存储设备的数据存储故障而导致应用程序正在存入和将要存入该外接存储设备的数据丢失的问题,有效提高了分布式存储系统的容错性。


图1为本发明实施例数据存储的流程图;图2为本发明实施例分布式存储系统的数据存储装置的框架图;图3为本发明另一实施例数据存储的流程图。
具体实施例方式下面通过具体实施方式
结合附图对本发明作进一步详细说明。实施例一图1为本发明实施例数据存储的流程图,请参考图1 001、故障监测模块监测分布式文件系统是否发生外接存储设备的数据存储故障, 如果发生了该故障,则执行002,否则,执行005 ;002、故障处理模块将故障期间需要存储的数据存入分布式文件系统本地的本地存储设备;003、故障监测模块监测故障是否恢复,如果故障恢复了,则执行004,否则,执行 006 ;004、故障处理模块将故障期间存入本地存储设备的数据存入分布式文件系统外接的外接存储设备。005、将数据存入分布式文件系统外接的外接存储设备。006、等待故障恢复。在实际应用过程中,外接存储设备通常包括分布式文件系统通过网络建立通讯的外接的存储设备,本地存储设备通常包括分布式文件系统不需要通过网络可建立通讯的本地的存储设备,包括各式存储器、硬盘、软盘、各种通过即插式连接的存储设备;监测分布式文件系统是否发生外接存储设备的数据存储故障和监测故障是否恢复可以同时进行,不局限于本实施例的监测次序。图2为本发明实施例分布式存储系统的数据存储装置的框架图,如图2所示分布式存储系统的数据存储装置包括分布式文件系统1、分布式文件系统1本地的本地存储设备2和分布式文件系统1外接的外接存储设备3,分布式文件系统1中还设有故障监测模块11和故障处理模块12 ;其中故障监测模块11用于监测分布式文件系统1是否发生外接存储设备3的数据存储故障,以及监测故障是否恢复;故障处理模块12用于将故障期间需要存储的数据存储到本地存储设备2,以及待故障恢复后,将故障期间存入本地存储设备2的数据存储到外接存储设备3。通常分布式文件系统设置在刀片服务器上,这时的本地存储设备指的是刀片服务器本地的本地存储设备,刀片服务器还通过外接端口连接外接存储设备,故障监测模块和故障处理模块不局限于本实施例设置在分布式文件系统中,可以设置在其他地方,比如分布式文件系统所在刀片服务器的其他地方等。实施例二 该实施例的应用场景为一交易系统利用分布式存储系统存储用户操作日志,请参考图3,图3为本发明另一实施例数据存储的流程图,如图3所示201、交易系统正在给用户提供服务,过程中产生的操作日志信息通过刀片服务器上的日志记录程序和分布式文件系统实时存入刀片服务器外接的外接存储设备;202、故障监测模块通过监测分布式文件系统所在刀片服务器的对外连接端口的状态,监测到该分布式文件系统发生了外接存储设备的数据存储故障;203、故障监测模块向故障处理模块发送故障通知,并以告警的方式通知维护人员;204、故障处理模块收到故障通知后,将日志记录程序正在写入的日志以页page 为单位写入到该刀片服务器的本地存储设备上,存入本地存储设备的文件名的格式为 fileid_ChunkidX_pageidX,其中fileid表示该页日志在分布式文件系统中对应文件的描述符,chimkidx表示该页日志在分布式文件系统中对应文件的数据块,即表示该页日志位于分布式文件系统中对应文件的哪个数据块中,pageidx表示该页数据在分布式文件系统中对应文件的页数,即该页日志是数据块中的第几个页;对于还未开始写入的日志,故障处理模块以文件为单位将其写入刀片服务器的本地存储设备上。205、维护人员收到该故障告警后,立即进行处理;206、维护人员处理完该故障后,故障恢复;207、故障检测模块检测到故障恢复后,向故障处理模块发送故障恢复通知,并恢复步骤203中发出的告警;208、故障处理模块收到恢复通知后,将故障期间记录在本地存储设备上的日志重新存入到刀片服务器的外接存储设备中对于以页page为单位写入到本地存储设备上的日志,故障处理模块利用该日志的文件描述符fileid在分布式文件系统中查找该日志已经存在的对应文件,将该日志从本地存储设备读出,并通过分布式文件系统中上述存在的对应文件转存到外接存储设备中;对于以文件为单位写入本地存储设备的日志,故障处理模块在分布式文件系统中新建该日志的对应文件,将该日志从本地存储设备读出,并通过分布式文件系统中上述新建的对应文件转存到外接存储设备中。209、将本地存储设备上的数据清除。本发明通过判断故障期间需要存储的数据是否已经在分布式文件系统中创建了对应文件,采取不同的存入方式将故障期间需要存储的数据存储到本地存储设备,如果故障期间需要存储的数据已经在分布式文件系统中创建了对应文件,则采用第一存入方式, 即页存入方式,将故障期间需要存储的数据以页为单位存入本地存储设备,待故障恢复后, 在分布式文件系统中查找该页数据已存在的对应文件,将该页数据从本地存储设备读出, 并通过分布式文件系统中上述存在的对应文件转存到外接存储设备中;如果故障期间需要存储的数据未在分布式文件系统中创建对应文件,则采用第二存入方式,即文件存入方式, 将故障期间需要存储的数据以文件为单位存入本地存储设备,待故障恢复后,在分布式文件系统中新建对应文件,将以文件为单位存入本地存储设备的数据从本地存储设备读出, 并通过分布式文件系统中新建的对应文件转存到外接存储设备中。本实施例中,将故障期间需要存储的数据分成两种,一种是日志记录程序正在写入的日志,另一种是日志记录程序还未开始写入的日志,在分布式存储系统中,数据通常以页为单位进行存储,因此,本实施例可将日志记录程序正在写入的日志默认为已经在分布式文件系统中创建了对应文件,将日志记录程序还未开始写入的日志默认为未在分布式文件系统中创建对应文件,已经在分布式文件系统中创建了对应文件通常包括其文件描述符和文件名已存在,因此只需要将日志以页为单位写入本地存储设备,写入本地存储设备的文件名格式可以参考但不局限于本实施公开的形式fileid_ChunkidX_pageidX,在故障恢复时,以文件描述符fileid为标识在分布式文件系统中找到该页日志的对应文件,将该页日志从本地存储设备上读出,调用分布式文件系统的接口,通过分布式文件系统中存在的对应文件转存到外接存储设备中;对于分布式文件系统还未开始存储的数据,由于是应用程序新写入的文件中的数据,即在分布式文件系统中还没有创建对应文件,故障处理模块调用本地文件系统的接口, 以文件为单位将其存入本地存储设备。在故障恢复时,在分布式文件系统中创建一个新的对应文件,将本地存储设备上存入的数据读出,调用分布式文件系统的接口,通过分布式文件系统中新建的对应文件转存到外接存储设备中。本实施例的步骤209为可选操作,成功将故障期间存入本地存储设备的数据存入分布式文件系统中之后,可以根据实施需要,将本地存储设备上的数据清除或保留。本实施例中,后续用户访问这些操作日志记录时均可从分布式文件系统中获取信息,用户的操作信息并没有因为故障而受到任何影响。以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
8
权利要求
1.一种分布式存储系统的数据存储方法,其特征在于,所述分布式存储系统包括分布式文件系统、所述分布式文件系统本地的本地存储设备和所述分布式文件系统外接的外接存储设备,所述分布式存储系统的数据存储方法包括监测所述分布式文件系统是否发生外接存储设备的数据存储故障,以及监测所述故障是否恢复;如果发生所述故障,则将故障期间需要存储的数据存储到所述本地存储设备;如果所述故障已经恢复,则将故障期间存入所述本地存储设备的数据存储到所述外接存储设备。
2.如权利要求1所述的方法,其特征在于,还包括判断故障期间需要存储的数据是否已经在分布式文件系统中创建了对应文件,如果是,则采用第一存入方式将故障期间需要存储的数据存储到所述本地存储设备,如果否,则采用第二存入方式将故障期间需要存储的数据存储到所述本地存储设备,如果所述故障已经恢复,则按照故障期间存入本地存储设备的存入方式,将故障期间存入所述本地存储设备的数据存储到所述外接存储设备。
3.如权利要求2所述的方法,其特征在于,所述第一存入方式为页存入方式,具体包括如果所述故障期间需要存储的数据在所述分布式文件系统中已经创建了对应文件,则将所述故障期间需要存储的数据以页为单位存入本地存储设备,待故障恢复后,在所述分布式文件系统中查找所述已存在的对应文件,将所述以页为单位存入本地存储设备的数据通过所述分布式文件系统中已存在的对应文件存储到外接存储设备中。
4.如权利要求3所述的方法,其特征在于,以页为单位存入本地存储设备的数据的文件名格式为fileid_ChunkidX_pageidX,其中fileid表示该页数据在分布式文件系统中对应文件的描述符,chimkidx表示该页数据在分布式文件系统中对应文件的数据块,pageidx 表示该页数据在分布式文件系统中对应文件的页数。
5.如权利要求2所述的方法,其特征在于,所述第二存入方式为文件存入方式,具体包括如果所述故障期间需要存储的数据在所述分布式文件系统中未创建对应文件,则将所述故障期间需要存储的数据以文件为单位存入本地存储设备,待故障恢复后,在所述分布式文件系统中创建对应文件,将所述以文件为单位存入本地存储设备的数据通过所述分布式文件系统中的新创建的对应文件储存到外接存储设备中。
6.如权利要求2所述的方法,其特征在于,所述对应文件包括文件描述符和文件名。
7.如权利要求1所述的方法,其特征在于,还包括通过监测分布式文件系统所在刀片服务器连接外接存储设备的外接端口的状态来监测分布式文件系统是否发生外接存储设备的数据存储故障。
8.一种分布式存储系统的数据存储装置,包括分布式文件系统,其特征在于,还包括故障监测模块、故障处理模块、所述分布式文件系统本地的本地存储设备和所述分布式文件系统外接的外接存储设备,其中所述故障监测模块用于监测所述分布式文件系统是否发生外接存储设备的数据存储故障,以及监测所述故障是否恢复;所述故障处理模块用于将所述故障期间需要存储的数据存储到所述本地存储设备,以及待故障恢复后,将故障期间存入所述本地存储设备的数据存储到所述外接存储设备。
9.如权利要求8所述的装置,其特征在于,如果所述故障期间需要存储的数据在所述分布式文件系统中已经创建了对应文件,则所述故障处理模块用于将所述故障期间需要存储的数据以页为单位存入本地存储设备,待故障恢复后,在所述分布式文件系统中查找所述已存在的对应文件,将所述以页为单位存入本地存储设备的数据通过所述分布式文件系统中已存在的对应文件存储到外接存储设备中。
10.如权利要求8所述的装置,其特征在于,如果所述故障期间需要存储的数据在所述分布式文件系统中未创建对应文件,则所述故障处理模块用于将所述故障期间需要存储的数据以文件为单位存入本地存储设备,待故障恢复后,在所述分布式文件系统中创建对应文件,将所述以文件为单位存入本地存储设备的数据通过所述分布式文件系统中的新创建的对应文件储存到外接存储设备中。
全文摘要
本发明公开一种分布式存储系统的数据存储方法及装置,分布式存储系统包括分布式文件系统、分布式文件系统本地的本地存储设备和分布式文件系统外接的外接存储设备,该分布式存储系统的数据存储方法包括监测分布式文件系统是否发生外接存储设备的数据存储故障以及监测故障是否恢复;如果发生所述故障,则将故障期间需要存储的数据存储到本地存储设备;如果所述故障已经恢复,则将故障期间存入本地存储设备的数据存储到外接存储设备,本发明通过以上技术方案,解决了分布式文件系统因发生外接存储设备的数据存储故障而导致数据丢失的问题。
文档编号H04L29/08GK102571845SQ20101059668
公开日2012年7月11日 申请日期2010年12月20日 优先权日2010年12月20日
发明者彭杰, 李丹, 陈辉 申请人:南京中兴新软件有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1