一种应用于文件系统集群的异常处理方法及装置与流程
未命名
09-22
阅读:84
评论:0
1.本技术涉及网络存储技术,特别涉及一种应用于文件系统集群的异常处理方法及装置。
背景技术:
2.glusterfs(gluster file system)是一种可扩展的网络分布式文件系统,通过建立网络连接,创建集群,可以充分利用集群中各个主机节点中的存储单元,从而向客户端提供功能性强、容量大的存储服务。它通过创建逻辑卷的方式向客户端提供多功能的存储服务,包括分布式卷、复制卷、条带卷、分布式复制卷等,逻辑卷通常由不同节点中的存储单元组成。
3.目前,为了提高数据写入的带宽,glusterfs通常会创建双节点集群,以利用两个集群节点的存储单元创建分布式逻辑卷,分布式逻辑卷可以通过挂载到客户端从而被使用。对比普通的单机文件系统,因为分布式逻辑卷的数据流量会从组成逻辑卷的两个集群节点同时下发,从而突破了单机文件系统底层磁盘io对数据读写带宽的影响。
4.但是在glusterfs集群中,如果组成分布式逻辑卷的节点中有主机出现掉线的情况,那么此时分布式逻辑卷提供的功能将会出现异常,导致出现写入的部分数据无法读取,部分文件无法写入的情况。
技术实现要素:
5.本技术提供了一种应用于文件系统集群的异常处理方法及装置,以解决文件系统集群中有主机出现故障时,该主机上的节点无法提供服务,导致部分文件无法进行正常读写的问题。
6.本技术实施例提供的技术方案包括:
7.一种应用于文件系统集群的异常处理方法,所述文件系统集群包括至少两个节点,所述方法应用于主机,所述主机上部署所述文件系统集群中至少一个节点,所述主机上运行至少一个第一glusterd进程,所述第一glusterd进程用于提供所述主机上节点对应的glusterfs服务;所述方法包括:
8.在检测到其它主机异常时,所述其它主机部署了所述文件系统集群中至少一个节点,则接管异常主机的ip地址和端口号,并获得所述异常主机上各节点对应的glusterfs服务配置信息,所述glusterfs服务配置信息至少包括:glusterd进程创建文件;
9.依据所述glusterd进程创建文件在创建第二glusterd进程,基于接管的所述异常主机的ip地址和端口号并通过运行所述第二glusterd进程提供所述异常主机对应的glusterfs服务。
10.可选的,所述检测到其它主机异常包括:
11.在预设时间段内未收到所述其它主机发送的心跳消息,则确定所述其它主机异常。
12.可选的,所述获得所述异常主机上各节点对应的glusterfs服务配置信息包括:
13.访问指定共享存储位置,以读取所述异常主机上各节点对应的glusterfs服务配置信息。
14.可选的,所述基于接管的所述异常主机的ip地址和端口号并通过运行所述第二glusterd进程提供所述异常主机对应的glusterfs服务包括:
15.当接收到外部客户端向所述文件系统集群挂载的目录/dir中写入文件的请求时,通过运行所述第二glusterd进程将原本写入所述异常主机的ip地址和端口号对应的文件写入至本主机的目录/dir中,其中,原本写入所述异常主机的ip地址和端口号对应的文件与原本写入本主机的文件分别写入本主机的不同目录/dir;和/或,
16.当接收到外部客户端向所述文件系统集群挂载的目录/dir读取文件的请求时,通过运行所述第二glusterd进程将原本从所述异常主机的ip地址和端口号对应的异常主机中读取文件切换为从本地主机读取本地已记录的与所述异常主机的ip地址和端口号对应的文件。
17.可选的,所述第一glusterd进程对应第一rpc服务器和第一rpc客户端,所述第二glusterd进程对应第二rpc服务器和第二rpc客户端;
18.在接管所述异常主机的ip地址和端口号并通过运行所述第二glusterd进程提供所述异常主机对应的glusterfs服务后,该方法进一步包括:
19.在所述第一rpc服务器和所述第二rpc客户端之间建立连接,以及在第二rpc服务器和所述第一rpc客户端之间建立连接,以通过建立的连接在本主机上原节点和原处于异常主机上的节点之间传输有关文件系统集群所需的信息。
20.可选的,在检测到所述异常节点从异常恢复之后,所述方法还包括:
21.删除本地接管的接管异常主机的ip地址和端口号,并删除所述第二glusterd进程。
22.可选的,在本地主机从异常恢复时,该方法进一步包括:
23.重新获得本主机上各节点对应的glusterfs服务配置信息;
24.根据所述glusterfs服务配置信息中的glusterd进程创建文件创建对应的glusterd进程,以通过创建的glusterd进程提供本主机对应的glusterfs服务。
25.本技术还提供了一种应用于文件系统集群的异常处理装置,所述文件系统集群包括至少两个节点,所述装置应用于主机,所述主机上部署所述文件系统集群中至少一个节点,所述主机上运行至少一个第一glusterd进程,所述第一glusterd进程用于提供所述主机上节点对应的glusterfs服务;所述装置包括:
26.检测接管单元:用于在检测到其它主机异常时,所述其它主机部署了所述文件系统集群中至少一个节点,则接管异常主机的ip地址和端口号,并获得所述异常主机上各节点对应的glusterfs服务配置信息,所述glusterfs服务配置信息至少包括:glusterd进程创建文件;
27.创建单元:用于依据所述glusterd进程创建文件在创建第二glusterd进程,基于接管的所述异常主机的ip地址和端口号并通过运行所述第二glusterd进程提供所述异常主机对应的glusterfs服务。
28.可选的,所述检测接管单元检测到其它主机异常包括:
29.在预设时间段内未收到所述其它主机发送的心跳消息,则确定所述其它主机异常。
30.可选的,所述检测接管单元获得所述异常主机上各节点对应的glusterfs服务配置信息包括:
31.访问指定共享存储位置,以读取所述异常主机上各节点对应的glusterfs服务配置信息。
32.可选的,所述创建单元基于接管的所述异常主机的ip地址和端口号并通过运行所述第二glusterd进程提供所述异常主机对应的glusterfs服务包括:
33.当接收到外部客户端向所述文件系统集群挂载的目录/dir中写入文件的请求时,通过运行所述第二glusterd进程将原本写入所述异常主机的ip地址和端口号对应的文件写入至本主机的目录/dir中,其中,原本写入所述异常主机的ip地址和端口号对应的文件与原本写入本主机的文件分别写入本主机的不同目录/dir;和/或,
34.当接收到外部客户端向所述文件系统集群挂载的目录/dir读取文件的请求时,通过运行所述第二glusterd进程将原本从所述异常主机的ip地址和端口号对应的异常主机中读取文件切换为从本地主机读取本地已记录的与所述异常主机的ip地址和端口号对应的文件。
35.可选的,所述第一glusterd进程对应第一rpc服务器和第一rpc客户端,所述第二glusterd进程对应第二rpc服务器和第二rpc客户端;
36.所述创建单元在接管所述异常主机的ip地址和端口号并通过运行所述第二glusterd进程提供所述异常主机对应的glusterfs服务后,该装置进一步包括:
37.建立连接单元:用于在所述第一rpc服务器和所述第二rpc客户端之间建立连接,以及在第二rpc服务器和所述第一rpc客户端之间建立连接,以通过建立的连接在本主机上原节点和原处于异常主机上的节点之间传输有关文件系统集群所需的信息。
38.可选的,在检测到所述异常节点从异常恢复之后,所述装置还包括:
39.删除单元:删除本地接管的接管异常主机的ip地址和端口号,并删除所述第二glusterd进程。
40.可选的,在本地主机从异常恢复时,该装置进一步包括:
41.重新提供服务单元:用于重新获得本主机上各节点对应的glusterfs服务配置信息;
42.根据所述glusterfs服务配置信息中的glusterd进程创建文件创建对应的glusterd进程,以通过创建的glusterd进程提供本主机对应的glusterfs服务。
43.本技术实施例还提供了一种电子设备。该电子设备包括:处理器和机器可读存储介质;
44.所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
45.所述处理器用于执行机器可执行指令,以实现上述公开的方法的步骤。
46.由以上技术方案可以看出,本技术中,当文件系统集群中主机检测到该节点集群中其他主机异常时,该主机会接管异常主机的ip地址和端口号,并创建第二glusterd进程以提供该异常主机对应的glusterfs服务,使该主机接收到外部客户端发送的对于该异常主机的文件读写请求时,可以将原本对于异常主机的ip地址和端口号对应的文件的写入文
件请求写入本主机不同目录,将原本对于异常主机的ip地址和端口号对应的文件的读取文件请求切换为从本地主机读取本地已记录的对应的文件,以解决文件系统集群中有主机出现故障时,导致部分文件无法进行正常读写的问题。
47.进一步地,本实施例中,该文件系统集群中的主机检测到该异常主机从异常恢复之后,该主机会删除本地接管的异常主机的ip地址和端口号,并删除该第二glusterd进程。而从异常恢复的主机会重新创建对应的glusterd进程,以通过创建的glusterd进程提供本主机对应的glusterfs服务。使得再次通过多主机多节点实现客户端文件读写,以减少单主机实现客户端文件读写时,该主机发生故障导致文件无法读写的风险。
附图说明
48.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
49.图1为本技术节点异常时的文件读写流程图;
50.图2为本技术实施例提供的方法流程图;
51.图3为本技术双节点连接图;
52.图4为本技术另一个实施例提供的方法流程图;
53.图5为本技术实施例提供的装置结构图;
54.图6为本技术实施例提供的电子设备结构图。
具体实施方式
55.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
56.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
57.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种器件,但这些信息不应限于这些术语。这些术语仅用来将同一类型的器件彼此区分开。例如,在不脱离本技术范围的情况下,第一器件也可以被称为第二器件,类似地,第二器件也可以被称为第一器件。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
58.为了使本领域技术人员更好地理解本技术实施例提供的技术方案,并使本技术实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本技术实施例中技术方案作进一步详细的说明。
59.首先先对本技术中涉及的一些专业术语进行解释:
60.glusterfs:gluster file system,是一个开源的分布式文件系统。glusterfs是scale-out存储解决方案gluster的核心,具有强大的横向扩展能力,通过扩展能够支持数
pb存储容量和处理数千客户端。
61.rpc:remote procedure call protocol,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。简言之,rpc使得程序能够像访问本地系统资源一样,去访问远端系统资源。
62.以下结合附图对本技术进行详细描述。
63.参见图1,图1中为glusterfs双节点集群,该glusterfs双节点集群在节点故障情况下的文件读写具体过程如下:
64.当节点a发生故障处于掉线状态,外部客户端向分布式逻辑卷挂载的目录/dir中写入文件a和文件b时,此时文件a因为节点a发送故障无法被写入到节点a中的/dir1中,而文件b可以被写入到节点b中的/dir2中,从而导致客户端下发原本要写入节点a中的文件写入失败。同时如果客户端想要读取之前写入到节点a中的文件,也会读取失败,此时节点a下/dir1目录中的文件全部都无法再访问。
65.为了解决上述问题,本技术提供了一种应用于分布式文件系统glusterfs节点集群中的异常处理方法,用于解决分布式文件系统glusterfs节点集群中有主机出现故障时,该主机上的节点无法提供服务,导致部分文件无法进行正常读写的问题。
66.参见图2,本技术提供了一种应用于文件系统集群的异常处理方法,该文件系统集群包括至少两个节点,图2为本技术实施例提供的方法流程图。该方法应用于主机,该主机上部署该文件系统集群中至少一个节点,该主机上运行至少一个第一glusterd进程,该第一glusterd进程用于提供所述主机上节点对应的glusterfs服务。
67.如图2所示,以glusterfs双节点集群为例,该流程可包括以下步骤:
68.s201,在检测到其它主机异常如主机掉线时,则接管异常主机的ip地址和端口号,并获得该异常主机上各节点对应的glusterfs服务配置信息。
69.在本实施例中,上述其他主机部署了该glusterfs双节点集群中至少一个节点。本主机a可以通过挂载异常主机b的磁盘,简称磁盘b,而主机a上原本的磁盘简称为磁盘a,以获得该异常主机上各节点对应的glusterfs服务配置信息,并在挂载磁盘b之后接管异常主机b的ip地址和端口号。上述ip地址可以是一个虚拟ip地址。
70.例如,在上述glusterfs双节点集群中,各个主机都配置了集群资源管理器,通过集群资源管理器对各个主机上的资源,例如磁盘进行管理。本主机的集群资源管理器检测到其他主机异常时,另本主机挂载异常主机的磁盘,也就是磁盘b,同时磁盘资源管理器在主机a上启用主机b的虚拟ip地址和端口号,以实现接管主机b的虚拟ip地址和端口号。此时主机a上同时挂载了磁盘a和磁盘b,并且同时有了两个虚拟ip地址和对应的端口号。
71.在本实施例中,上述glusterfs服务配置信息至少包括:glusterd进程创建文件,用于创建对应的glusterd进程。
72.可选的,上述检测到其它主机异常包括:
73.在预设时间段内未收到所述其它主机发送的心跳消息,则确定所述其它主机异常。
74.在本实施例中,本主机的集群资源管理器可以通过检测集群节点间的心跳,判断其他主机上的节点是否处发生异常。
75.例如,主机a和主机b可以分别运行一个心跳进程,该心跳进程包含用于发送心跳
消息的发送线程,用于接收心跳消息的接收线程,以及用于检测对方节点是否发生故障的检测线程。其中,发送线程可以设定一个发送周期,当主机a的检测线程在若干个发送周期内没有接收到主机b发送的心跳消息时,可以判断为主机b发生异常,则此时主机a将接管主机b的ip地址和端口号,并获得主机b上各节点对应的glusterfs服务配置信息。
76.可选的,上述获得上述异常主机上各节点对应的glusterfs服务配置信息包括:
77.访问指定共享存储位置,以读取所述异常主机上各节点对应的glusterfs服务配置信息。
78.在本实施例中,可以将异常主机上各节点对应的glusterfs服务配置信息存放在该异常主机的磁盘中,本主机挂载该异常主机的磁盘后,通过访问该异常主机的磁盘获得该异常主机上各节点对应的glusterfs服务配置信息。
79.s202,依据上述glusterd进程创建文件创建第二glusterd进程,基于接管的上述异常主机的ip地址和端口号并通过运行所述第二glusterd进程提供上述异常主机对应的glusterfs服务。
80.在本实施例中,该glusterd进程创建文件可以是一个/usr/sbin/glusterd目录下的可执行文件。主机a获得该glusterd进程创建文件之后,主机a上的集群资源管理器控制脚本运行systemctl start以执行该glusterd进程创建文件,创建对应的glusterd进程,也就是第二glusterd进程。其中,systemctl中配置了该第二glusterd进程的启动参数,该启动参数中包括该第二glusterd进程的配置文件路径,使该第二glusterd进程可以读取对应的配置文件。
81.可选的,上述基于接管的所述异常主机的ip地址和端口号并通过运行上述第二glusterd进程提供所述异常主机对应的glusterfs服务包括:
82.当接收到外部客户端向上述文件系统集群挂载的目录/dir中写入文件的请求时,通过运行上述第二glusterd进程将原本写入上述异常主机的ip地址和端口号对应的文件写入至本主机的目录/dir中,其中,原本写入上述异常主机的ip地址和端口号对应的文件与原本写入本主机的文件分别写入本主机的不同目录/dir;和/或,
83.当接收到外部客户端向上述文件系统集群挂载的目录/dir读取文件的请求时,通过运行上述第二glusterd进程将原本从上述异常主机的ip地址和端口号对应的异常主机中读取文件切换为从本地主机读取本地已记录的与上述异常主机的ip地址和端口号对应的文件。
84.在本实施例中,主机a上的磁盘简称为磁盘a,主机b上的磁盘简称为磁盘b,主机a通过挂载磁盘b的方法接管了异常主机b的ip地址和端口号,并通过glusterd进程创建文件创建第二glusterd进程之后,此时主机a上既挂载了磁盘a,也挂载了磁盘b。
85.在本实施例中,主机a启用了主机b的ip地址和端口号,并通过glusterd进程创建文件创建第二glusterd进程之后,当接收到外部客户端发送的ip地址和端口号为主机a的文件读写请求时,可以按照原有方法在主机a的原有磁盘上找到对应的文件,并对该文件进行读写。而当接收到外部客户端发送的ip地址和端口号为主机b的文件读写请求时,则通过第二glusterd进程在挂载的磁盘b上找到对应的文件,并对该文件进行读写。
86.在本实施例中,第二glusterd进程在挂载的磁盘b上找到对应文件的方法可以是:第二glusterd进程对应的配置文件中记录了磁盘b上文件目录的路径,使第二glusterd进
程可以依据对应的配置文件查找磁盘b中的文件。
87.需要说明的是,在本实施例中,通过主机a挂载磁盘b实现将原本写入上述异常主机的ip地址和端口号对应的文件与原本写入本主机的文件分别写入本主机的不同目录/dir只是本技术一种实现方法,不能看作是对本技术的限定。例如,主机a还可以实时同步磁盘b中的文件,在主机b故障接管主机b的ip地址和端口号之后,在接收原本针对于主机b的ip地址和端口号的文件读写请求时,也可以在同步的磁盘中找到对应的文件,以执行该文件读写请求。
88.可选的,上述第一glusterd进程对应第一rpc服务器和第一rpc客户端,上述第二glusterd进程对应第二rpc服务器和第二rpc客户端;
89.在接管的上述异常主机的ip地址和端口号并通过运行上述第二glusterd进程提供上述异常主机对应的glusterfs服务后,该方法进一步包括:
90.s203,在上述第一rpc服务器和上述第二rpc客户端之间建立连接,以及在第二rpc服务器和上述第一rpc客户端之间建立连接,以通过建立的连接传输文件系统集群所需的信息。
91.在本实施例中,glusterd进程在启动时会依据该glusterd进程对应配置文件中的本端的ip地址和端口号创建rpc服务器,依据对端的ip地址和端口号创建rpc客户端,以连接对端的rpc服务器。
92.例如,该第二glusterd进程读取对应的配置文件中本主机,也就是主机b的ip地址和端口号用于创建第二rpc服务器,具体方法为:该第二glusterd进程调用socket函数生成socket套接字,通过bind函数,将socket套接字与主机b的ip地址和端口号绑定,再通过listen函数监听客户端发起的连接请求。并读取该配置文件中的对端主机,也就是主机a的ip地址和端口号创建第二rpc客户端。具体方法为:该第二glusterd进程调用socket函数生成socket套接字,并使用此socket套接字和主机a的ip地址和端口号作为参数调用connect函数,生成第二rpc客户端。
93.同理可知,第一glusterd进程读取对应配置文件中本主机,也就是主机a的ip地址和端口号用于创建第一rpc服务器,读取该配置文件中的对端主机,也就是主机b的ip地址和端口号用于创建第一rpc客户端。
94.如图3所示,第一rpc客户端通过主机b的ip地址和端口号与对应的rpc服务器,也就是第二rpc服务器连接。第二rpc客户端通过主机a的ip地址和端口号与对应的rpc服务器,也就是第一rpc服务器连接。以实现通过建立的连接在各节点之间传输文件系统集群所需的信息,该信息需要遵守集群协议。
95.可选的,在检测到所述异常节点从异常恢复之后,所述方法还包括:
96.删除本地接管的异常主机的ip地址和端口号,并删除所述第二glusterd进程。
97.在本实施例中,主机a检测到主机b从异常恢复之后,则会删除接管的主机b的ip地址和端口号,以避免ip地址重复。
98.至此,完成图2所示的流程。
99.在本实施例中,当分布式文件系统glusterfs双节点集群中主机检测到该节点集群中其他主机异常时,该主机会启用该异常主机的ip地址和端口号,并创建第二glusterd进程以提供该异常主机对应的glusterfs服务,使该主机接收到外部客户端向该异常主机
的ip地址和端口号发送文件写入请求时,可以将原本写入该异常主机的ip地址和端口号对应的文件与原本写入本主机的磁盘,将原本对于异常主机的ip地址和端口号对应的文件的读取文件请求切换为从本地主机读取本地已记录的对应的文件,以解决分布式文件系统glusterfs节点集群中有主机出现故障时,导致部分文件无法进行正常读写的问题。
100.本技术实施例提供的方法异常节点从异常恢复之后,上述方法还包括以下步骤,参见图4:
101.s401,重新获得本主机上各节点对应的glusterfs服务配置信息;
102.根据上述glusterfs服务配置信息中的glusterd进程创建文件创建对应的glusterd进程,以通过创建的glusterd进程提供本主机对应的glusterfs服务。
103.在本实施例中,主机b从异常恢复时,集群资源管理器控制脚本运行systemctl start以执行上述glusterd进程创建文件,具体通过创建的glusterd进程提供本主机对应的glusterfs服务的方法可以参见步骤s202,这里不再进行赘述。
104.进一步的,b主机集群资源管理器通过systemctl start命令创建启动对应的glusterd进程之后,如步骤s203所示,该glusterd进程创建对应的rpc服务器与第一rpc客户端建立连接,创建对应的rpc客户端与第一rpc服务器建立连接。以实现通过建立的连接传输glusterfs节点集群所需的信息。
105.至此,完成图4所示的流程。
106.本实施例中,在本节点所在的主机从异常恢复之后,重新获得本主机上各节点对应的glusterfs服务配置信息,并创建对应的glusterd进程提供本主机对应的glusterd服务。使得再次通过双主机双节点实现客户端文件读写,减少单主机实现客户端文件读写时,该主机发生故障导致文件无法读写的风险。
107.下面对本实施例提供的装置进行描述:
108.参见图5,图5为本技术还提供了一种应用于文件系统集群的异常处理装置,其特征在于,所述文件系统集群包括至少两个节点,所述装置应用于主机,所述主机上部署所述文件系统集群中至少一个节点,所述主机上运行至少一个第一glusterd进程,所述第一glusterd进程用于提供所述主机上节点对应的glusterfs服务;所述装置包括:
109.检测接管单元501:用于在检测到其它主机异常时,所述其它主机部署了所述文件系统集群中至少一个节点,则接管异常主机的ip地址和端口号,并获得所述异常主机上各节点对应的glusterfs服务配置信息,所述glusterfs服务配置信息至少包括:glusterd进程创建文件;
110.创建单元502:用于依据所述glusterd进程创建文件在创建第二glusterd进程,基于接管的所述异常主机的ip地址和端口号并通过运行所述第二glusterd进程提供所述异常主机对应的glusterfs服务。
111.可选的,所述检测接管单元检测到其它主机异常包括:
112.在预设时间段内未收到所述其它主机发送的心跳消息,则确定所述其它主机异常。
113.可选的,所述检测接管单元获得所述异常主机上各节点对应的glusterfs服务配置信息包括:
114.访问指定共享存储位置,以读取所述异常主机上各节点对应的glusterfs服务配
置信息。
115.可选的,所述创建单元基于接管的所述异常主机的ip地址和端口号并通过运行所述第二glusterd进程提供所述异常主机对应的glusterfs服务包括:
116.当接收到外部客户端向所述文件系统集群挂载的目录/dir中写入文件的请求时,通过运行所述第二glusterd进程将原本写入所述异常主机的ip地址和端口号对应的文件写入至本主机的目录/dir中,其中,原本写入所述异常主机的ip地址和端口号对应的文件与原本写入本主机的文件分别写入本主机的不同目录/dir;和/或,
117.当接收到外部客户端向所述文件系统集群挂载的目录/dir读取文件的请求时,通过运行所述第二glusterd进程将原本从所述异常主机的ip地址和端口号对应的异常主机中读取文件切换为从本地主机读取本地已记录的与所述异常主机的ip地址和端口号对应的文件。
118.可选的,所述第一glusterd进程对应第一rpc服务器和第一rpc客户端,所述第二glusterd进程对应第二rpc服务器和第二rpc客户端;
119.所述创建单元在接管所述异常主机的ip地址和端口号并通过运行所述第二glusterd进程提供所述异常主机对应的glusterfs服务后,该装置进一步包括:
120.建立连接单元503:用于在所述第一rpc服务器和所述第二rpc客户端之间建立连接,以及在第二rpc服务器和所述第一rpc客户端之间建立连接,以通过建立的连接在本主机上原节点和原处于异常主机上的节点之间传输有关文件系统集群所需的信息。
121.可选的,在检测到所述异常节点从异常恢复之后,所述装置还包括:
122.删除单元504:删除本地接管的接管异常主机的ip地址和端口号,并删除所述第二glusterd进程。
123.可选的,在本地主机从异常恢复时,该装置进一步包括:
124.重新提供服务单元505:用于重新获得本主机上各节点对应的glusterfs服务配置信息;
125.根据所述glusterfs服务配置信息中的glusterd进程创建文件创建对应的glusterd进程,以通过创建的glusterd进程提供本主机对应的glusterfs服务。
126.本技术实施例还提供了图5所示装置的硬件结构。参见图6,图6为本技术实施例提供的电子设备结构图。如图6所示,该硬件结构可包括:处理器和机器可读存储介质,机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现本技术上述示例公开的方法。
127.基于与上述方法同样的申请构思,本技术实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本技术上述示例公开的方法。
128.示例性的,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radom access memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
129.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,
或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
130.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本技术时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
131.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
132.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
133.而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
134.这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
135.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
技术特征:
1.一种应用于文件系统集群的异常处理方法,其特征在于,所述文件系统集群包括至少两个节点,所述方法应用于主机,所述主机上部署所述文件系统集群中至少一个节点,所述主机上运行至少一个第一glusterd进程,所述第一glusterd进程用于提供所述主机上节点对应的glusterfs服务;所述方法包括:在检测到其它主机异常时,所述其它主机部署了所述文件系统集群中至少一个节点,则接管异常主机的ip地址和端口号,并获得所述异常主机上各节点对应的glusterfs服务配置信息,所述glusterfs服务配置信息至少包括:glusterd进程创建文件;依据所述glusterd进程创建文件创建第二glusterd进程,基于接管的所述异常主机的ip地址和端口号并通过运行所述第二glusterd进程提供所述异常主机对应的glusterfs服务。2.根据权利要求1所述的方法,其特征在于,所述检测到其它主机异常包括:在预设时间段内未收到所述其它主机发送的心跳消息,则确定所述其它主机异常。3.根据权利要求1所述的方法,其特征在于,所述获得所述异常主机上各节点对应的glusterfs服务配置信息包括:访问指定共享存储位置,以读取所述异常主机上各节点对应的glusterfs服务配置信息。4.根据权利要求1所述的方法,其特征在于,所述基于接管的所述异常主机的ip地址和端口号并通过运行所述第二glusterd进程提供所述异常主机对应的glusterfs服务包括:当接收到外部客户端向所述文件系统集群挂载的目录/dir中写入文件的请求时,通过运行所述第二glusterd进程将原本写入所述异常主机的ip地址和端口号对应的文件写入至本主机的目录/dir中,其中,原本写入所述异常主机的ip地址和端口号对应的文件与原本写入本主机的文件分别写入本主机的不同目录/dir;和/或,当接收到外部客户端向所述文件系统集群挂载的目录/dir读取文件的请求时,通过运行所述第二glusterd进程将原本从所述异常主机的ip地址和端口号对应的异常主机中读取文件切换为从本地主机读取本地已记录的与所述异常主机的ip地址和端口号对应的文件。5.根据权利要求1所述的方法,其特征在于,所述第一glusterd进程对应第一远程过程调用协议rpc服务器和第一rpc客户端,所述第二glusterd进程对应第二rpc服务器和第二rpc客户端;在接管所述异常主机的ip地址和端口号并通过运行所述第二glusterd进程提供所述异常主机对应的glusterfs服务后,该方法进一步包括:在所述第一rpc服务器和所述第二rpc客户端之间建立连接,以及在第二rpc服务器和所述第一rpc客户端之间建立连接,以通过建立的连接在本主机上原节点和原处于异常主机上的节点之间传输有关文件系统集群所需的信息。6.根据权利要求1所述的方法,其特征在于,在检测到所述异常节点从异常恢复之后,所述方法还包括:删除本地接管的异常主机的ip地址和端口号,并删除所述第二glusterd进程。7.根据权利要求1所述的方法,其特征在于,在本地主机从异常恢复时,该方法进一步包括:
重新获得本主机上各节点对应的glusterfs服务配置信息;根据所述glusterfs服务配置信息中的glusterd进程创建文件创建对应的glusterd进程,以通过创建的glusterd进程提供本主机对应的glusterfs服务。8.一种应用于文件系统集群的异常处理装置,其特征在于,所述文件系统集群包括至少两个节点,所述装置应用于主机,所述主机上部署所述文件系统集群中至少一个节点,所述主机上运行至少一个第一glusterd进程,所述第一glusterd进程用于提供所述主机上节点对应的glusterfs服务;所述装置包括:检测接管单元:用于在检测到其它主机异常时,所述其它主机部署了所述文件系统集群中至少一个节点,则接管异常主机的ip地址和端口号,并获得所述异常主机上各节点对应的glusterfs服务配置信息,所述glusterfs服务配置信息至少包括:glusterd进程创建文件;创建单元:用于依据所述glusterd进程创建文件在创建第二glusterd进程,基于接管的所述异常主机的ip地址和端口号并通过运行所述第二glusterd进程提供所述异常主机对应的glusterfs服务。9.根据权利要求8所述的装置,其特征在于,所述创建单元基于接管的所述异常主机的ip地址和端口号并通过运行所述第二glusterd进程提供所述异常主机对应的glusterfs服务包括:当接收到外部客户端向所述文件系统集群挂载的目录/dir中写入文件的请求时,通过运行所述第二glusterd进程将原本写入所述异常主机的ip地址和端口号对应的文件写入至本主机的目录/dir中,其中,原本写入所述异常主机的ip地址和端口号对应的文件与原本写入本主机的文件分别写入本主机的不同目录/dir;和/或,当接收到外部客户端向所述文件系统集群挂载的目录/dir读取文件的请求时,通过运行所述第二glusterd进程将原本从所述异常主机的ip地址和端口号对应的异常主机中读取文件切换为从本地主机读取本地已记录的与所述异常主机的ip地址和端口号对应的文件。10.根据权利要求8所述的装置,其特征在于,在本地主机从异常恢复时,该装置进一步包括:重新提供服务单元:用于重新获得本主机上各节点对应的glusterfs服务配置信息;根据所述glusterfs服务配置信息中的glusterd进程创建文件创建对应的glusterd进程,以通过创建的glusterd进程提供本主机对应的glusterfs服务。
技术总结
本申请提供了一种应用于文件系统集群的异常处理方法及装置。在本申请中,当集群中的主机检测到部署在其它主机上的节点异常时,该主机会接管异常主机的IP地址和端口号,并在本主机运行Glusterd进程的基础上创建第二Glusterd进程,以提供所述异常主机对应的Glusterfs服务。解决了文件系统集群中有主机出现故障时,该主机上的节点无法提供服务,导致部分文件无法进行正常读写的问题。致部分文件无法进行正常读写的问题。致部分文件无法进行正常读写的问题。
技术研发人员:唐阳
受保护的技术使用者:杭州宏杉科技股份有限公司
技术研发日:2022.03.07
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
