本公开是关于互联网技术领域,具体来说是关于一种主节点设置方法及装置。
背景技术:
随着互联网中数据量的成倍增长,采用硬盘存储数据的方式已不足以满足大量数据的存储需求,而分布式文件系统有效解决了这一存储难题。分布式文件系统包括位于不同地点的众多数据节点、主节点和多个从节点,其中数据节点用于存储数据,多个从节点作为主节点的备份,由主节点为客户端提供数据访问服务。
通常情况下,当主节点出现故障时,为了保证分布式文件系统的高可用性,会采用Paxos算法,由每个从节点分别确定一个或多个其他从节点的数据更新时间,并对数据更新时间最晚的从节点进行投票,从而确定每个从节点的得票数,将得票数最大的从节点选取为新的主节点,将客户端的数据访问业务切换到新的主节点上,由新的主节点继续为客户端提供数据访问服务,保证了数据访问业务的正常进行。
技术实现要素:
为了解决相关技术中存在的问题,本公开提供了一种主节点设置方法及装置。所述技术方案如下:
根据本公开实施例的第一方面,提供了一种主节点设置方法,所述方法包括:
当确定所述主节点发生故障时,从所述多个从节点中,选取存储有所述主节点的最新操作日志的指定从节点;
将所述指定从节点设置为新的主节点。
在一种可能的实现方式中,所述方法还包括:
监控所述主节点的运行状态,根据所述运行状态判断所述主节点是否发生故障。
在另一种可能的实现方式中,从所述多个从节点中,选取存储有所述主节点的最新操作日志的指定从节点,包括:
从所述主节点中获取存储的最新操作日志,从所述多个从节点中,选取存储有所述最新操作日志的指定从节点;或者,
将所述多个从节点的操作日志的更新时间进行对比,选取更新时间最晚的指定从节点。
在另一种可能的实现方式中,所述将所述指定从节点设置为新的主节点,包括:
将特定虚拟IP(Internet Protocol,网络互连协议)地址与所述指定从节点进行绑定,客户端用于访问所述特定虚拟IP地址,由所述特定虚拟IP地址绑定的节点为所述客户端提供数据访问服务。
在另一种可能的实现方式中,所述多个从节点中除所述指定从节点以外的从节点均与所述特定虚拟IP地址连接。
根据本公开实施例的第二方面,提供了一种主节点设置装置,应用于分布式文件系统中,所述分布式文件系统至少包括主节点和多个从节点,每个从节点中存储有所述主节点的操作日志,所述装置包括:
选取模块,用于当确定所述主节点发生故障时,从所述多个从节点中,选取存储有所述主节点的最新操作日志的指定从节点;
设置模块,用于将所述指定从节点设置为新的主节点。
在一种可能的实现方式中,所述装置还包括:
监控模块,用于监控所述主节点的运行状态,根据所述运行状态判断所述主节点是否发生故障。
在另一种可能的实现方式中,所述选取模块,用于从所述主节点中获取存储的最新操作日志,从所述多个从节点中,选取存储有所述最新操作日志的指定从节点;或者,将所述多个从节点的操作日志的更新时间进行对比,选取更新时间最晚的指定从节点。
在另一种可能的实现方式中,所述设置模块,用于将特定虚拟IP地址与所述指定从节点进行绑定,客户端用于访问所述特定虚拟IP地址,由所述特定虚拟IP地址绑定的节点为所述客户端提供数据访问服务。
在另一种可能的实现方式中,所述多个从节点中除所述指定从节点以外的从节点均与所述特定虚拟IP地址连接。
根据本公开实施例的第三方面,提供了一种主节点设置装置,其特征在于,应用于分布式文件系统中,所述分布式文件系统至少包括主节点和多个从节点,每个从节点中存储有所述主节点的操作日志,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
当确定所述主节点发生故障时,从所述多个从节点中,选取存储有所述主节点的最新操作日志的指定从节点;
将所述指定从节点设置为新的主节点。
本公开的实施例提供的技术方案可以包括以下有益效果:
本实施例提供的方法及装置,通过确定该主节点发生故障时,从该多个从节点中,选取存储有该主节点的最新操作日志的指定从节点,将该指定从节点设置为新的主节点,既实现了分布式文件系统的高可用性,而且无需采用复杂的Paxos算法,简化了操作流程,易于实现。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种分布式文件系统的结构示意图;
图2是根据一示例性实施例示出的一种主节点设置方法的流程图;
图3是根据一示例性实施例示出的一种主节点设置方法的流程图;
图4是根据一示例性实施例示出的一种主节点设置装置的框图;
图5是根据一示例性实施例示出的一种主节点设置装置的框图;
图6是根据一示例性实施例示出的一种主节点设置装置的框图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本公开做进一步详细说明。在此,本公开的示意性实施方式及其说明用于解释本公开,但并不作为对本公开的限定。
本公开实施例提供一种主节点设置方法及装置,以下结合附图对本公开进行详细说明。
图1是根据一示例性实施例示出的一种分布式文件系统的结构示意图,如图1所示,该分布式文件系统包括管理节点、主节点、多个从节点和多个数据节点(图1仅是以两个从节点为例)。
其中,管理节点与主节点连接,主节点和每个从节点连接,管理节点和每个从节点连接。该管理节点用于从多个节点中选取主节点,而该主节点会为客户端提供数据访问服务,并生成操作日志,每个从节点作为主节点的备份,可以存储有该主节点的操作日志。
另外,多个数据节点用于存储数据,该多个数据节点的元数据存储于该主节点和该多个从节点中,客户端可以访问该主节点,根据该主节点提供的元数据,对任一数据节点进行访问,例如从该数据节点中读取数据或者向该数据节点写入数据。
图2是根据一示例性实施例示出的一种主节点设置方法的流程图,如图2所示,主节点设置方法用于上述图1所示的分布式文件系统的管理节点中,该主节点设置方法包括以下步骤:
在步骤201中,当确定该主节点发生故障时,从该多个从节点中,选取存储有该主节点的最新操作日志的指定从节点。
在步骤202中,将该指定从节点设置为新的主节点。
本实施例提供的方法,通过确定该主节点发生故障时,从该多个从节点中,选取存储有该主节点的最新操作日志的指定从节点,将该指定从节点设置为新的主节点,既实现了分布式文件系统的高可用性,而且无需采用复杂的Paxos算法,简化了操作流程,易于实现。
在一种可能的实现方式中,该方法还包括:
监控该主节点的运行状态,根据该运行状态判断该主节点是否发生故障。
在另一种可能的实现方式中,从该多个从节点中,选取存储有该主节点的最新操作日志的指定从节点,包括:
从该主节点中获取存储的最新操作日志,从该多个从节点中,选取存储有该最新操作日志的指定从节点;或者,
将该多个从节点的操作日志的更新时间进行对比,选取更新时间最晚的指定从节点。
在另一种可能的实现方式中,该将该指定从节点设置为新的主节点,包括:
将特定虚拟IP地址与该指定从节点进行绑定,客户端用于访问该特定虚拟IP地址,由该特定虚拟IP地址绑定的节点为该客户端提供数据访问服务。
在另一种可能的实现方式中,该多个从节点中除该指定从节点以外的从节点均与该特定虚拟IP地址连接。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图3是根据一示例性实施例示出的一种主节点设置方法的流程图,如图3所示,主节点设置方法用于上述图1所示的分布式文件系统中,该主节点设置方法包括以下步骤:
在步骤301中,管理节点监控主节点的运行状态,根据该运行状态判断该主节点是否发生故障。
本实施例应用于分布式文件系统中,该分布式文件系统中的主节点用于为客户端提供数据访问服务,每当有客户端要访问该分布式文件系统中存储的数据时,都需要先访问该主节点,由该主节点为该客户端提供数据的元数据信息,该客户端才能根据该元数据信息访问数据。而一旦该主节点发生故障,将导致该分布式文件系统不可用,严重影响该分布式文件系统的性能。
而为了保证分布式文件系统的高可用性,每当该分布式文件系统当前的主节点发生故障时,应当及时地监控到该故障,并及时地设置新的主节点来接替原来的主节点,由新的主节点继续为客户端提供数据访问服务。
为此,该分布式文件系统中配置管理节点,该管理节点监控主节点的运行状态,根据该运行状态进行分析,判断该主节点是否发生故障,以便在该主节点发生故障时及时进行处理。
其中,该主节点可能发生的故障包括宕机、磁盘损坏、短路或断路、读取数据失败、写入数据失败和其他可能导致该主节点无法为该客户端提供数据访问服务的情况,本实施例对主节点发生的故障种类不做限定。而该管理节点可以为MHA manager(Master High Availability Manager,高可用管理节点)或者其他节点等,本实施例对此也不做限定。
需要说明的第一点是,本实施例以该步骤301在步骤302之前执行为例进行说明,而在具体实施过程中,该步骤301中的监控过程还可以实时地进行、周期性地进行,或者由分布式文件系统的维护人员在管理节点上触发监控指令时进行,本实施例不对该步骤301的执行时机进行限定。
需要说明的第二点是,本实施例仅以管理节点通过监控运行状态来判断该主节点是否发生故障为例进行说明,而在具体实施过程中,该步骤301为可选步骤,在另一实施例中还可以由主节点在确定发生故障时向管理节点上报,或者由分布式文件系统的维护人员在确定主节点发生故障时在管理节点上触发故障指令,本实施例对管理节点判断主节点是否发生故障的方式不做限定。
在步骤302中,当管理节点确定该主节点发生故障时,从该多个从节点中,选取存储有该主节点的最新操作日志的指定从节点。
其中,该操作日志是指在该主节点的运行过程中根据所执行的操作而生成的一条或多条操作记录,根据该操作日志可以确定该主节点曾执行的操作,该操作日志可以为binlog(二进制日志)或者其他格式的操作日志等,本实施例对此不做限定。该主节点可以仅维护一条操作日志,每当执行了新的操作时对已生成的操作日志进行更新,并记录更新时间,或者,该主节点可以维护多条操作日志,当该主节点执行了新的操作时生成一条操作日志,并记录该操作日志的生成时间,作为该操作日志的更新时间,本实施例对该主节点生成操作日志的方式不做限定。
该分布式文件系统中包括主节点和多个从节点,该主节点生成操作日志时,会将该操作日志发送给该多个从节点,由该多个从节点存储该操作日志,以实现操作日志的同步。那么,如果该主节点在为某一客户端提供数据访问服务的过程中发生故障,任一个从节点能够根据该操作日志恢复该客户端相关的操作记录,以便继续为该客户端提供数据访问服务。
其中,该主节点可以实时地向该多个从节点发送操作日志,或者周期性地向该多个从节点发送操作日志,本实施例对发送该操作日志的时机不做限定。另外,该主节点可以向该多个从节点分别发送操作日志,或者,该主节点可以向其中一个从节点发送操作日志,由前一个从节点向后一个从节点发送操作日志,本实施例对发送操作日志的方式不做限定。
当该管理节点确定该主节点发生故障时,为了尽可能多地恢复相关的操作记录,该管理节点会从该多个从节点中选取存储有该主节点的最新操作日志的指定从节点,作为新的主节点。该步骤302可以包括以下步骤3021-3023中的任一项:
3021、当管理节点确定该主节点发生故障时,从该主节点中获取存储的最新操作日志,从该多个从节点中,选取存储有该最新操作日志的指定从节点。
也即是,该管理节点先从原来的主节点中获取到该主节点的最新操作日志,确定了最新操作日志之后,再检查该多个从节点中存储的操作日志,从该多个从节点中选取也存储有该最新操作日志的从节点,作为指定从节点。
其中,要获取最新操作日志时,该管理节点可以向该主节点发送操作日志请求,该主节点接收到该操作日志请求时,按照每条操作日志的更新时间选取更新时间最晚的操作日志,也即是最新的操作日志,返回给该管理节点。
另外,当存储有该最新操作日志的从节点有多个时,该管理节点可以从该多个从节点中随机选取任一个存储有该最新操作日志的从节点,作为指定从节点。
3022、当管理节点确定该主节点发生故障时,将该多个从节点的操作日志的更新时间进行对比,选取存储有更新时间最晚的操作日志的指定从节点。
该管理节点也可以不从该主节点获取最新操作日志,而是直接将该多个从节点的操作日志的更新时间进行对比,更新时间最晚的操作日志即可认为是最新操作日志,则该管理节点将存储有该最新操作日志的从节点作为指定从节点。
3023、当管理节点确定该主节点发生故障时,判断是否能够从该主节点获取最新操作日志,如果能够从该主节点获取最新操作日志,则从该主节点中获取存储的最新操作日志,从该多个从节点中,选取存储有该最新操作日志的指定从节点。如果不能从该主节点获取最新操作日志,则将该多个从节点的操作日志的更新时间进行对比,选取存储有更新时间最晚的操作日志的指定从节点。
在步骤303中,管理节点将特定虚拟IP地址与该指定从节点进行绑定。
在步骤304中,客户端访问该特定虚拟IP地址,由该特定虚拟IP地址绑定的新的主节点为该客户端提供数据访问服务。
本实施例中,该管理节点配置一个特定虚拟IP地址,与该特定虚拟IP地址绑定的节点即为该分布式文件系统的主节点,该管理节点会将该特定虚拟IP地址提供给一个或多个客户端,任一客户端访问该特定虚拟IP地址,即可与该特定虚拟IP地址绑定的主节点进行通信,此时,主节点即可为该客户端提供数据访问服务。
当管理节点选取了指定从节点时,可以将该特定虚拟IP地址与该指定从节点进行绑定,而解除该特定虚拟IP地址与原来的主节点之间的绑定关系,从而将该指定从节点设置为新的主节点,新的主节点即可为一个或多个客户端提供数据访问服务。
需要说明的是,在该分布式文件系统中,该多个从节点中除主节点以外的从节点均与该特定虚拟IP地址连接,能够作为该主节点的备份,与该主节点进行通信。那么,当该管理节点在原来的主节点发生故障,将指定从节点设置为新的主节点时,除该指定从节点以外的其他从节点仍然与该特定虚拟IP地址连接,因此这些从节点仍可作为新的主节点的备份,与新的主节点进行通信。
另外,该分布式文件系统中还可以包括多个数据节点,该多个数据节点用于存储数据块,该数据块用于存储文件。
当客户端向某个数据节点上传文件时,若该数据节点发生故障导致上传文件的操作失败,该数据节点将向客户端发送上传失败消息,客户端将进行重试操作,重新选择其他正常工作的数据节点,在该正常工作的数据节点中上传文件。
当客户端从某个数据节点下载文件时,若该数据节点发生故障导致下载文件的操作失败,客户端将从其他存储有该文件并且能够正常工作的数据节点中下载该文件,从而保证数据节点发生故障时也能保证该分布式文件系统的可用性,提升了该分布式文件系统的性能。
本实施例提供的方法,通过监控主节点的运行状态,根据该运行状态判断该主节点是否发生故障,确定该主节点发生故障时,从该多个从节点中,选取存储有该主节点的最新操作日志的指定从节点,将该指定从节点设置为新的主节点,将特定虚拟IP地址与该指定从节点进行绑定,客户端访问该特定虚拟IP地址,由该特定虚拟IP地址绑定的新的主节点为该客户端提供数据访问服务,既实现了分布式文件系统的高可用性,而且无需采用复杂的Paxos算法,简化了操作流程,易于实现。
图4是根据一示例性实施例示出的一种主节点设置装置的框图。参见图4,该装置包括选取模块401和设置模块402。
选取模块401,用于当确定该主节点发生故障时,从该多个从节点中,选取存储有该主节点的最新操作日志的指定从节点;
设置模块402,用于将该指定从节点设置为新的主节点。
本实施例提供的装置,通过确定该主节点发生故障时,从该多个从节点中,选取存储有该主节点的最新操作日志的指定从节点,将该指定从节点设置为新的主节点,既实现了分布式文件系统的高可用性,而且无需采用复杂的Paxos算法,简化了操作流程,易于实现。
参见图5,在一种可能的实现方式中,该装置还包括:
监控模块403,用于监控该主节点的运行状态,根据该运行状态判断该主节点是否发生故障。
在另一种可能的实现方式中,该选取模块401,用于从该主节点中获取存储的最新操作日志,从该多个从节点中,选取存储有该最新操作日志的指定从节点;或者,将该多个从节点的操作日志的更新时间进行对比,选取更新时间最晚的指定从节点。
在另一种可能的实现方式中,该设置模块402,用于将特定虚拟IP地址与该指定从节点进行绑定,客户端用于访问该特定虚拟IP地址,由该特定虚拟IP地址绑定的节点为该客户端提供数据访问服务。
在另一种可能的实现方式中,该多个从节点中除该指定从节点以外的从节点均与该特定虚拟IP地址连接。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
需要说明的是:上述实施例提供的主节点设置的装置在设置主节点时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将管理节点的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的主节点设置的装置与主节点设置的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是根据一示例性实施例示出的一种主节点设置装置600的框图。例如,装置600可以被提供为一服务器。参照图6,装置600包括处理组件622,其进一步包括一个或多个处理器,以及由存储器632所代表的存储器资源,用于存储可由处理组件622的执行的指令,例如应用程序。存储器632中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件622被配置为执行指令,以执行上述主节点设置方法。
装置600还可以包括一个电源组件626被配置为执行装置600的电源管理,一个有线或无线网络接口650被配置为将装置600连接到网络,和一个输入输出(I/O)接口658。装置600可以操作基于存储在存储器632的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。