CN111698120A - 存储节点隔离方法和装置 - Google Patents
存储节点隔离方法和装置 Download PDFInfo
- Publication number
- CN111698120A CN111698120A CN202010490931.XA CN202010490931A CN111698120A CN 111698120 A CN111698120 A CN 111698120A CN 202010490931 A CN202010490931 A CN 202010490931A CN 111698120 A CN111698120 A CN 111698120A
- Authority
- CN
- China
- Prior art keywords
- storage node
- storage
- node
- nodes
- timeout
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0659—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种存储节点隔离方法和装置。其中,该方法包括:获取多个客户端发送的存储节点超时汇聚表,其中,每个存储节点超时会聚表中记录有发送存储节点超时汇聚表的客户端在预定时长内访问多个存储节点时,客户端记录的每个存储节点的超时次数;统计存储节点超时汇聚表中所有的存储节点,得到多个目标存储节点;根据存储节点超时汇聚表,统计目标存储节点中每一个存储节点的超时次数;根据每一个存储节点的超时次数,从目标存储节点中确定出第一存储节点,其中,第一存储节点为故障节点;将第一存储节点转移到存储节点隔离池中。本发明解决了相关技术中存储节点隔离效率低的技术问题。
Description
技术领域
本发明涉及分布式存储领域,具体而言,涉及一种存储节点隔离方法和装置。
背景技术
在分布式存储的过程中,客户端需要通过元数据服务器访问存储节点。而在分配存储节点的过程中,存储节点可能存在故障。
针对上述方法,现有技术通过在客户端增加网络监测模块,客户端需要定期向存储节点发送探测报文,从而检测存储节点是否故障。并在存储节点故障时,隔离存储节点。
然而,若是采用上述方法,则需要浪费大量客户端带宽,才能实现对存储节点的故障检测与隔离。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种存储节点隔离方法和装置,以至少解决相关技术中存储节点隔离效率低的技术问题。
根据本发明实施例的一个方面,提供了一种存储节点隔离方法,包括:获取多个客户端发送的存储节点超时汇聚表,其中,每个上述存储节点超时汇聚表中记录有发送上述存储节点超时汇聚表的客户端在预定时长内访问多个存储节点时,上述客户端记录的每个上述存储节点的超时次数;统计上述存储节点超时汇聚表中所有的上述存储节点,得到多个目标存储节点;根据上述存储节点超时汇聚表,统计上述目标存储节点中每一个存储节点的超时次数;根据上述每一个存储节点的超时次数,从上述目标存储节点中确定出第一存储节点,其中,上述第一存储节点为故障节点;将上述第一存储节点转移到存储节点隔离池中。
根据本发明实施例的另一方面,还提供了一种存储节点隔离装置,包括:获取单元,用于获取多个客户端发送的存储节点超时汇聚表,其中,每个上述存储节点超时汇聚表中记录有发送上述存储节点超时汇聚表的客户端在预定时长内访问多个存储节点时,上述客户端记录的每个上述存储节点的超时次数;第一统计单元,用于统计上述存储节点超时汇聚表中所有的上述存储节点,得到多个目标存储节点;第二统计单元,用于根据上述存储节点超时汇聚表,统计上述目标存储节点中每一个存储节点的超时次数;确定单元,用于根据上述每一个存储节点的超时次数,从上述目标存储节点中确定出第一存储节点,其中,上述第一存储节点为故障节点;转移单元,用于将上述第一存储节点转移到存储节点隔离池中。
作为一种可选的示例,上述第二统计单元包括:处理模块,用于将上述目标存储节点中的每一个存储节点确定为当前存储节点,执行以下步骤,直到遍历上述目标存储节点:获取上述多个客户端发送的上述存储节点超时汇聚表中,每一个上述存储节点超时会聚表中记录的上述当前存储节点的第一超时次数;将获取的多个上述第一超时次数的和确定为上述当前存储节点的超时次数。
作为一种可选的示例,上述确定单元包括:排序模块,用于按照每一个目标存储节点的超时次数由大到小对上述目标存储节点进行排序,得到排序结果;第一确定模块,用于将上述排序结果中的前N个上述目标存储节点确定为上述第一存储节点,其中,上述N为正整数。
作为一种可选的示例,上述装置还包括:第二获取单元,用于在将上述第一存储节点转移到存储节点隔离池中之后,在符合预定条件的情况下,将第二存储节点从上述存储节点隔离池中取出,其中,上述第二存储节点为上述隔离池中的一个或多个节点,上述预定条件包括以下至少之一:可用存储节点数量大于或等于第一阈值;当前存储节点需求大于或等于第二阈值;上述存储节点隔离池中的存储节点数量大于第三阈值。
作为一种可选的示例,上述第二获取单元包括:第一计算模块,用于计算上述第二存储节点的实时可提取数量;第二计算模块,用于计算上述第二存储节点的最大可提取数量;第二确定模块,用于在上述实时可提取数量小于或等于上述最大可提取数量的情况下,确定从上述存储节点隔离池中取出X个上述第二存储节点,其中,上述X为上述实时可提取数量;第三确定模块,用于在上述实时可提取数量大于上述最大可提取数量的情况下,确定从上述存储节点隔离池中取出X个上述第二存储节点,其中,上述X为上述最大可提取数量;获取模块,用于从上述隔离池中取出上述X个上述第二存储节点。
作为一种可选的示例,上述第一计算模块包括:第一获取子模块,用于获取当前系统在线的存储节点的数量与上述系统最大冗余模式所需的最大的存储节点的数量的差;确定子模块,用于将上述差与预定比例的乘积确定为上述实时可提取数量。
作为一种可选的示例,上述获取模块包括:第二获取子模块,用于在上述隔离池中的存储节点的数量小于上述X的情况下,取出上述隔离池中的所有的上述存储节点。
作为一种可选的示例,上述装置还包括:记录单元,用于在获取多个客户端发送的存储节点超时汇聚表之前,在上述多个客户端中的每一个客户端访问上述存储节点产生网络超时的情况下,记录产生上述网络超时的上述存储节点,并增加上述存储节点的超时次数一次。
作为一种可选的示例,上述记录单元包括:记录模块,用于在预定时间间隔内上述存储节点产生多次网络超时的情况下,增加上述存储节点的超时次数一次。
在本发明实施例中,采用获取多个客户端发送的存储节点超时汇聚表,其中,每个上述存储节点超时会聚表中记录有发送上述存储节点超时汇聚表的客户端在预定时长内访问多个存储节点时,上述客户端记录的每个上述存储节点的超时次数;统计上述存储节点超时汇聚表中所有的上述存储节点,得到多个目标存储节点;根据上述存储节点超时汇聚表,统计上述目标存储节点中每一个存储节点的超时次数;根据上述每一个存储节点的超时次数,从上述目标存储节点中确定出第一存储节点,其中,上述第一存储节点为故障节点;将上述第一存储节点转移到存储节点隔离池中的方式,由于在上述方法中,可以获取多个客户端访问存储节点时,记录的每一个存储节点的超时次数,从而可以统计出哪一个存储节点的超时次数高,进而将超时次数高的存储节点进行隔离,实现了提高对存储节点进行隔离的效率的效果。进而解决了相关技术中存储节点隔离效率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的存储节点隔离方法的流程示意图;
图2是根据本发明实施例的一种可选的存储节点隔离方法的示意图;
图3是根据本发明实施例的一种可选的存储节点隔离装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种存储节点隔离方法,可选地,作为一种可选的实施方式,如图1所示,上述方法包括:
S102,获取多个客户端发送的存储节点超时汇聚表,其中,每个所述存储节点超时会聚表中记录有发送所述存储节点超时汇聚表的客户端在预定时长内访问多个存储节点时,所述客户端记录的每个所述存储节点的超时次数;
S104,统计所述存储节点超时汇聚表中所有的所述存储节点,得到多个目标存储节点;
S106,根据所述存储节点超时汇聚表,统计所述目标存储节点中每一个存储节点的超时次数;
S108,根据所述每一个存储节点的超时次数,从所述目标存储节点中确定出第一存储节点,其中,所述第一存储节点为故障节点;
S110,将所述第一存储节点转移到存储节点隔离池中。
可选地,上述存储节点隔离方法可以但不限于应用于服务器中,服务器可以通过网络与客户端进行交互,客户端可以为手机、平板电脑、笔记本电脑、PC机等。上述网络可以包括但不限于无线网络或有线网络。其中,该无线网络包括:WIFI及其他实现无线通信的网络。上述有线网络可以包括但不限于:广域网、城域网、局域网。上述服务器可以包括但不限于任何可以进行计算的硬件设备。
可选地,本方案中的每一个客户端可以向一个或者多个存储节点发送请求,在向存储节点发送请求后,有的存储节点可能不能及时响应客户端的请求。此时,客户端对将响应超时的存储节点记录下来,并将超时次数加1,从而得到存储节点超时汇聚表。多个客户端可以将各自记录的存储节点超时汇聚表发送给服务器。服务器接收到多个存储节点超时会汇聚表后,对所有存储节点超时会汇聚表中出现的存储节点进行统计,得到多个目标存储节点。服务器可以统计存储节点超时会汇聚表,得到每一个目标存储节点的超时次数。然后,对目标存储节点的超时次数进行排序,得到排序结果,然后将排序结果中超时次数最多的存储节点格力到存储节点隔离池中。存储节点隔离池中的存储节点无法分配给客户端。通过本方案,提高了隔离存储节点的效率。
例如,同一个IP地址上的三个客户端分别上报了一个存储节点超时会汇聚表,三个存储节点超时会汇聚表中共涉及了四个存储节点。则服务器统计四个存储节点每一个存储节点的超时次数。如第一个存储节点超时会汇聚表中记录了存储节点1超时3次,第二个存储节点超时会汇聚表中记录了存储节点超时1次,第三个存储节点超时会汇聚表中记录了存储节点1超时4次,则存储节点1共超时8次。服务器针对该客户端IP地址得到四个存储节点的超时次数,将超时次数最多的存储节点隔离到存储节点隔离池中。
可选地,本方案中在统计每一个目标存储节点的超时次数时,将每一个目标存储节点确定为当前节点,然后遍历多个存储节点超时汇聚表。遍历每一个存储节点超时汇聚表中是否记录有当前存储节点的超时次数。得到当前存储节点的超时次数。例如,三个存储节点超时汇聚表中,有两个存储节点超时汇聚表记录有当前存储节点的超时次数,分别为3次和2次,则当前存储节点的超时次数为5次。
可选地,本方案中在确定出目标存储节点中每一个存储节点的超时次数后,可以按照超时次数从大到小的顺序对目标存储节点进行排序,得到排序结果。将排序结果中前N个目标存储节点隔离到存储节点隔离池中。
可选地,本方案中在符合预定条件的情况下,还可以将存储节点隔离池中的存储节点转移出来。例如,可用的存储节点数量大于第一阈值,或者存储节点需求大于第二阈值,或者存储节点隔离池中的存储节点数量大于第三阈值等等。
可选地,本方案中的客户端可以记录上述存储节点超时汇聚表。如客户端可以与一个存储节点建立连接,然后客户端发送请求,若是该存储节点响应超时,则客户端可以记录下该存储节点,并记录下该存储节点响应超时一次。若是在预定时长内,如3秒内,该存储节点超时了多次,则只记录一次。
以下结合一个具体示例进行说明。
本方案解决的问题场景可以为接入客户端和分布式视频云存储系统网络分离部署,接入客户端和视频云存储系统内数据节点(上述存储节点)存在网络异常,而视频云存储系统的元数据服务器因为没有及时感知,仍将异常节点分配给接入客户端进行数据写入而导致文件写入失败。本方案针对该问题提出了一套故障节点的检测与隔离方法,并在该方法的基础上实现了一套故障节点隔离系统,系统主要分为四个模块:故障节点取样模块、故障节点汇聚模块、故障节点隔离决策模块、故障节点选择模块。
本方案所描述的故障节点取样模块可以设置或集成在接入客户端程序中。取样模块分别在接入客户端打开、读、写数据块并产生网络超时后,记录该数据节点的网络超时次数,并在该次记录时间之后的5秒时间内同一数据节点发生的多次网络超时次数仅算作一次。取样模块将数据节点及其超时次数作为一个基本数据节点超时记录单元存储到接入客户端的当前数据节点超时汇聚表中,同时取样模块每隔1分钟将当前数据节点超时汇聚表中的记录转移到数据节点超时汇聚旧表。旧表为上一分钟产生的超时会聚表;在转移过程中如果遇到数据节点超时汇聚旧表中的内容没有被心跳报文及时取走时,旧表中的内容会被强制覆盖,结果可能是接入客户端向元数据服务器少报了一分钟的信息,对整体的影响可忽略不计。取样模块的心跳报文每隔2秒从数据节点超时汇聚旧表中取走最大40个基本记录单元(数据节点、超时次数的组合)汇报给故障节点汇聚模块。汇报时可能会产生报文丢失,此时不做报文的重传和尝试。
本方案所描述的故障节点汇聚模块集成在视频云存储系统的元数据服务器中。接入客户端每成功和元数据服务器建立一条长连接,就需要在汇聚模块的客户端隔离信息管理表中建立一条客户端IP与数据节点隔离对象间的映射记录;如果该记录已经存在则增加记录引用计数;在长连接断开30分钟后引用计数减少一次,当该接入客户端对应的记录引用计数为0时,汇聚模块将映射记录从客户端隔离信息管理表中清除。汇聚模块按照接入客户端的IP作为键值汇聚数据节点隔离信息,且该数据节点隔离信息对同一接入客户端服务器上的其他接入服务也同样生效。汇聚模块的数据节点隔离对象是一组数据节点滑动窗口的集合。结构如图2所示。
滑动窗口大小预设有N个小窗格,每个小窗格记录M时间内的超时信息,在本方案中N预设为60,M预设为1分钟,即滑动窗口至少可记录过去60分钟的超时信息。汇聚模块和决策模块共享该滑动窗口中的数据。取样模块通过2秒一次的心跳报文向汇聚模块汇报数据节点超时信息,汇聚模块获取心跳报文中对应的客户端IP,从客户端隔离信息管理表找到该客户端对应的数据节点隔离信息后,将心跳报文中的数据节点及其超时次数累加到对应数据节点的当前窗格中,同时更新该数据节点窗格总超时计数,便于决策模块进行决策计算。也就是说,本方案中可以在每一分钟记录下每一个数据节点的超时次数,在下一分钟,则重新对每一个数据节点的超时次数进行统计(时间间隔也可以不为一分钟,根据实际情况可以灵活设置)。
本方案所描述的故障节点决策模块,每隔M时间(1分钟)轮询客户端隔离信息管理表;将每个客户端的当前滑动窗格标识向前推进一格,由于N个窗格循环使用,当窗格需要被重复利用时,需要先清除窗格中的历史次数并同步更新数据节点窗格总超时计数;窗格向前滑动一格后,决策模块还需要对所有已记录的数据节点的窗格总超时计数从大到小排序,选取当前系统最大可隔离数据节点(T)个数的数据节点,作为接下来M时间内该接入客户端的隔离节点池。其中T为动态配置选项,根据项目实际数据节点个数进行调整配置,当前系统预设的默认值T为10个,即使在线数据节点数达到1000个,每次最大可隔离的数据节点数为10个,保证数据节点的负载均衡。
元数据服务器在分配数据节点时,需要排除存储节点隔离池(数据节点隔离池)中的数据节点。
在数据节点隔离后,还可以在预定情况下,将隔离的数据节点取出。如以下情况的至少之一:可用存储节点数量大于或等于第一阈值;当前存储节点需求大于或等于第二阈值;所述存储节点隔离池中的存储节点数量大于第三阈值。在选择被隔离的数据节点时,可以通过如下方法:
1)是否需要从隔离池中取出数据节点:后台元数据服务器使能隔离节点池选择策略;是否需要取。2)当前在线数据节点数量需要超过系统当前支持的最大冗余模式所需要的最大节点个数,元数据服务器才可以从隔离节点池中选择隔离节点并取出,其中最大冗余模式由元数据服务器动态学习和调整。3)根据在线节点数计算当前系统的实时可取出的数据节点数=(当前系统在线节点数–系统最大冗余模式所需最大节点数)*隔离节点比例,其中隔离节点比例动态配置成20%;4)计算本次可取出的数据节点数量X=min(系统实时可隔离节点数,系统最大可隔离数据节点);5)从隔离节点池中选择X个数据节点,当隔离池中的节点数少于X时,取出隔离池中的所有数据节点。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的另一个方面,还提供了一种用于实施上述存储节点隔离方法的存储节点隔离装置。如图3所示,该装置包括:
(1)获取单元302,用于获取多个客户端发送的存储节点超时汇聚表,其中,每个所述存储节点超时会聚表中记录有发送所述存储节点超时汇聚表的客户端在预定时长内访问多个存储节点时,所述客户端记录的每个所述存储节点的超时次数;
(2)第一统计单元304,用于统计所述存储节点超时汇聚表中所有的所述存储节点,得到多个目标存储节点;
(3)第二统计单元306,用于根据所述存储节点超时汇聚表,统计所述目标存储节点中每一个存储节点的超时次数;
(4)确定单元308,用于根据所述每一个存储节点的超时次数,从所述目标存储节点中确定出第一存储节点,其中,所述第一存储节点为故障节点;
(5)转移单元310,用于将所述第一存储节点转移到存储节点隔离池中。
可选地,本方案中的每一个客户端可以向一个或者多个存储节点发送请求,在向存储节点发送请求后,有的存储节点可能不能及时响应客户端的请求。此时,客户端对将响应超时的存储节点记录下来,并将超时次数加1,从而得到存储节点超时汇聚表。多个客户端可以将各自记录的存储节点超时汇聚表发送给服务器。服务器接收到多个存储节点超时会汇聚表后,对所有存储节点超时会汇聚表中出现的存储节点进行统计,得到多个目标存储节点。服务器可以统计存储节点超时会汇聚表,得到每一个目标存储节点的超时次数。然后,对目标存储节点的超时次数进行排序,得到排序结果,然后将排序结果中超时次数最多的存储节点格力到存储节点隔离池中。存储节点隔离池中的存储节点无法分配给客户端。通过本方案,提高了隔离存储节点的效率。
例如,同一个IP地址上的三个客户端分别上报了一个存储节点超时会汇聚表,三个存储节点超时会汇聚表中共涉及了四个存储节点。则服务器统计四个存储节点每一个存储节点的超时次数。如第一个存储节点超时会汇聚表中记录了存储节点1超时3次,第二个存储节点超时会汇聚表中记录了存储节点超时1次,第三个存储节点超时会汇聚表中记录了存储节点1超时4次,则存储节点1共超时8次。服务器针对该客户端IP得到四个存储节点的超时次数,将超时次数最多的存储节点隔离到存储节点隔离池中。
可选地,本方案中在统计每一个目标存储节点的超时次数时,将每一个目标存储节点确定为当前节点,然后遍历多个存储节点超时汇聚表。遍历每一个存储节点超时汇聚表中是否记录有当前存储节点的超时次数。得到当前存储节点的超时次数。例如,三个存储节点超时汇聚表中,有两个存储节点超时汇聚表记录有当前存储节点的超时次数,分别为3次和2次,则当前存储节点的超时次数为5次。
可选地,本方案中在确定出目标存储节点中每一个存储节点的超时次数后,可以按照超时次数从大到小的顺序对目标存储节点进行排序,得到排序结果。将排序结果中前N个目标存储节点隔离到存储节点隔离池中。
可选地,本方案中在符合预定条件的情况下,还可以将存储节点隔离池中的存储节点转移出来。例如,可用的存储节点数量大于第一阈值,或者存储节点需求大于第二阈值,或者存储节点隔离池中的存储节点数量大于第三阈值等等。
可选地,本方案中的客户端可以记录上述存储节点超时汇聚表。如客户端可以与一个存储节点建立连接,然后客户端发送请求,若是该存储节点响应超时,则客户端可以记录下该存储节点,并记录下该存储节点响应超时一次。若是在预定时长内,如3秒内,该存储节点超时了多次,则只记录一次。
以下结合一个具体示例进行说明。
本方案解决的问题场景可以为接入客户端和分布式视频云存储系统网络分离部署,接入客户端和视频云存储系统内数据节点(上述存储节点)存在网络异常,而视频云存储系统的元数据服务器因为没有及时感知,仍将异常节点分配给接入客户端进行数据写入而导致文件写入失败。本方案针对该问题提出了一套故障节点的检测与隔离方法,并在该方法的基础上实现了一套故障节点隔离系统,系统主要分为四个模块:故障节点取样模块、故障节点汇聚模块、故障节点隔离决策模块、故障节点选择模块。
本方案所描述的故障节点取样模块可以设置或集成在接入客户端程序中。取样模块分别在接入客户端打开、读、写数据块并产生网络超时后,记录该数据节点的网络超时次数,并在该次记录时间之后的5秒时间内同一数据节点发生的多次网络超时次数仅算作一次。取样模块将数据节点及其超时次数作为一个基本数据节点超时记录单元存储到接入客户端的当前数据节点超时汇聚表中,同时取样模块每隔1分钟将当前数据节点超时汇聚表中的记录转移到数据节点超时汇聚旧表。旧表为上一分钟产生的超时会聚表;在转移过程中如果遇到数据节点超时汇聚旧表中的内容没有被心跳报文及时取走时,旧表中的内容会被强制覆盖,结果可能是接入客户端向元数据服务器少报了一分钟的信息,对整体的影响可忽略不计。取样模块的心跳报文每隔2秒从数据节点超时汇聚旧表中取走最大40个基本记录单元(数据节点、超时次数的组合)汇报给故障节点汇聚模块。汇报时可能会产生报文丢失,此时不做报文的重传和尝试。
本方案所描述的故障节点汇聚模块集成在视频云存储系统的元数据服务器中。接入客户端每成功和元数据服务器建立一条长连接,就需要在汇聚模块的客户端隔离信息管理表中建立一条客户端IP与数据节点隔离对象间的映射记录;如果该记录已经存在则增加记录引用计数;在长连接断开30分钟后引用计数减少一次,当该接入客户端对应的记录引用计数为0时,汇聚模块将映射记录从客户端隔离信息管理表中清除。汇聚模块按照接入客户端的IP作为键值汇聚数据节点隔离信息,且该数据节点隔离信息对同一接入客户端服务器上的其他接入服务也同样生效。汇聚模块的数据节点隔离对象是一组数据节点滑动窗口的集合。结构如图2所示。
滑动窗口大小预设有N个小窗格,每个小窗格记录M时间内的超时信息,在本方案中N预设为60,M预设为1分钟,即滑动窗口至少可记录过去60分钟的超时信息。汇聚模块和决策模块共享该滑动窗口中的数据。取样模块通过2秒一次的心跳报文向汇聚模块汇报数据节点超时信息,汇聚模块获取心跳报文中对应的客户端IP,从客户端隔离信息管理表找到该客户端对应的数据节点隔离信息后,将心跳报文中的数据节点及其超时次数累加到对应数据节点的当前窗格中,同时更新该数据节点窗格总超时计数,便于决策模块进行决策计算。也就是说,本方案中可以在每一分钟记录下每一个数据节点的超时次数,在下一分钟,则重新对每一个数据节点的超时次数进行统计(时间间隔也可以不为一分钟,根据实际情况可以灵活设置)。
本方案所描述的故障节点决策模块,每隔M时间(1分钟)轮询客户端隔离信息管理表;将每个客户端的当前滑动窗格标识向前推进一格,由于N个窗格循环使用,当窗格需要被重复利用时,需要先清除窗格中的历史次数并同步更新数据节点窗格总超时计数;窗格向前滑动一格后,决策模块还需要对所有已记录的数据节点的窗格总超时计数从大到小排序,选取当前系统最大可隔离数据节点(T)个数的数据节点,作为接下来M时间内该接入客户端的隔离节点池。其中T为动态配置选项,根据项目实际数据节点个数进行调整配置,当前系统预设的默认值T为10个,即使在线数据节点数达到1000个,每次最大可隔离的数据节点数为10个,保证数据节点的负载均衡。
元数据服务器在分配数据节点时,需要排除存储节点隔离池(数据节点隔离池)中的数据节点。
在数据节点隔离后,还可以在预定情况下,将隔离的数据节点取出。如以下情况的至少之一:可用存储节点数量大于或等于第一阈值;当前存储节点需求大于或等于第二阈值;所述存储节点隔离池中的存储节点数量大于第三阈值。在选择被隔离的数据节点时,可以通过如下方法:
1)是否需要从隔离池中取出数据节点:后台元数据服务器使能隔离节点池选择策略;是否需要取。2)当前在线数据节点数量需要超过系统当前支持的最大冗余模式所需要的最大节点个数,元数据服务器才可以从隔离节点池中选择隔离节点并取出,其中最大冗余模式由元数据服务器动态学习和调整。3)根据在线节点数计算当前系统的实时可取出的数据节点数=(当前系统在线节点数–系统最大冗余模式所需最大节点数)*隔离节点比例,其中隔离节点比例动态配置成20%;4)计算本次可取出的数据节点数量X=min(系统实时可隔离节点数,系统最大可隔离数据节点);5)从隔离节点池中选择X个数据节点,当隔离池中的节点数少于X时,取出隔离池中的所有数据节点。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种存储节点隔离方法,应用于分布式存储系统中,其特征在于,包括:
获取多个客户端发送的存储节点超时汇聚表,其中,每个所述存储节点超时会聚表中记录有发送所述存储节点超时汇聚表的客户端在预定时长内访问多个存储节点时,所述客户端记录的每个所述存储节点的超时次数;
统计所述存储节点超时汇聚表中所有的所述存储节点,得到多个目标存储节点;
根据所述存储节点超时汇聚表,统计所述目标存储节点中每一个存储节点的超时次数;
根据所述每一个存储节点的超时次数,从所述目标存储节点中确定出第一存储节点,其中,所述第一存储节点为故障节点;
将所述第一存储节点转移到存储节点隔离池中。
2.根据权利要求1所述的方法,其特征在于,所述根据所述存储节点超时汇聚表,统计所述目标存储节点中每一个存储节点的超时次数包括:
将所述目标存储节点中的每一个存储节点确定为当前存储节点,执行以下步骤,直到遍历所述目标存储节点:
获取所述多个客户端发送的所述存储节点超时汇聚表中,每一个所述存储节点超时会聚表中记录的所述当前存储节点的第一超时次数;
将获取的多个所述第一超时次数的和确定为所述当前存储节点的超时次数。
3.根据权利要求1所述的方法,其特征在于,所述根据所述每一个存储节点的超时次数,从所述目标存储节点中确定出第一存储节点包括:
按照每一个目标存储节点的超时次数由大到小对所述目标存储节点进行排序,得到排序结果;
将所述排序结果中的前N个所述目标存储节点确定为所述第一存储节点,其中,所述N为正整数。
4.根据权利要求1所述的方法,其特征在于,在将所述第一存储节点转移到存储节点隔离池中之后,所述方法还包括:
在符合预定条件的情况下,将第二存储节点从所述存储节点隔离池中取出,其中,所述第二存储节点为所述隔离池中的一个或多个节点,所述预定条件包括以下至少之一:
可用存储节点数量大于或等于第一阈值;
当前存储节点需求大于或等于第二阈值;
所述存储节点隔离池中的存储节点数量大于第三阈值。
5.根据权利要求4所述的方法,其特征在于,所述在符合预定条件的情况下,将第二存储节点从所述存储节点隔离池中取出包括:
计算所述第二存储节点的实时可提取数量;
计算所述第二存储节点的最大可提取数量;
在所述实时可提取数量小于或等于所述最大可提取数量的情况下,确定从所述存储节点隔离池中取出X个所述第二存储节点,其中,所述X为所述实时可提取数量;
在所述实时可提取数量大于所述最大可提取数量的情况下,确定从所述存储节点隔离池中取出X个所述第二存储节点,其中,所述X为所述最大可提取数量;
从所述隔离池中取出所述X个所述第二存储节点。
6.根据权利要求5所述的方法,其特征在于,所述计算所述第二存储节点的实时可提取数量包括:
获取当前系统在线的存储节点的数量与所述系统最大冗余模式所需的最大的存储节点的数量的差;
将所述差与预定比例的乘积确定为所述实时可提取数量。
7.根据权利要求5所述的方法,其特征在于,所述从所述隔离池中取出所述X个所述第二存储节点包括:
在所述隔离池中的存储节点的数量小于所述X的情况下,取出所述隔离池中的所有的所述存储节点。
8.根据权利要求1至7任意一项所述的方法,其特征在于,在获取多个客户端发送的存储节点超时汇聚表之前,所述方法还包括:
在所述多个客户端中的每一个客户端访问所述存储节点产生网络超时的情况下,记录产生所述网络超时的所述存储节点,并增加所述存储节点的超时次数一次。
9.根据权利要求8所述的方法,其特征在于,所述在所述多个客户端中的每一个客户端访问所述存储节点产生网络超时的情况下,记录产生所述网络超时的所述存储节点,并增加所述存储节点的超时次数一次包括:
在预定时间间隔内所述存储节点产生多次网络超时的情况下,增加所述存储节点的超时次数一次。
10.一种存储节点隔离装置,应用于分布式存储系统中,其特征在于,包括:
获取单元,用于获取多个客户端发送的存储节点超时汇聚表,其中,每个所述存储节点超时会聚表中记录有发送所述存储节点超时汇聚表的客户端在预定时长内访问多个存储节点时,所述客户端记录的每个所述存储节点的超时次数;
第一统计单元,用于统计所述存储节点超时汇聚表中所有的所述存储节点,得到多个目标存储节点;
第二统计单元,用于根据所述存储节点超时汇聚表,统计所述目标存储节点中每一个存储节点的超时次数;
确定单元,用于根据所述每一个存储节点的超时次数,从所述目标存储节点中确定出第一存储节点,其中,所述第一存储节点为故障节点;
转移单元,用于将所述第一存储节点转移到存储节点隔离池中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010490931.XA CN111698120B (zh) | 2020-06-02 | 2020-06-02 | 存储节点隔离方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010490931.XA CN111698120B (zh) | 2020-06-02 | 2020-06-02 | 存储节点隔离方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111698120A true CN111698120A (zh) | 2020-09-22 |
CN111698120B CN111698120B (zh) | 2022-10-18 |
Family
ID=72479193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010490931.XA Active CN111698120B (zh) | 2020-06-02 | 2020-06-02 | 存储节点隔离方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111698120B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363416A (zh) * | 2021-12-29 | 2022-04-15 | 杭州趣链科技有限公司 | 基于区块链的跨链处理方法、装置、存储介质及服务器 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080104259A1 (en) * | 2006-10-28 | 2008-05-01 | Lefevre Marc | Methods and systems for communicating with storage devices in a storage system |
CN106385341A (zh) * | 2016-08-31 | 2017-02-08 | 福建天晴数码有限公司 | 客户端监控线程的方法及其系统 |
CN106407083A (zh) * | 2016-10-26 | 2017-02-15 | 华为技术有限公司 | 故障检测方法及装置 |
US9602424B1 (en) * | 2014-03-31 | 2017-03-21 | Amazon Technologies, Inc. | Connection balancing using attempt counts at distributed storage systems |
CN107426051A (zh) * | 2017-07-19 | 2017-12-01 | 北京华云网际科技有限公司 | 分布式集群系统中节点的工作状态的监测方法、装置及系统 |
CN108173672A (zh) * | 2017-12-04 | 2018-06-15 | 华为技术有限公司 | 检测故障的方法和装置 |
CN109376029A (zh) * | 2018-09-27 | 2019-02-22 | 郑州云海信息技术有限公司 | 一种scsi硬盘异常超时的处理方法及处理系统 |
CN109639755A (zh) * | 2018-10-23 | 2019-04-16 | 平安科技(深圳)有限公司 | 关联系统服务器解耦方法、装置、介质及电子设备 |
-
2020
- 2020-06-02 CN CN202010490931.XA patent/CN111698120B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080104259A1 (en) * | 2006-10-28 | 2008-05-01 | Lefevre Marc | Methods and systems for communicating with storage devices in a storage system |
US9602424B1 (en) * | 2014-03-31 | 2017-03-21 | Amazon Technologies, Inc. | Connection balancing using attempt counts at distributed storage systems |
CN106385341A (zh) * | 2016-08-31 | 2017-02-08 | 福建天晴数码有限公司 | 客户端监控线程的方法及其系统 |
CN106407083A (zh) * | 2016-10-26 | 2017-02-15 | 华为技术有限公司 | 故障检测方法及装置 |
CN107426051A (zh) * | 2017-07-19 | 2017-12-01 | 北京华云网际科技有限公司 | 分布式集群系统中节点的工作状态的监测方法、装置及系统 |
CN108173672A (zh) * | 2017-12-04 | 2018-06-15 | 华为技术有限公司 | 检测故障的方法和装置 |
CN109376029A (zh) * | 2018-09-27 | 2019-02-22 | 郑州云海信息技术有限公司 | 一种scsi硬盘异常超时的处理方法及处理系统 |
CN109639755A (zh) * | 2018-10-23 | 2019-04-16 | 平安科技(深圳)有限公司 | 关联系统服务器解耦方法、装置、介质及电子设备 |
Non-Patent Citations (1)
Title |
---|
吴玉春等: "扩展心跳故障检测器", 《计算机工程与设计》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363416A (zh) * | 2021-12-29 | 2022-04-15 | 杭州趣链科技有限公司 | 基于区块链的跨链处理方法、装置、存储介质及服务器 |
CN114363416B (zh) * | 2021-12-29 | 2024-01-23 | 杭州趣链科技有限公司 | 基于区块链的跨链处理方法、装置、存储介质及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN111698120B (zh) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0994602B1 (en) | Computer system and network performance monitoring | |
US7050931B2 (en) | Computing performance thresholds based on variations in network traffic patterns | |
CN106709003A (zh) | 基于Hadoop的海量日志数据处理方法 | |
US20130212440A1 (en) | System and method for virtual system management | |
US20150039749A1 (en) | Detecting traffic anomalies based on application-aware rolling baseline aggregates | |
EP2869495B1 (en) | Node de-duplication in a network monitoring system | |
CN104966006A (zh) | 基于云变平台的智能人脸识别系统 | |
CN103152352A (zh) | 一种基于云计算环境的全信息安全取证监听方法和系统 | |
CN104753994A (zh) | 基于集群服务器系统的数据同步方法及其装置 | |
CN105610648A (zh) | 一种运维监控数据的采集方法及服务器 | |
WO2011017955A1 (zh) | 一种告警数据分析的方法及其系统 | |
US20220286373A1 (en) | Scalable real time metrics management | |
CN113364624A (zh) | 基于边缘计算的混合云流量采集方法和系统 | |
CN112491719A (zh) | 网络节点的选择方法、设备及存储介质 | |
US20130179122A1 (en) | Method and Device for Measuring System Performance in Real Time | |
CN111698120B (zh) | 存储节点隔离方法和装置 | |
CN103716195A (zh) | 管理云端主机的监控系统及其监控方法 | |
CN112751722B (zh) | 数据传输质量监控方法和系统 | |
CN108464031B (zh) | 电信网络中的基于数据库的冗余 | |
EP3641222A1 (en) | Method, apparatus and system for monitoring data traffic | |
JP5684748B2 (ja) | ネットワーク品質監視装置及びネットワーク品質監視方法 | |
CN111694721A (zh) | 一种微服务的故障监测方法和装置 | |
CN109510730A (zh) | 分布式系统及其监控方法、装置、电子设备及存储介质 | |
WO2015086070A1 (en) | Technique for counting objects in a telecommunications network | |
CN110798660A (zh) | 基于云联邦音视频融合平台的一体化运维系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |