分布式文件系统的修复方法及系统和服务器与流程

文档序号:14609263发布日期:2018-06-05 20:28阅读:155来源:国知局
分布式文件系统的修复方法及系统和服务器与流程

本公开涉及一种分布式文件系统的修复方法及系统和服务器。



背景技术:

目前以Hadoop分布式文件系统(Hadoop Distributed File System,简称为HDFS)作为存储媒介的平台,长时间进行读写操作后,经常会出现硬盘坏掉的情况。当某块硬盘坏掉之后,整个HDFS就会处于异常状态。针对HDFS异常,现有的解决方案是发现硬盘坏掉后,手动修改HDFS的配置文件,以屏蔽对该硬盘的读写操作。

然而,在实现本公开构思的过程中,发明人发现现有技术至少存在以下缺陷:HDFS修复需要人工参与,容易出错。

针对上述问题,目前相关技术中尚未给出有效的解决方案。



技术实现要素:

本公开的一个方面提供了一种分布式文件系统的修复方法,包括:在硬盘出现异常的情况下,获取上述分布式文件系统的配置文件;在上述配置文件中删除上述硬盘与挂载有上述硬盘的目录的映射关系;以及在上述配置文件中添加上述硬盘的备用硬盘与上述目录的映射关系。

可选地,上述方法还包括在上述硬盘出现异常的情况下,控制服务器上的数据节点停止运行,其中,上述服务器使用上述硬盘作为上述数据节点的物理存储器,上述数据节点用于作为上述分布式文件系统的一个存储块。

可选地,上述方法还包括:获取上述数据节点的任意一个副本;以及将上述副本中的存储内容复制到上述备用硬盘中。

可选地,上述方法还包括:检测上述硬盘是否出现异常;以及在检测到上述硬盘出现异常的情况下,获取上述分布式文件系统的配置文件并修改上述配置文件中的相关配置。

可选地,上述方法还包括:在检测到上述硬盘出现异常的情况下,生成对应的告警信息和/或提醒信息;以及将上述告警信息和/或上述提醒信息上传给管理服务器,以触发上述管理服务器获取上述分布式文件系统的配置文件并修改上述配置文件中的相关配置。

本公开的另一个方面提供了一种分布式文件系统的修复系统,包括:第一获取模块,用于在硬盘出现异常的情况下,获取上述分布式文件系统的配置文件;删除模块,用于在上述配置文件中删除上述硬盘与挂载有上述硬盘的目录的映射关系;以及添加模块,用于在上述配置文件中添加上述硬盘的备用硬盘与上述目录的映射关系。

可选地,上述系统还包括:控制模块,用于在上述硬盘出现异常的情况下,控制服务器上的数据节点停止运行,其中,上述服务器使用上述硬盘作为上述数据节点的物理存储器,上述数据节点用于作为上述分布式文件系统的一个存储块。

可选地,上述系统还包括:第二获取模块,用于获取上述数据节点的任意一个副本;以及复制模块,用于将上述副本中的存储内容复制到上述备用硬盘中。

可选地,上述系统还包括:检测模块,用于检测上述硬盘是否出现异常;以及第三获取模块,用于在检测到上述硬盘出现异常的情况下,获取上述分布式文件系统的配置文件并修改上述配置文件中的相关配置;和/或上述系统还包括:生成模块,用于在检测到上述硬盘出现异常的情况下,生成对应的告警信息和/或提醒信息;以及上传模块,用于将上述告警信息和/或上述提醒信息上传给管理服务器,以触发上述管理服务器获取上述分布式文件系统的配置文件并修改上述配置文件中的相关配置。

本公开的另一方面提供了一种服务器,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上任一项所述的分布式文件系统的修复方法。

本公开的另一方面提供了一种非易失性存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现如上所述的方法。

本公开的另一方面提供了一种计算机程序,上述计算机程序包括计算机可执行指令,上述指令在被执行时用于实现如上所述的方法。

附图说明

为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:

图1示意性示出了根据本公开实施例的分布式文件系统的修复方法及系统的应用场景;

图2示意性示出了根据本公开实施例的分布式文件系统的修复方法的流程图;

图3A示意性示出了根据本公开另一实施例的分布式文件系统的修复方法的流程图;

图3B示意性示出了根据本公开另一实施例的分布式文件系统的修复方法的流程图;

图3C示意性示出了根据本公开另一实施例的分布式文件系统的修复方法的流程图;

图3D示意性示出了根据本公开实施例的获取分布式文件系统的配置文件并修改配置文件中的相关配置的流程图;

图4示意性示出了根据本公开实施例的分布式文件系统的修复系统的框图;

图5A示意性示出了根据本公开另一实施例的分布式文件系统的修复系统的框图;

图5B示意性示出了根据本公开另一实施例的分布式文件系统的修复系统的框图;以及

图6示意性示出了根据本公开实施例的服务器的框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。

附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。

因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。

本公开的实施例提供了一种分布式文件系统的修复方法以及能够应用该方法的分布式文件系统的修复系统。该方法包括在硬盘出现异常的情况下,获取分布式文件系统的配置文件;在配置文件中删除硬盘与挂载有硬盘的目录的映射关系;以及在配置文件中添加硬盘的备用硬盘与目录的映射关系。

图1示意性示出了根据本公开实施例的分布式文件系统的修复方法及系统的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

目前以HDFS作为存储媒介的平台,长时间进行读写操作后,经常会出现硬盘坏掉的情况。当某块硬盘坏掉之后,整个HDFS就会处于异常状态。如图1所示,整个HDFS系统将由数百或数千个存储着文件数据片断的服务器组成,每个服务器作为一个存储块,充当数据节点(DataNode)。实际上它里面有非常巨大的组成部分,每一个组成部分都很可能出现故障,这就意味着HDFS里的总是有一些部件是失效的。

针对HDFS异常,现有的解决方案是发现硬盘坏掉后,手动修改HDFS的配置文件,以屏蔽对该硬盘的读写操作。

然而,在实现本公开构思的过程中,发明人发现现有技术至少存在以下缺陷:HDFS修复需要人工参与,容易出错。

针对如图1所示的应用场景,本公开实施例提供的HDFS修复方案是:在每个DataNode上至少设置两块硬盘,以设置两块硬盘(分为主硬盘和副硬盘)为例,正常情况下主硬盘工作,副硬盘是一块冗余硬盘,并不工作,只有在主硬盘故障的情况下,才停止主硬盘,并启用副硬盘。可见,在本方案中副硬盘是作为主硬盘的备用硬盘使用的。

此外,本公开还设置了监控机制,用于监控各DataNode是否出现硬盘故障,并在监控到硬盘出现故障时启动HDFS流程对HDFS进行修复。

图2示意性示出了根据本公开实施例的分布式文件系统的修复方法的流程图。

如图2所示,该方法包括操作S201~S203,其中:

在操作S201,在硬盘出现异常的情况下,获取分布式文件系统的配置文件;

在操作S202,在配置文件中删除硬盘与挂载有硬盘的目录的映射关系;以及

在操作S203,在配置文件中添加硬盘的备用硬盘与目录的映射关系。

由于HDFS的配置文件中一般会配置HDFS架构中各DataNode的硬盘与挂载有该硬盘的目录的映射关系,因此,在硬盘出现异常的情况下,比如硬盘故障时,系统可以自动修改配置文件中记录的硬盘与目录的映射关系,将故障硬盘与其对应的目录之间的映射关系删除,同时添加该故障硬盘的备用硬盘和与故障硬盘具有映射关系的目录之间的映射关系,这样,备用硬盘就可以代替故障硬盘挂载在对应的目录下,实现相关的HDFS功能。

具体地,可以通过硬盘监控机制监控各DataNode上的硬盘,在发现HDFS架构中任一硬盘出现异常时,都可以启动HDFS流程,即获取分布式文件系统的配置文件;并在配置文件中删除硬盘与挂载有硬盘的目录的映射关系;同时在配置文件中添加硬盘的备用硬盘与目录的映射关系,从而实现自动修复HDFS的目的,HDFS自动修复后,启动对应的DataNode,以保证HDFS处于可用状态。

与现有技术中HDFS修复需要人工参与即手动去修改HDFS的配置文件来屏蔽对故障硬盘的读写操作,容易出错相比,通过本公开实施例,在硬盘出现异常时,可以自动修复HDFS,无需人工参与,出错率可以显著降低。

需要说明的是,在本公开实施例中,备用硬盘在正常情况下是不挂载在任何目录上的,只有主硬盘故障时才会将备用硬盘挂载在原本挂载主硬盘的目录上,同时使主硬盘不再挂载在该目录上。

下面参考图3A~图3D,结合具体实施例对图2所示的方法做进一步说明。

图3A示意性示出了根据本公开另一实施例的分布式文件系统的修复方法的流程图。

作为一种可选的实施例,如图3A所示,上述方法还包括:

在操作S204,在硬盘出现异常的情况下,控制服务器上的数据节点停止运行,其中,服务器使用硬盘作为数据节点的物理存储器,数据节点用于作为分布式文件系统的一个存储块。

在HDFS架构中,对于任一DataNode而言,只要它处于运行状态,DataNode就可能将来自客户端的数据请求分配给该DataNode处理,基于此,如果硬盘故障的DataNode不被停止运行,而NameNode又恰巧将来自客户端的数据请求分配给了该硬盘故障的DataNode,则该数据请求就会响应失败。

此外,由于DataNode一般存在多个副本,在某个DataNode的物理存储器(即硬盘)故障后,停止该DataNode,这样如果有用户访问该DataNode中的相关文件,NameNode就会向用户返回该DataNode的任意副本的相关路径,以保证HDFS可以正常使用。

图3B示意性示出了根据本公开另一实施例的分布式文件系统的修复方法的流程图。

作为一种可选的实施例,如图3B所示,上述方法还包括:

在操作S205,获取数据节点的任意一个副本;以及

在操作S206,将副本中的存储内容复制到备用硬盘中。

由于被备用硬盘替代的硬盘中一般会存储一些甚至很多数据,在这种情况下,如果仅仅如前述实施例那样在硬盘出现异常的情况下,获取分布式文件系统的配置文件;在配置文件中删除硬盘与挂载有硬盘的目录的映射关系;以及在配置文件中添加硬盘的备用硬盘与目录的映射关系,则备用硬盘极有可能无法完全代替原硬盘工作,比如,用户访问该备用硬盘时无法对原硬盘中的历史数据进行读、删除和修改等操作。

因此,通过本公开实施方式,在备用硬盘替换掉原硬盘后,HDFS会自动触发数据移动,保证数据重新写入备用硬盘中,从而可以保证备用硬盘能够完全代替该异常硬盘正常工作。

图3C示意性示出了根据本公开另一实施例的分布式文件系统的修复方法的流程图。

作为一种可选的实施例,如图3C所示,上述方法还包括:

在操作S207,检测硬盘是否出现异常;以及

在操作S208,在检测到硬盘出现异常的情况下,获取分布式文件系统的配置文件并修改配置文件中的相关配置。

具体地,通过监控软件实时监控硬盘的状态,发现HDFS中任一DataNode上的硬盘出现错误后,自动修复HDFS的配置文件,保证HDFS处于可用状态。

由于从硬盘出现问题到HDFS使用出现问题,中间一般会存在时间差,因而在监控到硬盘出现异常后就触发HDFS的修复流程,与现有技术只能在使用HDFS时才可能发现硬盘已经出现异常相比,本公开实施例可以保证在第一时间发现硬盘异常并及时修复HDFS,避免大数据业务出现相关错误。

图3D示意性示出了根据本公开实施例的获取分布式文件系统的配置文件并修改配置文件中的相关配置的流程图。

作为一种可选的实施例,如图3D所示,上述方法还包括:

在操作S209,在检测到硬盘出现异常的情况下,生成对应的告警信息和/或提醒信息;以及

在操作S210,将告警信息和/或提醒信息上传给管理服务器,以触发管理服务器获取分布式文件系统的配置文件并修改配置文件中的相关配置。

通过本公开实施例,通过专门的管理服务器统一对HDFS中的各DataNode进行修复,可以便于统一管理。

图4示意性示出了根据本公开实施例的分布式文件系统的修复系统的框图。

如图4所示,该分布式文件系统的修复系统400包括:第一获取模块410、删除模块420和添加模块430。该分布式文件系统的修复系统400可以执行上面参考图2,图3A~图3D描述的方法,以实现分布式文件系统的修复。

第一获取模块410,用于在硬盘出现异常的情况下,获取分布式文件系统的配置文件。

删除模块420,用于在配置文件中删除硬盘与挂载有硬盘的目录的映射关系。

添加模块430,用于在配置文件中添加硬盘的备用硬盘与目录的映射关系。

通过本公开实施例,在硬盘出现异常时,可以自动修复HDFS,无需人工参与,出错率可以显著降低。

作为一种可选的实施例,如图5A所示,上述系统还包括:控制模块440,用于在硬盘出现异常的情况下,控制服务器上的数据节点停止运行,其中,服务器使用硬盘作为数据节点的物理存储器,数据节点用于作为分布式文件系统的一个存储块。

由于DataNode一般存在多个副本,在某个DataNode的物理存储器(即硬盘)故障后,停止该DataNode,这样如果有用户访问该DataNode中的相关文件,NameNode就会向用户返回该DataNode的任意副本的相关路径,以保证HDFS可以正常使用。

作为一种可选的实施例,如图5B所示,上述系统还包括:第二获取模块450,用于获取数据节点的任意一个副本;以及复制模块460,用于将副本中的存储内容复制到备用硬盘中。

通过本公开实施方式,在备用硬盘替换掉原硬盘后,HDFS会自动触发数据移动,保证数据重新写入备用硬盘中,从而可以保证备用硬盘能够完全代替该异常硬盘正常工作。

作为一种可选的实施例,上述系统还包括:检测模块,用于检测硬盘是否出现异常;以及第三获取模块,用于在检测到硬盘出现异常的情况下,获取分布式文件系统的配置文件并修改配置文件中的相关配置;和/或系统还包括:生成模块,用于在检测到硬盘出现异常的情况下,生成对应的告警信息和/或提醒信息;以及上传模块,用于将告警信息和/或提醒信息上传给管理服务器,以触发管理服务器获取分布式文件系统的配置文件并修改配置文件中的相关配置。

由于从硬盘出现问题到HDFS使用出现问题,中间一般会存在时间差,因而在监控到硬盘出现异常后就触发HDFS的修复流程,与现有技术只能在使用HDFS时才可能发现硬盘已经出现异常相比,本公开实施例可以保证在第一时间发现硬盘异常并及时修复HDFS,避免大数据业务出现相关错误。

并且,通过本公开实施例,通过专门的管理服务器统一对HDFS中的各DataNode进行修复,可以便于统一管理。

可以理解的是,第一获取模块410、删除模块420和添加模块430可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,第一获取模块410、删除模块420和添加模块430中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,第一获取模块410、删除模块420和添加模块430中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。

本公开的另一方面提供了一种服务器,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上任一实施例中所述的分布式文件系统的修复方法。

需要说明的是,该服务器属于分布式文件系统集群服务器中的任一服务器,用于对分布式文件系统HDFS进行修复。

图6示意性示出了根据本公开实施例的服务器的框图。

如图6所示,服务器600包括处理器610(一个或者多个)、计算机可读存储介质620(又称为存储器)。该服务器600可以执行上面参考图2,图3A~图3D描述的方法,以实现分布式文件系统的修复。

具体地,处理器610例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器610还可以包括用于缓存用途的板载存储器。处理器610可以是用于执行参考图2,图3A~图3D描述的根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

计算机可读存储介质620,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。

计算机可读存储介质620可以包括计算机程序621,该计算机程序621可以包括代码/计算机可执行指令,其在由处理器610执行时使得处理器610执行例如上面结合图2,图3A~图3D所描述的方法流程及其任何变形。

计算机程序621可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序621中的代码可以包括一个或多个程序模块,例如包括621A、模块621B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器610执行时,使得处理器610可以执行例如上面结合图2,图3A~图3D所描述的方法流程及其任何变形。

根据本公开的实施例,处理器610可以与第一获取模块410、删除模块420和添加模块430进行交互,来执行上面结合图2,图3A~图3D所描述的方法流程及其任何变形。

根据本发明的实施例,第一获取模块410、删除模块420和添加模块430中的至少一个可以实现为参考图6描述的计算机程序模块,其在被处理器610执行时,可以实现上面描述的相应操作。

本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。

尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1