客户端会话控制方法及分布式存储系统与流程

未命名 08-14 阅读:93 评论:0


1.本发明涉及分布式存储系统技术领域,尤其涉及一种客户端会话控制方法及分布式存储系统。


背景技术:

2.iscsi(internet small computer system interface)协议是一种协议族,指小型计算机系统接口,属于iscsi协议族中的传输层协议,在iscst协议基础上增加一层封装,将iscsi命令与协议数据单元(protocol data unit,pdu)中,通过tcp/ip网络,使得initiator端与target端进行通信。启动器(initiator端)是与支持iscsi协议的存储设备连接的应用客户端。target端是iscsi的存储设备,target端包括设备服务器和队列管理,如iscsi磁盘阵列柜、iscsi磁带柜等。initiator端部署于客户端(client),响应initiator端的target端部署于组成分布式存储系统的各个节点(node)中。initiator端通过vip(虚拟ip地址)访问分布式存储系统的各个节点,并与某个节点建立连接后通过该节点进行数据读写操作。
3.公开号为cn112948128a的中国发明专利公开了《target端的选择方法、系统及计算机可读介质》,该现有技术旨在因分布式存储系统中各个及节点与客户端之间发生网络故障或者存储故障时需要依靠后台管理人员以人工手动方式选择新的用以响应客户端请求的target端所存在的不可自动选择target端的技术缺陷。然而,如果响应客户端的客户端会话的节点已经发生了故障或者不可用时,即使再重新选择target端或者节点,则依然存在服务发生中断的缺陷,且需要执行无序且无意义的节点切换操作,并由此导致资源浪费。此外,公开号为cn106161120a的中国发明专利公开了《可动态均衡负载的分布式元数据管理方法》,该现有技术旨在解决分布式元数据服务器的异构性能差异导致的负载均衡问题,因此对本技术所旨在解决的技术问题无实质性的参考价值。
4.最后,参图1所示,对于包含node1~node3的分布式存储系统而言,node2作为主节点,node1与node3为备节点,并组成一个存储集群以作为分布式存储系统的后端存储,vip服务位于node2。如果node2出现故障,则基于vip服务将客户端的访问请求重定向至node1或者node3。重定向的具体过程包括如下步骤。首先,客户端1发送访问请求至node2,然后由node2从存储集群中随机地选择一个存活的节点(例如,node2),然后由客户端1连接node1,从而使得客户端1接收到返回的node1的ip192.168.10.11,从而由客户端1登录到node1从而建立客户端会话控制。但是,如果对于存在多个客户端(例如,图1中的客户端1、客户端2、客户端3等)访问场景时,由于node2只会随机地选择一个存活的节点(例如,node1或者node3)。然而,node1与node3的基于存储带宽所形成的io压力是动态变化且不均衡的,因此可能导致在重定向过程中多个客户端可能会被重定向至同一个node,从而进一步导致被重定向的节点的io压力过重,并导致无法充分利用各个节点的存储带宽。由此可见,上述现有技术均无法解决节点发生故障前提前对客户端发起的会话控制重定向至存活且io压力较小的节点中的技术问题。同时,单一地根据各节点的资源负载消耗以确定重定向所确定的
节点的策略,也存在重定向确定策略不灵活的缺陷。
5.有鉴于此,有必要对现有技术中的客户端会话控制方法予以改进,以解决上述问题。


技术实现要素:

6.本发明的目的在于揭示一种客户端会话控制方法及分布式存储系统,用以解决现有技术中所存在的上述技术问题,并尤其旨在解决基于iscsi系统技术场景中在节点发生故障前提前对客户端发起的客户端会话控制重定向至存活且io压力值较小的节点,以充分利用分布式存储系统中各个节点的节点存储带宽,以确保用户体验。
7.为实现上述目的之一,本发明提供了客户端会话控制方法,包括以下步骤:
8.s1、确定当前状态中各节点基于客户端发起的客户端会话所形成的io压力值,以确定当前状态中各节点的当前总io压力值;
9.s2、确定当前状态中当前总io压力值最大的节点,并将剩余节点所形成的当前总io压力值由高至低进行排序,记录对应节点的会话id,以形成空闲队列;
10.s3、自所述空闲队列中选择当前总io压力值最小的节点作为响应自所述当前总io压力值最大的节点中响应任一客户端会话的节点,以对分布式集群系统中节点对客户端发起的客户端会话予以动态切换。
11.作为本发明的进一步改进,还包括:定期监控各节点的当前总io压力值,动态地修改空闲队列中的节点的会话id。
12.作为本发明的进一步改进,所述确定当前状态中各节点基于客户端发起的客户端会话所形成的io压力值按照设定周期以轮询方式予以确定。
13.作为本发明的进一步改进,所述io压力值由独立于各节点的io压力检测单元独立地对各节点中的target端根据所述设定周期进行监测予以确定;所述空闲队列保存至与所述io压力检测单元连接的zookeeper服务端。
14.作为本发明的进一步改进,还包括:确定各节点的io压力值的上限值,并在任一节点的当前总io压力值大于或者等于所述上限值时,由所述io压力检测单元触发节点对客户端发起的客户端会话予以动态切换的事件。
15.作为本发明的进一步改进,所述步骤s3包括如下子步骤:
16.s31、当所述节点的当前总io压力值大于或者等于所述上限值时,确定当前总io压力值大于或者等于所述上限值的所述节点所形成的全部客户端会话;
17.s33、计算当前总io压力值小于所述上限值的节点在当前状态中所形成的剩余io压力值;
18.s34、自所述子步骤s31中的全部客户端会话中至少剔除一个客户端会话,自所述空闲队列中选择剩余io压力值最大的节点作为所述当前总io压力值最小的节点,以作为响应所述被剔除客户端会话的节点。
19.作为本发明的进一步改进,所述子步骤s31与子步骤s33之间还包括:
20.子步骤s32、对所述节点的当前总io压力值大于或者等于所述上限值的节点中的全部客户端会话分别形成的io压力值进行排序,在形成较小io压力值所对应的客户端会话的客户端与自所述空闲队列中被选择的当前总io压力值最小的节点之间根据所述target
端的ip地址重新建立会话连接。
21.作为本发明的进一步改进,还包括:
22.绑定target端的ip地址与会话id并保存至所述空闲队列,在自所述空闲队列中选择当前总io压力值最小的节点作为响应自所述当前总io压力值最大的节点中所述被剔除客户端会话的节点过程中,自所述空闲队列中调用会话id,从所述空闲队列中选择当前总io压力值最小的节点以作为响应所述被剔除客户端会话的节点,以在形成所述被剔除客户端会话的客户端与所述当前总io压力值最小的节点之间重新建立会话连接,并在动态切换后对zookeeper服务端中保存的空闲队列予以刷新,以清空所述空闲队列中的会话id与target ip。
23.作为本发明的进一步改进,每个设定周期内仅对当前状态中当前总io压力值最大的节点中的一个客户端会话予以动态切换。
24.基于相同发明思想,本技术还揭示了一种分布式存储系统,包括:
25.形成至少一客户端的前端,
26.部署至少两个节点的后端存储,所述后端存储中的节点响应于客户端发起的会话请求,以建立形成客户端会话的连接,所述后端存储运行如上述任一项发明创造所述的客户端会话控制方法。
27.与现有技术相比,本发明的有益效果是:
28.本技术所揭示的客户端控制方法能够将响应客户端发起的客户端会话的节点动态地切换至存在剩余io压力值的节点,以将动态切换所确定的节点作为响应客户端会话的节点,从而在当前状态中各节点的当前总io压力值超过各节点所确定的io压力值的上限值并导致节点发生故障前,提前对客户端发起的客户端会话控制重定向至存活且io压力较小的节点,从而取得了充分利用分布式存储系统中各个节点的节点存储带宽的技术效果,且在动态切换以实现响应客户端会话的重定向过程中对用户无感知,从而进一步提高了用户体验及分布式存储系统运行的可靠性。
附图说明
29.图1为现有技术中一种分布式存储系统的拓扑图;
30.图2为本发明客户端会话控制方法的整体流程图;
31.图3为本发明客户端会话控制方法中步骤s3的详细流程图;
32.图4为采用本发明所揭示的客户端会话控制方法的分布式存储系统在客户端会话在切换前的示意图;
33.图5为基于图4所示出的实例场景将响应客户端2的客户端会话从node1动态切换为node3的示意图;
34.图6为本发明一种分布式存储系统的拓扑图。
具体实施方式
35.下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。
36.本具体实施方式所揭示的客户端会话控制方法旨在对分布式存储系统中用于响应客户端发起的访问请求所形成的客户端会话,并在客户端与节点之间建立会话连接,以通过某个具体的节点响应访问请求。鉴于分布式存储系统中的各节点在响应客户端会话(即,session)所形成的io压力值是动态变化的,而每个节点的存储带宽的设置却不必然相同,在大部分场景中,每个节点的存储带宽通常存在一定区别,而客户端发起的客户端会话所形成的io压力值及客户端会话的数量也是存在的区别及动态变化的。每个节点设置的存储带宽如果不同,则导致每个节点所形成的io压力值的上限值存在不同。
37.基于图4与图5所揭示的实例,对本具体实施方式所揭示的客户端会话控制方法的具体实现过程予以简要阐述。
38.客户端会话控制方法,包括以下步骤s1至步骤s3。
39.步骤s1、确定当前状态中各节点基于客户端发起的客户端会话所形成的io压力值,以确定当前状态中各节点的当前总io压力值。
40.在本实施例中,将一段时间(例如,24小时)按照设定周期(例如,5分钟)切分为若干个连续的当前状态持续时间段,在每一个设定周期内优选为通过io压力检测单元20以轮询方式监测每个节点所部署的target端,以确定在当前状态中的每个节点所形成当前总io压力值及每个客户端与target端所建立的不同的客户端会话所分别形成的io压力值。
41.参图4所示,图4示出了应用本发明客户端会话控制方法的分布式存储系统的后端存储50中包含三个节点(即,node1~node3)的响应于七个客户端所形成的七个客户端会话在当前状态中的一种实例。客户端1~客户端7逻辑上独立于后端存储50,并可被理解为供用户发起访问请求并可视化显示后端存储50反馈结果的一种物理态/虚拟态的计算机装置。客户端1~客户端7部署于前端40,且均可视为一个与节点(即,node1或者node2或者node3)所部署的target端的initiator端(未示出)。结合图6所示,node1中部署target端11,node2中部署target端12,node2中部署target端13。客户端会话(即,session)在target端11(或者target端12、target端13)与客户端1~客户端3(或者客户端4~客户端5、客户端6~客户端7)。
42.在本实施例中,每个节点(node)中均部署一个target端,node1~node3所设置的io压力值的上限值可以相同,也可以不同。本实施例以node1~node3的io压力值的上限值为范例予以示范性阐述,本领域技术人员可知每个节点的io压力值的上限值的不同仅会导致若干客户端会话所形成的当前总io压力值突破每个节点的io压力值的上限值触发已经突破上限值的节点的一个或者多个客户端会话切换至总io压力值较小或者最小的节点的动态切换事件的触发敏感度,以实现对不同io压力值的客户端会话的动态切换效果,且不同的io压力值的上限值也决定了每个节点所能够响应的不同io压力值的客户端会话的数量。需要说明的是,node1~node3所设置的io压力值的上限值不同时,反而能够更好地适应由于组成分布式存储系统的节点所具有物理配置的随机性的应用场景。由于分布式存储系统的节点通常是由一台物理机或者物理机上运行的一个进程所定义的,因此不同计算机架构的物理机及网络环境及性能会存在一定差异。因此,在应用分布式存储系统的集群服务器中,采用本实施例所揭示的客户端会话控制方法反而能够更为贴合实际的运行环境,通过为不同节点设置的不同的io压力值的上限值(或简称“上限值”),从而使得最终部署形成的分布式存储系统能够更好地响应客户端发起并建立的客户端会话,以确保良好的用户体
验。
43.具体而言,确定当前状态中各节点基于客户端发起的客户端会话所形成的io压力值按照设定周期以轮询方式予以确定,示例性地,设定周期可设定为5分钟或者更短。同时,客户端与节点建立客户端会话的重新登录(relogin)时间为5秒,因此,本实施例中的设定周期可在大于5秒至5分钟之间被任意地设定。
44.示例性地,每个设定周期内仅对当前状态中当前总io压力值最大的节点中的一个客户端会话予以动态切换。结合图4与图5所示,在本实施例中仅将突破node1所设置的io压力值的上限值的客户端2所形成的客户端会话切换至node3。由于剔除客户端2与node1之间的客户端会话并重新在客户端2与node3之间执行重定向过程中,也需要客户端2重新登录到node3,而重新登录操作也需要消耗io资源等资源开销。因此,本实施例最优选为仅将一个客户端会话予以动态切换,以避免客户端会话在动态切换过程中因重新登录所导致的非必要的io资源(即,存储带宽)等资源开销及动态切换所花费的时间,以确保整个分布式存储系统100的稳定性与对客户端响应的可靠性及实时性。
45.优选地,本实施例中的客户端会话控制方法还包括:定期监控各节点的当前总io压力值,动态地修改空闲队列31中的节点的会话id。io压力值由独立于各节点的io压力检测单元20独立地对各节点中的target端根据设定周期进行监测予以确定。空闲队列31保存至与io压力检测单元20连接的zookeeper服务端30。同时结合图6所示,本实施例所揭示的客户端会话控制方法还包括:确定各节点的io压力值的上限值,并在任一节点的当前总io压力值大于或者等于上限值时,由io压力检测单元20触发节点对客户端发起的客户端会话予以动态切换的事件。各节点的io压力值的上限值可被设置于小于或者等于对应节点实际形成的最大io压力值,以确保性能冗余。
46.步骤s2、确定当前状态中当前总io压力值最大的节点,并将剩余节点所形成的当前总io压力值由高至低进行排序,记录对应节点的会话id,以形成空闲队列31。
47.具体而言,结合前文所述,由于客户端1~客户端3与node1建立了三个客户端会话,且形成的io压力值分别为500mb/s、300mb/s及200mb/s;客户端4~客户端5与node2建立了两个客户端会话,且形成的io压力值分别为200mb/s、100mb/s;客户端6~客户端7与node3建立了两个客户端会话,且形成的io压力值分别为100mb/s、100mb/s。node1在第一个当前状态中当前状态中当前总io压力值最大的节点,且node1与多个客户端所形成的当前总io压力值已经突破了上限值,并导致与node1的一个客户端会话发生动态切换。因此,在本实施例中,除了node1之外,node2与node3所形成的客户端会话的会话id及节点中的target端的ip地址均被保存至空闲队列31中,以作为后续被选择用于响应被动态切换的客户端会话的节点。同时,node2从分布式存储系统的架构而言属于主节点(vip节点),node1与node3均为从节点。当客户端2所发起的客户端会话重定向至node3时,node2与客户端2之间会重新选择响应客户端2发的客户端会话所承载的node3的会话id,并通知客户端2,然后由客户端2与node3重新建立300mb/s的客户端会话,而在此动态切换过程中,客户端1、客户端3~客户端7所分别建立的客户端会话保持不变。因此在对客户端2所形成的客户端会话动态切换过程中,不会对其他客户端会话造成影响。
48.步骤s3、自所述空闲队列31中选择当前总io压力值最小的节点作为响应自所述当前总io压力值最大的节点中响应任一客户端会话的节点,以对分布式集群系统中节点对客
户端发起的客户端会话予以动态切换。
49.在第一个当前状态中,由于node2与node3均未突破上限值,因此可将node2与node3所对应的会话id保存至空闲队列31中。node2在第一个当前状态中当前状态中当前总io压力值相对于node3在第一个当前状态中当前状态中当前总io压力值较大。因此,在第一个当前状态中将node3作为第一个当前状态中当前总io压力值最小的node,从而将node3作为响应被动态切换的且在第一个当前状态中与node1建立会话连接的一个客户端会话的节点。在本实施例中,第一个当前状态与第二当前状态分别为时间上存在时间上的先后顺序且分属于不同设定周期的两个当前状态。
50.如图4与图6所示,当前状态是指在第一个设定周期内所保持形成的相对稳定状态,并在第二个设定周期内会形成另一个相对稳定状态。因此,本实施例所揭示的客户端会话控制方法,旨在对分布式存储系统100及所含节点未出现故障或者不可用的情况发生前,对当前总io压力值最大的节点中的一个或者多个客户端会话动态切换至当前总io压力值最小的节点上,以实现客户端会话的重定向操作。例如,图4为第一个当前状态中七个客户端所形成的七个客户端会话的实例,图5为将客户端2所形成的客户端会话由原本为node1响应动态切换为由node3响应的动态切换过程,从而将客户端2所发起的客户端会话重定向至node3。假设node1~node3的上限值均为1000mb/s,那么此时node3由于其当前总io压力值仅为200mb/s,因此node3被认定为当前总io压力值最小的节点,此时将客户端2所形成的客户端会话重定向至node3,且在客户端2与node3之间重新建立会话连接。
51.具体而言,参图4所示,第一个当前状态中,客户端1~客户端3分别形成io压力值分别为500mb/s、300mb/s及200mb/s;客户端4~客户端5分别形成io压力值分别为200mb/s与100mb/s;客户端6~客户端7分别形成io压力值分别为100mb/s与100mb/s。此时,在第一个当前状态中,node1的当前总io压力值为1000mb/s,node2的当前总io压力值为300mb/s,node3的当前总io压力值为200mb/s。若各节点的io压力值的上限值被设置为1000mb/s(或者900mb/s),则客户端1~客户端3形成的io压力值之和已经突破了node1所设置的io压力值的上限值,虽然此时客户端1~客户端3与node1之间的三个客户端会话未必出现延迟或者中断,但已经出现了较高的风险,需要执行本实施例所揭示的动态切换,并形成图5所示出的实例。本实施例中的“突破”含本数,且是指大于或者等于节点所预先设置的io压力值的上限值。
52.如图5所示,在第二个当前状态(第二个当前状态为第一个当前状态的后续状态)中,客户端2所形成的客户端会话已经动态切换至node3,此时node1的当前总io压力值为700mb/s,node2的当前总io压力值为300mb/s,node3的当前总io压力值为500mb/s,从而确保了每个节点的当前总io压力值均不超过节点所设置的io压力值的上限值。本实施例中的“不超过”不含本数,且是指小于节点所预先设置的io压力值的上限值。
53.为了避免动态切换客户端会话对响应被动态切换的客户端会话的节点突破上限值,本实施例进一步对步骤s3予以如下具体技术方案。
54.参图3所示,步骤s3包括如下子步骤:
55.子步骤s31、当所述节点的当前总io压力值大于或者等于所述上限值时,确定当前总io压力值大于或者等于所述上限值的所述节点所形成的全部客户端会话。结合图4所示,node1已经突破了上限值,且形成了三个客户端会话,且客户端1~客户端3分别形成io压力
值分别为500mb/s、300mb/s及200mb/s。
56.子步骤s32、对所述节点的当前总io压力值大于或者等于所述上限值的节点中的全部客户端会话分别形成的io压力值进行排序,在形成较小io压力值所对应的客户端会话的客户端与自空闲队列31中被选择的当前总io压力值最小的节点(即,node3)之间根据所述target端的ip地址(即,target11的ip地址)重新建立会话连接。node2与node3均为较小io压力值的节点,并均可作为响应客户端2的客户端会话的节点。
57.子步骤s33、计算当前总io压力值小于所述上限值的节点在当前状态中所形成的剩余io压力值。重新结合图4所示,在第一个当前状态中,node2所形成的剩余io压力值为700mb/s,node3所形成的剩余io压力值为800mb/s,因此响应被动态切换的节点优选为node3。同时,在确定响应客户端2的客户端会话的节点过程中,优选为将形成io压力值较小的客户端会话予以动态切换并需要综合考虑全部节点在当前状态中的io压力值的均衡性,以充分利用各节点的存储带宽。例如,node1的三个客户端会话所分别形成的io压力值之和已经突破了上限值,在动态切换过程中,还可将客户端3与node1之间所建立的客户端会话动态切换至node3,只要满足动态切换后的node3不突破上限值即可。
58.子步骤s34、自所述子步骤s31中的全部客户端会话中至少剔除一个客户端会话(即,客户端2与node1在第一个当前状态中所形成的客户端会话),自所述空闲队列31中选择剩余io压力值最大的节点(即,node3)作为所述当前总io压力值最小的节点,以作为响应所述被剔除客户端会话的节点。在本实施例中,被剔除一个客户端会话在第一个当前状态中所独立形成的io压力值优选为较小的io压力值所对应的客户端会话,以防止动态迁移后的节点突破上限值,并避免出现动态切换的无序性的技术问题。
59.更优选地,本实施例所揭示的客户端会话控制方法还包括:绑定target端的ip地址与会话id并保存至空闲队列31,在自空闲队列31中选择当前总io压力值最小的节点作为响应自当前总io压力值最大的节点中被剔除客户端会话的节点过程中,自空闲队列31中调用会话id,从空闲队列31中选择当前总io压力值最小的节点(即,node3)以作为响应被剔除客户端会话的节点,以在形成被剔除客户端会话的客户端与当前总io压力值最小的节点之间重新建立会话连接,并在动态切换后对zookeeper服务端30中保存的空闲队列31予以刷新,以清空该空闲队列31中的会话id与target ip。在本实施例中,作为vip节点的node2在收到客户端2的重新登录请求后,执行对比会话id的作业,对比会话的作业由作为vip节点的node2与空闲队列31所保存的node3的target ip,并将node3的target ip(192.168.10.13)返回客户端2,以引导客户端2与node3重新建立客户端会话,并在将客户端2的客户端会话动态切换至node3的重定向过程中将客户端2的会话id保持不变,从而在后续的执行周期内如果发生某个节点所形成的当前总io压力值突破上限值时,即使突破上限值的节点所承载的客户端会话不发生延迟或者中断,突破上限值的节点即使不发生宕机或者不可用时,提前予以动态切换,以将一个或者多个客户端会话动态切换至当前总io压力值最小的节点,以避免发生突破上限值的节点发生宕机或者不可用,从而确保分布式存储系统100的可靠性与稳定性,从而确保了用户体验。
60.本实施例所揭示的客户端会话控制方法可运行于基于iscsi协议的分布式存储系统100中,且该分布式存储系统100可被进一步部署于形成云服务或者其他支持各种在线应用的物理服务器或者虚拟机服务器或者超融合系统,以支持多节点高并发的访问请求的应
用场景。
61.基于上述实施例,本技术还揭示了一种分布式存储系统100,包括:
62.形成至少一客户端的前端40,部署至少两个节点的后端存储50,后端存储50中的节点(例如,node1~node3)响应于客户端(例如,客户端1~客户端7)发起的会话请求,以建立形成客户端会话的连接,后端存储50运行如上述任一具体实施方式所揭示的客户端会话控制方法。node1中部署target端11,node2中部署target端12,node2中部署target端13。客户端会话被建立于客户端与target端之间。
63.后端存储50中部署一io压力监测单元20,空闲队列31保存至与io压力检测单元20连接的zookeeper服务端30。进一步的,zookeeper服务端30可被部署于独立于后端存储50的一个数据库或者逻辑上独立于后端存储50的计算机装置等能够保存空闲队列31的装置。
64.因此,本实施例所揭示的一种分布式存储系统100在对某个节点响应客户端所形成的客户端会话所形成的当前总io压力值突破上限值时,能够以前将一个或者多个客户端会话重定向至当前总io压力值最小(或者相对较小)的节点上,且这个动态切换过程不需要介入管理员或者用户所施加的人工干预,并能够减少人工选择target端所可能存在的节点选定错误或者选出的节点在当前状态中已经突破上限值而无法有效地响应用户发起的客户端会话的不良情形,并且本实施例所揭示的客户端控制方法在整个动态选择剩余io压力值最大节点(例如node3)或者剩余io压力值较大的节点(例如,node2)的过程充分考虑到了各个节点在设定周期内的io负载情况,从而有效地避免了节点间业务冲突的发生,并能够充分且动态地利用各节点所具有的存储带宽资源。本实施例所揭示的一种分布式存储系统100可被进一步部署于形成云服务或者其他支持各种在线应用的物理服务器或者虚拟机服务器或者超融合系统,以支持多节点高并发的访问请求的应用场景。
65.本实施例中的客户端会话控制方法的具体实现方式参前述具体实施例所示,在此不再赘述。
66.上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
67.对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
68.此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

技术特征:
1.客户端会话控制方法,其特征在于,包括以下步骤:s1、确定当前状态中各节点基于客户端发起的客户端会话所形成的io压力值,以确定当前状态中各节点的当前总io压力值;s2、确定当前状态中当前总io压力值最大的节点,并将剩余节点所形成的当前总io压力值由高至低进行排序,记录对应节点的会话id,以形成空闲队列;s3、自所述空闲队列中选择当前总io压力值最小的节点作为响应自所述当前总io压力值最大的节点中响应任一客户端会话的节点,以对分布式集群系统中节点对客户端发起的客户端会话予以动态切换。2.根据权利要求1所述的客户端会话控制方法,其特征在于,还包括:定期监控各节点的当前总io压力值,动态地修改空闲队列中的节点的会话id。3.根据权利要求1所述的客户端会话控制方法,其特征在于,所述确定当前状态中各节点基于客户端发起的客户端会话所形成的io压力值按照设定周期以轮询方式予以确定。4.根据权利要求3所述的客户端会话控制方法,其特征在于,所述io压力值由独立于各节点的io压力检测单元独立地对各节点中的target端根据所述设定周期进行监测予以确定;所述空闲队列保存至与所述io压力检测单元连接的zookeeper服务端。5.根据权利要求4所述的客户端会话控制方法,其特征在于,还包括:确定各节点的io压力值的上限值,并在任一节点的当前总io压力值大于或者等于所述上限值时,由所述io压力检测单元触发节点对客户端发起的客户端会话予以动态切换的事件。6.根据权利要求4所述的客户端会话控制方法,其特征在于,所述步骤s3包括如下子步骤:s31、当所述节点的当前总io压力值大于或者等于所述上限值时,确定当前总io压力值大于或者等于所述上限值的所述节点所形成的全部客户端会话;s33、计算当前总io压力值小于所述上限值的节点在当前状态中所形成的剩余io压力值;s34、自所述子步骤s31中的全部客户端会话中至少剔除一个客户端会话,自所述空闲队列中选择剩余io压力值最大的节点作为所述当前总io压力值最小的节点,以作为响应所述被剔除客户端会话的节点。7.根据权利要求6所述的客户端会话控制方法,其特征在于,所述子步骤s31与子步骤s33之间还包括:子步骤s32、对所述节点的当前总io压力值大于或者等于所述上限值的节点中的全部客户端会话分别形成的io压力值进行排序,在形成较小io压力值所对应的客户端会话的客户端与自所述空闲队列中被选择的当前总io压力值最小的节点之间根据所述target端的ip地址重新建立会话连接。8.根据权利要求7所述的客户端会话控制方法,其特征在于,还包括:绑定target端的ip地址与会话id并保存至所述空闲队列,在自所述空闲队列中选择当前总io压力值最小的节点作为响应自所述当前总io压力值最大的节点中所述被剔除客户端会话的节点过程中,自所述空闲队列中调用会话id,从所述空闲队列中选择当前总io压力值最小的节点以作为响应所述被剔除客户端会话的节点,以在形成所述被剔除客户端会话的客户端与所述当前总io压力值最小的节点之间重新建立会话连接,并在动态切换后对
zookeeper服务端中保存的空闲队列予以刷新,以清空所述空闲队列中的会话id与target ip。9.根据权利要求3至8中任一项所述的客户端会话控制方法,其特征在于,每个设定周期内仅对当前状态中当前总io压力值最大的节点中的一个客户端会话予以动态切换。10.一种分布式存储系统,其特征在于,包括:形成至少一客户端的前端,部署至少两个节点的后端存储,所述后端存储中的节点响应于客户端发起的会话请求,以建立形成客户端会话的连接,所述后端存储运行如权利要求1至9中任一项所述的客户端会话控制方法。

技术总结
本发明提供了客户端会话控制方法及分布式存储系统,客户端会话控制方法包括:确定当前状态中各节点基于客户端发起的客户端会话所形成的IO压力值,以确定当前状态中各节点的当前总IO压力值;确定当前状态中当前总IO压力值最大的节点,并将剩余节点所形成的当前总IO压力值由高至低进行排序,记录对应节点的会话ID,以形成空闲队列;自空闲队列中选择当前总IO压力值最小的节点作为响应自当前总IO压力值最大的节点中响应任一客户端会话的节点,以对分布式集群系统中节点对客户端发起的客户端会话予以动态切换。通过本申请,实现了充分利用分布式存储系统各节点存储带宽的技术效果,提高了用户体验及分布式存储系统的可靠性。性。性。


技术研发人员:请求不公布姓名
受保护的技术使用者:安超云软件有限公司
技术研发日:2023.05.17
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐