一种文件网关故障切换的处理方法、装置及介质与流程

文档序号:29076345发布日期:2022-03-01 22:51阅读:88来源:国知局
一种文件网关故障切换的处理方法、装置及介质与流程

1.本发明涉及文件网关故障切换领域,具体为一种文件网关故障切换的处理方法、装置及介质。


背景技术:

2.客户端通过服务ip与计算机数据存储服务(nas network-attached storage一种文件级(与块级存储相对)的计算机数据存储服务器,它连接到计算机网络,并提供对异构网络用户的数据访问)网关节点通信访问计算机数据存储服务。为了实现计算机数据存储服务高可用,存储系统中会配置多个计算机数据存储服务网关节点,每个计算机数据存储服务网关节点运行fdnd(fdn daemon fdn中运行在各个待检测节点的守护进程)进程组成fdn(fault detection network一种检测网络中节点故障的方法,同时支持选择其他正常的节点接替故障节点提供服务)集群,负责检测各个计算机数据存储服务网关节点的运行状态,如果fdn发现某个计算机数据存储服务网关节点状态异常,则会在计算机数据存储服务网关集群中选择另一个计算机数据存储服务网关节点,为其分配服务ip后让该节点接替故障节点提供计算机数据存储服务。
3.计算机数据存储服务网关节点上的计算机数据存储服务mgr(计算机数据存储服务manager运行在计算机数据存储服务网关节点上,负责管理计算机数据存储服务网关的进程)进程周期性地向fdn查询当前节点的状态,如果发现当前计算机数据存储服务网关节点的状态由正常转变为异常,则会停止本节点上的计算机数据存储服务,通知块设备客户端(kbdc kernel block device client运行在内核的块设备客户端,向下连接存储集群,向上为内核提供块设备服务)解除挂载共享目录,然后释放对数据存储集群卷的访问;如果计算机数据存储服务mgr发现当前计算机数据存储服务网关节点被fdn选择成为新的计算机数据存储服务节点,则会通知块设备客户端建立对数据存储集群卷的访问,挂载共享目录,设置服务ip并启动nfsd/smbd(nfs daemon提供nfs文件服务的守护进程/smb daemon提供cifs文件服务的守护进程)进程开始提供计算机数据存储服务。但是,现有的故障切换方案中,虽然在故障切换时会卸载故障计算机数据存储服务网关节点上的块设备客户端卷,但是如果该节点仍有io阻塞在io队列中,可能导致卸载失败,这样在网络恢复后故障计算机数据存储服务网关节点仍会继续对块设备客户端卷下发io,块设备客户端卷被双写导致数据出现不一致的问题。


技术实现要素:

4.本发明的目的在于提供一种能够使新的网关节点和恢复后的故障节点对同一个数据存储集群卷的双写,保证数据一致性的文件网关故障切换的处理方法、装置及介质。
5.本发明提供一种文件网关故障切换的处理方法,包括如下步骤:
6.s1、在检测到原计算机数据存储服务网关节点故障时,新的计算机数据存储服务网关节点则向故障网关节点查询所述故障网关节点上块设备客户端是否仍然打开数据存
储集群卷,若是,则向存储集群的管理节点(monsrv monitor server存储集群的管理节点,负责监控和管理集群中的数据节点)申请将故障网关节点加入黑名单;
7.s2、存储集群的管理节点根据所述申请将最新的黑名单推送至所有的存储集群的数据节点(datasrv data server存储集群的数据节点,负责管理数据,并为客户端提供数据服务),存储集群的数据节点则周期性地向存储集群的管理节点上报其当前持有的黑名单版本;
8.s3、根据存储集群的数据节点加入的故障网关节点黑名单,新的计算机数据存储服务网关节点周期性地向存储集群的管理节点查询各个存储集群的数据节点上报的黑名单版本是否都是最新的,是则在本节点上启动计算机数据存储服务,反之等待一段时间后进入下一个查询周期,直到所有的存储集群的数据节点更新到最新的黑名单为止。
9.优选地:所述步骤s2包括如下步骤:
10.s2-1、存储集群的管理节点根据所述申请将最新的黑名单通过广播机制推送至所有的存储集群的数据节点;
11.s2-2、存储集群的数据节点根据接收到的黑名单周期性地向存储集群的管理节点上报其当前持有的黑名单版本。
12.优选地:所述广播机制为存储集群的管理节点与存储集群的数据节点不同组件之间的消息通信。
13.优选地:所述被加入黑名单的故障网关节点在故障恢复后,存储集群的数据节点则拒绝接收故障网关节点发送的io(input/output对存储系统的读/写请求),随后故障网关节点将io以错误直接返回上层应用程序。
14.优选地:所述故障网关节点周期性地尝试停止本节点上的计算机数据存储服务,如果成功则向存储集群的管理节点查询当前节点是否在黑名单里,是则向管理节点申请将自身移出黑名单。
15.优选地:故障网关节点周期性地尝试停止本节点上的计算机数据存储服务,如果成功则向存储集群的管理节点查询当前节点是否在黑名单里,是则将自身移出黑名单,具体包括:
16.检测本节点是否为非计算机数据存储服务网关节点,如果是则检测当前节点上是否仍挂载共享目录,是则解挂共享目录并通知块设备客户端关闭块设备客户端卷;
17.检测当前节点是否被加入了黑名单,是则将自身移出黑名单。
18.优选地:每个黑名单版本由黑名单使用递增的版本号来进行标识。
19.本发明还提供一种文件网关故障切换的处理装置,所述装置包括:
20.计算机数据存储服务网关节点故障检测模块,用于在检测到原计算机数据存储服务网关节点故障时,新的计算机数据存储服务网关节点则向故障网关节点查询所述故障网关节点上块设备客户端是否仍然打开数据存储集群卷,若是,则向存储集群的数据节点申请将故障网关节点加入黑名单;
21.黑名单上报模块,用于存储集群的管理节点根据所述申请将最新的黑名单推送至所有的存储集群的数据节点,存储集群的数据节点则周期性地向存储集群的管理节点上报其当前持有的黑名单版本;
22.判断切换模块,用于根据存储集群的数据节点加入的故障网关节点黑名单,新的
计算机数据存储服务网关节点周期性地向存储集群的管理节点查询各个存储集群的数据节点上报的黑名单版本是否都是最新的,是则在本节点上启动计算机数据存储服务,反之等待一段时间后进入下一个查询周期,直到所有的存储集群的数据节点更新到最新的黑名单为止。
23.本发明还提供一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,当所述计算机可执行指令被服务端执行时,使所述服务端执行如上所述的方法。
24.本发明提供一种文件网关故障切换的处理方法、装置及介质,通过在故障切换时,新的计算机数据存储服务网关节点首先查询原故障节点上块设备客户端是否仍然挂载共享目录,如果原故障节点仍然挂载共享目录则将其加入黑名单,确保在新的计算机数据存储服务网关节点上启动计算机数据存储服务时,原故障网关节点即使故障恢复也无法向存储集群的数据节点下发读写请求,避免新的网关节点和恢复后的故障节点对同一个数据存储集群卷的双写,从而保证了数据的一致性。
附图说明
25.图1为现有技术故障切换的总体流程示意图;
26.图2为现有技术故障切换时原计算机数据存储服务网关节点和新计算机数据存储服务网关节点上的行为示意图;
27.图3为现有技术数据从nfsd/smbd下发到数据存储集群的过程中每一层都可能有缓存和队列示意图;
28.图4为现有技术文件网关故障切换的处理示意图;
29.图5为本发明文件网关故障切换的处理方法的流程示意图;
30.图6为本发明故障网关节点加黑名单示意图;
31.图7为本发明等待所有存储集群的数据节点获取最新黑名单示意图;
32.图8为本发明故障节点移出黑名单示意图;
33.图9为本发明初始化设置计算机数据存储服务网关节点示意图;
34.图10为本发明计算机数据存储服务网关节点故障时的故障切换示意图;
35.图11为本发明计算机数据存储服务故障网关节点移出黑名单示意图。
具体实施方式
36.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
37.在介绍本发明实施例之前,先结合附图说明现有技术中技术问题所产生的原因。故障切换的总体流程如图1所示。故障切换时原计算机数据存储服务网关节点和新计算机数据存储服务网关节点上的行为如图2所示。
38.数据从nfsd/smbd下发到数据存储集群的过程中,会经历page cache(linux文件系统缓存)、lfs(本地文件系统)、block device layer(linux块设备抽象层)和块设备客户端等各个层次,其中每一层都可能有缓存和队列,如图3所示。如果向下一层下发io(input/
output对存储系统的读/写请求)出现网络错误/超时,有些内核组件(如块设备客户端、vfs)会一直重试或者死等,而不会返回错误退出;当计算机数据存储服务网关节点上的块设备客户端与数据存储集群的通信出现异常时,io会在内核io栈中的某个队列中卡住,此时尝试关闭块设备客户端卷或者解挂载会失败。在块设备客户端与数据存储集群的通信恢复,卡住的io会重新尝试下发,如果此时fdn已经检测到网关节点故障并完成故障切换,客户端已经从新的网关节点下发了io,则故障节点上恢复下发的io可能与客户端从新节点上下发的io发送冲突,导致数据不一致甚至破坏文件系统的结构,如图4所示。
39.图5是根据本发明实施例提供的一种文件网关故障切换的处理方法的流程示意图,包括s1、在检测到原计算机数据存储服务网关节点故障时,新的计算机数据存储服务网关节点则向故障网关节点查询所述故障网关节点上块设备客户端是否仍然挂载共享目录,若是,则向存储集群的数据节点申请将故障网关节点加入黑名单;s2、存储集群的管理节点根据所述申请将最新的黑名单推送至所有的存储集群的数据节点,存储集群的数据节点则周期性地向存储集群的管理节点上报其当前持有的黑名单版本;s3、根据存储集群的数据节点加入的故障网关节点黑名单,新的计算机数据存储服务网关节点周期性地向存储集群的管理节点查询各个存储集群的数据节点上报的黑名单版本是否都是最新的,是则在本节点上启动计算机数据存储服务,反之等待一段时间后进入下一个查询周期,直到所有的存储集群的数据节点更新到最新的黑名单为止。步骤s2包括s2-1、存储集群的管理节点根据所述申请将最新的黑名单通过广播机制推送至所有的存储集群的数据节点;s2-2、存储集群的数据节点根据接收到的黑名单周期性地向存储集群的管理节点上报其当前持有的黑名单版本。
40.原计算机数据存储服务网关节点发生故障后,新的计算机数据存储服务网关节点不能马上开始计算机数据存储服务,而是需要先查询故障网关节点上块设备客户端是否仍然挂载共享目录,如果是则需要先将故障网关节点加入黑名单,等待所有存储集群的数据节点都更新到最新的黑名单后才能开始提供计算机数据存储服务。故障网关节点网络恢复后,块设备客户端尝试向存储集群的数据节点下发io返回失败,此时块设备客户端不会对io进行重发而是将错误直接向上返回,进而可以排空io队列中阻塞的io,后续故障网关节点尝试进行执行解挂载共享目录和关块设备客户端卷操作时就会成功,如图6所示。
41.黑名单使用递增的版本号来标识每个版本,数据存储集群中存储集群的数据节点的可能具有不同版本的黑名单,它们会定期向存储集群的管理节点上报自己持有的黑名单版本号;新的计算机数据存储服务网关节点在将故障计算机数据存储服务网关节点加入黑名单后,首先向存储集群的管理节点获取最新的黑名单版本号,然后向存储集群的管理节点查询每个存储集群的数据节点所持有的黑名单版本号:如果所有存储集群的数据节点都持有最新的黑名单,则新的网关节点就直接可以开始计算机数据存储服务;如果某些存储集群的数据节点仍然未被推送最新的黑名单,则新的计算机数据存储服务网关节点需要继续等待,并周期性地重复查询,直到所有存储集群的数据节点都上报了最新的黑名单版本,此时才能启动计算机数据存储服务。等待流程如图7所示。
42.故障网关节点上的计算机数据存储服务mgr进程会周期性地检测本节点是否为非计算机数据存储服务网关节点,如果是则检测当前节点上是否仍打开块设备客户端卷和挂载共享目录,是则解挂载共享目录并通知块设备客户端关闭该卷,然后检测当前节点是否
被加入了黑名单,是则向管理节点申请将自身移出黑名单,保证后续fdn选择该节点为新的计算机数据存储服务网关节点时,当前节点能正常向存储集群的数据节点下发读写请求,流程图如图8所示。
43.初始化设置计算机数据存储服务网关节点
44.用户通过存储系统的管理界面在存储系统中创建计算机数据存储服务时,存储系统会设置计算机数据存储服务网关节点并启动计算机数据存储服务,流程如图9所示。
45.1.用户在存储系统上创建计算机数据存储服务时,计算机数据存储服务网关集群的fdnd进程组成的fdn网络,会首先选择一个计算机数据存储服务网关节点作为计算机数据存储服务节点(图9选择了计算机数据存储服务网关节点1);
46.2.计算机数据存储服务网关节点1上的计算机数据存储服务mgr周期性地向fdnd进程查询当前节点是否为计算机数据存储服务节点,如果是则通知块设备客户端打开数据存储集群卷为块设备客户端卷,将块设备客户端卷挂载为共享目录后,启动nfsd/smbd进程,然后设置服务ip到当前节点上,开始提供计算机数据存储服务;
47.3.计算机数据存储服务网关节点2上的计算机数据存储服务mgr同样会周期性地向fdnd进程查询当前节点是否为计算机数据存储服务节点,发现不是则等待一段时间后发起下一次查询;
48.4.计算机数据存储服务客户端的请求通过服务ip发送给计算机数据存储服务网关节点1,随后计算机数据存储服务网关节点1向存储集群的数据节点请求数据,存储集群的数据节点查询黑名单发现该网关节点不在黑名单中,允许访问,向该网关节点返回数据;计算机数据存储服务网关节点1随后将数据返回给计算机数据存储服务客户端。
49.计算机数据存储服务网关节点故障时的故障切换
50.当提供服务的计算机数据存储服务网关节点故障时,fdn检测到故障后开始故障切换,流程如图10所示。
51.1.原本提供计算机数据存储服务的网关节点1发生故障时,fdn网络首先检测到故障,然后选择网关节点2接替网关节点1继续提供计算机数据存储服务;
52.2.在网关节点1上,计算机数据存储服务mgr周期性地向fdnd查询当前节点是否仍然为计算机数据存储服务节点,在发生故障切换后,计算机数据存储服务mgr获知当前节点已不是计算机数据存储服务节点,于是解除当前节点上的服务ip,尝试解除块设备客户端卷的挂载,但由于出现故障时系统中仍残留着未处理的io请求,导致解除挂载失败;残余的io会一直尝试重新向存储集群的数据节点下发,但都会失败;
53.3.在网关节点2上,计算机数据存储服务mgr周期性地向fdnd查询当前节点是否仍然为计算机数据存储服务节点,在获知到原计算机数据存储服务节点发生故障,当前节点被选为新的计算机数据存储服务节点后,网关节点首先向网关节点1查询其上的共享目录是否已经取消挂载,在获知网关节点1仍未成功将共享目录取消挂载后,网关节点2向存储集群的管理节点申请将网关节点1加入到黑名单中;
54.4.存储集群的管理节点将网关节点1加入到黑名单后,将新版本的黑名单推送给所有的存储集群的数据节点,每个存储集群的数据节点周期性地向管理节点上报其当前持有的黑名单版本;
55.5.网关节点2向存储集群的管理节点查询是否所有的存储集群的数据节点都持有
了最新的黑名单版本,如果不是则继续查询,直到所有的存储集群的数据节点都持有了最新的黑名单版本为止;
56.6.在确定所有的存储集群的数据节点都推送了最新的黑名单之后,网关节点2开始在节点打开块设备客户端卷并挂载共享目录、启动nfsd/smbd、设置服务ip,开始提供计算机数据存储服务;
57.7.在之后的某个时间,网关节点1的故障恢复了,其上残余的io成功下发给存储集群的数据节点,存储集群的数据节点检测发现网关节点1已经被加入了黑名单,于是拒绝其io请求;所有被拒绝的io请求都不会重试而是由网关节点1直接向上层应用程序返回,最后网关节点1上不再有残余的io。
58.计算机数据存储服务故障网关节点移出黑名单
59.当故障的计算机数据存储服务网关节点恢复时,为了之后可以继续承接计算机数据存储服务,需要将自身移出黑名单,流程如图11所示。
60.1.故障的网关节点1在恢复后,计算机数据存储服务mgr周期性地查询当前节点是否为服务节点,如果是则解挂载当前节点上的共享目录,关闭数据存储集群卷;
61.2.随后网关节点1向存储集群的管理节点查询当前节点是否在黑名单中,如果是则向存储集群的管理节点申请将当前节点移出黑名单;
62.3.存储集群的管理节点将计算机数据存储服务网关节点1移出黑名单后将黑名单推送给所有的存储集群的数据节点,此时的计算机数据存储服务网关节点1可以被fdn选中来提供计算机数据存储服务。
63.特殊场景处理
64.该方案同时适用于业务网络正常时计算机数据存储服务网关节点发生切换
65.新的网关节点依然会查询原服务网关节点的块设备客户端卷打开状态,如果原网关节点上的块设备客户端仍然打开着数据存储集群卷并且挂载着共享目录时,则会将原网关节点加入黑名单,流程与因网络故障导致的服务网关节点切换相同。
66.业务网络闪断导致切换
67.网络闪断后不恢复,流程与因计算机数据存储服务网关节点故障导致切换相同;
68.网络闪断后恢复,流程与计算机数据存储服务网关节点网络正常时切换相同。
69.新的网关节点将故障网关节点加入黑名单失败,需要一直重试直到加入黑名单成功,之后才能在新的网关节点启动计算机数据存储服务;
70.新的网关节点由于网络等原因无法查询到原故障网关节点上块设备客户端卷的打开状态,需要一直重试,直到新的网关节点能确定故障网关节点上块设备客户端卷的打开状态之后,才能进行下一步的操作(加黑名单、启动计算机数据存储服务等)。
71.本发明还提供一种文件网关故障切换的处理装置,所述装置包括:
72.计算机数据存储服务网关节点故障检测模块,用于在检测到原计算机数据存储服务网关节点故障时,新的计算机数据存储服务网关节点则向故障网关节点查询所述故障网关节点上块设备客户端是否仍然挂载共享目录,若是,则向存储集群的数据节点申请将故障网关节点加入黑名单;
73.黑名单上报模块,用于存储集群的管理节点根据所述申请将最新的黑名单推送至所有的存储集群的数据节点,存储集群的数据节点则周期性地向存储集群的管理节点上报
其当前持有的黑名单版本;
74.判断切换模块,用于根据存储集群的数据节点加入的故障网关节点黑名单,新的计算机数据存储服务网关节点周期性地向存储集群的管理节点查询各个存储集群的数据节点上报的黑名单版本是否都是最新的,是则在本节点上启动计算机数据存储服务,反之等待一段时间后进入下一个查询周期,直到所有的存储集群的数据节点更新到最新的黑名单为止。
75.本发明还提供一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,当所述计算机可执行指令被服务端执行时,使所述服务端可执行上述任意方法实施例中的文件网关故障切换的处理方法,例如,执行以上描述的图5中的方法步骤s1至步骤s3,以及方法中的步骤s2-1至步骤s2-2的功能。
76.以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1