一种基于iSCSI协议的存储集的高可用性连通方法和系统与流程


一种基于iscsi协议的存储集的高可用性连通方法和系统
技术领域
1.本发明涉及网络通信技术领域,尤其涉及一种基于iscsi协议的存储集的高可用性连通方法和系统。


背景技术:



2.作为一种供硬件设备使用且能够在ip协议上层运行的指令集,因特网小型计算机系统接口iscsi协议,能够在tcp/ip网络上运行scsi协议,从而通过ip网络实现外部设备对存储集中存储块的访问。通过使用tcp/ip网络作为介质,iscsi协议能够让各种操作系统和虚拟化平台接入块存储当中。
3.现有的存储集中存储块的访问,通常是客户端通过主存储控制器的ip地址和iscsi端口发出登录请求;然后主存储控制器查询自身负载信息并获取各从存储控制器的负载信息,确定负载最小的存储控制器,将该负载最小的存储控制器的地址信息提供至发起客户端;由发起客户端登录该负载最小的存储控制器。在此种存储块的访问方法中,从存储控制器可能出现故障,导致数据块无法访问。在这种情况下会在从存储控制器消除故障恢复正常后,由管理终端重新将该从存储控制器加入到集系统中,然后主存储控制器根据负载信息向负载信息大的存储控制器发送命令,断开相应存储控制器连接的iscsi会话,转移这些会话到新加入的从存储控制器中。
4.然而,在存储集中经常会出现存储节点损坏或断网的情况,在这种情况下现有的存储集访问方案,难以实现与存储集的正常会话。


技术实现要素:



5.本发明提供一种基于iscsi协议的存储集的高可用性连通方案,旨在解决现有技术提供的存储节点损坏或断网的情况,难以实现与存储集的正常会话的问题。
6.为实现上述目的,根据本发明的第一方面,本发明提出了一种基于iscsi协议的存储集的高可用性连通方法,该方法用于高可用性连通系统,高可用性连通系统包括任务分发与执行单元、iscsi重定向服务单元、分布式元信息服务单元和本地存储服务单元;高可用性连通方法包括:
7.任务分发与执行单元选择存储集中一健康存储节点作为发起客户端的接入节点,为接入节点配置虚拟ip;
8.当发起客户端根据虚拟ip访问接入节点时,iscsi重定向服务单元监听接入节点的iscsi服务默认端口;
9.iscsi重定向服务单元当监听到发起客户端访问iscsi服务默认端口时,向分布式元信息服务单元上传发起客户端的访问消息;
10.分布式元信息服务单元当接收到访问消息时,根据预定负载均衡策略选择健康存储节点,反馈至iscsi重定向服务单元;
11.iscsi重定向服务单元将发起客户端的访问目标重定向设置为健康存储节点;
12.本地存储服务单元建立发起客户端与健康存储节点的会话,进行发起客户端对iscsi访问的io过程。
13.优选的,上述存储集的高可用性连通方法中,iscsi重定向服务单元将发起客户端的访问目标重定向设置为健康存储节点的步骤包括:
14.本地存储服务单元分别监听每一健康存储节点的iscsi端口;
15.iscsi重定向服务单元设置回复pdu的状态为重定向状态,将重定向状态的重定向目标设置为健康存储节点的iscsi端口,其中,回复pdu为与发起客户端的访问请求对应的响应数据单元;
16.发起客户端重新发起访问请求至健康存储节点。
17.优选的,上述存储集的高可用性连通方法中,分布式元信息服务单元当接收到访问消息时,根据预定负载均衡策略选择健康存储节点的步骤之前还包括:
18.存储集中每一存储节点的本地存储服务单元,按照数据连通协议进行相互通信;
19.使用数据连通协议包含的ping操作,判断本地存储节点与存储集中预定数量的存储节点能否相互通信;
20.若判定本地存储节点与预定数量的存储节点能够相互通信,则确定本地存储节点为健康存储节点;或者,
21.若判定本地存储节点与预定数量的存储节点不能相互通信,则禁止iscsi重定向服务单元将访问目标重定向为本地存储节点。
22.优选的,上述存储集的高可用性连通方法,在分布式元信息服务单元当接收到访问消息时,根据预定负载均衡策略选择健康存储节点的步骤之前还包括:
23.使用agent程序,循环遍历存储集中的所有存储节点;
24.根据agent程序发送的ping操作,分别判断存储集中每一存储节点能否连通;
25.若判定存储节点能够连通,则确定存储节点为健康存储节点;
26.若判定存储节点不能连通,则向分布式元信息服务单元上报节点故障消息,禁止iscsi重定向服务单元将访问目标重定向为存储节点。
27.优选的,上述存储集的高可用性连通方法中,分布式元信息服务单元当接收到访问消息时,根据预定负载均衡策略选择健康存储节点的步骤包括:
28.对存储集中所有健康存储节点的节点负载求平均计算,得到健康存储节点的平均负载;
29.比对每一健康存储节点的节点负载与平均负载大小,分别得到过载节点和欠载节点;
30.将过载节点的部分会话迁移至欠载节点;
31.以及,根据过载节点和负载节点的节点负载大小,选择新建对话对应的健康存储节点。
32.优选的,上述存储集的高可用性连通方法中,分布式元信息服务单元当接收到访问消息时,根据预定负载均衡策略选择健康存储节点的步骤包括:
33.将存储集中健康存储节点,按照可访问iscsi数据块的数量从高到低依次排列;
34.将可访问iscsi数据块数量最少的健康存储节点作为第一基准节点,筛选可访问
iscsi数据块数量超过第一基准节点预定数量的健康存储节点,作为初选存储节点;
35.将初选存储节点,按照节点空间占比从高到低依次排列;
36.将节点空间占比最低的初选存储节点作为第二基准节点,筛选节点空间占比超过第二基准节点预定比例的健康存储节点,作为候选存储节点;
37.当存在需要接入的iscsi存储资源时,根据发起客户端待访问的数据块的副本分配情况,选择iscsi存储资源放置的候选存储节点。
38.优选的,上述存储集的高可用性连通方法中,根据发起客户端待访问的数据块的副本分配情况,选择iscsi存储资源放置的候选存储节点的步骤包括:
39.判断发起客户端待访问的数据块是否已有副本分配;
40.若判定待访问的数据块已有副本分配,则将iscsi存储资源放置于副本所在的候选存储节点,当存在多个候选存储节点时,将iscsi存储资源放置于前预定时间内平均延迟最低的候选存储节点;
41.或者,
42.若判定待访问的数据块没有副本分配或副本不能满足发起客户端的需求,则将iscsi存储资源放置于接入节点。
43.优选的,上述存储集的高可用性连通方法还包括:
44.从存储集中选取健康存储节点作为超融合存储节点;
45.任务分发与执行单元将超融合存储节点设置为发起客户端访问的接入节点;
46.iscsi重定向服务单元将发起客户端的访问目标重定向设置为超融合存储节点。
47.优选的,上述存储集的高可用性连通方法还包括:
48.当发起客户端的接入节点确定时,在接入节点放置数据块的副本;
49.当iscsi重定向服务单元将访问目标重定向设置为健康存储节点时,iscsi重定向服务单元优先重定向存在副本的健康存储节点;
50.若iscsi重定向服务单元重定向的健康存储节点不存在副本,则将接入节点放置的副本迁移至iscsi重定向服务单元重定向的健康存储节点。
51.根据本发明的第二方面,本发明还提供了一种基于iscsi协议的存储集的高可用性连通系统,包括:
52.任务分发与执行单元、iscsi重定向服务单元、分布式元信息服务单元和本地存储服务单元;其中,
53.任务分发与执行单元,用于选择存储集中一健康存储节点作为发起客户端的接入节点,为接入节点配置虚拟ip;
54.iscsi重定向服务单元,用于当发起客户端根据虚拟ip访问接入节点时,监听接入节点的iscsi服务默认端口;
55.iscsi重定向服务单元,用于当监听到发起客户端访问iscsi服务默认端口时,向分布式元信息服务单元上传发起客户端的访问消息;
56.分布式元信息服务单元,用于当接收到访问消息时,根据预定负载均衡策略选择健康存储节点,反馈至iscsi重定向服务单元;
57.iscsi重定向服务单元,用于将发起客户端的访问目标重定向设置为健康存储节点;
58.本地存储服务单元,用于建立发起客户端与健康存储节点的会话,进行发起客户端对iscsi访问的io过程。
59.综上,本发明上述技术方案提供的基于iscsi协议的存储集的高可用性连通方案,任务分发与执行单元选择存储集中的一健康存储节点作为发起客户端的接入节点并为该接入节点配置虚拟ip,因为健康存储节点功能正常,能够与存储集中的其他存储节点相连通,因此该健康存储节点作为接入节点能够正常发起客户端的请求。iscsi重定向服务单元监听该接入节点的iscsi服务默认端口,该iscsi服务默认端口用于实现iscsi服务进程,因此通过监听该iscsi服务默认端口,iscsi重定向服务单元能够准确获取外部的发起客户端的访问消息并上传至分布式元信息服务单元。分布式元信息服务单元根据预定负载均衡策略选择健康存储节点,其中健康存储节点可以为多个,这样分布式元信息服务单元能够按照预定均衡策略使得多个健康存储节点的负载变得均衡,并通过iscsi重定向服务单元将发起客户端的访问目标重定向为负载较小的健康存储节点,将发起客户端的会话产生的负载分配至负载较小的健康存储节点,从而保证发起客户端对存储集中iscsi服务的正常访问。通过上述方式,因为选择功能正常,无故障且能够保证集内节点正常连通的健康存储节点与发起客户端进行会话,因此能够保证在存储集中出现损坏或部分存储节点断网的情况下,仍能够保证外部访问终端对存储集的正常会话解决了现有技术中存储节点损坏或断网的情况,难以实现与存储集的正常会话的问题。
附图说明
60.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
61.图1是本发明实施例提供的一种应用场景示意图;
62.图2是本发明实施例提供的第一种基于iscsi协议的存储集的高可用性连通方法的流程示意图;
63.图3是图2所示实施例提供的一种访问目标重定向设置方法的流程示意图;
64.图4是本发明实施例提供的第二种基于iscsi协议的存储集的高可用性连通方法的流程示意图;
65.图5是本发明实施例提供的第三种基于iscsi协议的存储集的高可用性连通方法的流程示意图;
66.图6是图2所示实施例提供的第一种根据预定负载均衡策略选择健康存储节点的方法的流程示意图;
67.图7是图2所示实施例提供的第二种根据预定负载均衡策略选择健康存储节点的方法的流程示意图;
68.图8是图7所示实施例提供的一种候选存储节点的筛选方法的流程示意图;
69.图9是本发明实施例提供的第四种存储集的高可用性连通方法的流程示意图;
70.图10是本发明实施例提供的第五种存储集的高可用性连通方法的流程示意图;
71.图11是本发明实施例提供的一种基于iscsi协议的存储集的高可用性连通系统
的结构示意图。
72.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
73.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
74.本发明实施例的主要解决的技术问题是:
75.现有的存储集中存储数据块的访问,通常是客户端通过存储集内主存储控制器的ip地址和iscsi端口发出登录请求,然后存储集内主存储控制器,控制客户端登录负载最小的存储控制器。然而这种访问方式会导致存储集出现存储节点损坏或断网的情况下难以实现存储集的正常会话的问题。
76.为了解决上述问题,本发明下述实施例提供了基于iscsi协议的存储集的高可用性连通方案,通过检测健康存储节点,选择健康存储节点作为接入节点,方便发起客户端通过该接入节点连通存储集。通过分布式元信息服务单元在监听到发起客户端访问iscsi服务默认端口时,根据预定负载均衡策略选择健康存储节点并反馈至iscsi重定向服务单元,因为上述健康存储节点是通过预定负载均衡策略所选择,因此该健康存储节点的负载较小,通过重定向到该健康存储节点,建立该健康存储节点与发起客户端的会话,能够保证发起客户端对存储集的正常访问,减少存储集在节点损坏或部分存储节点断网的情况下导致的难以实现正常会话的问题。
77.本技术下述实施例的技术思想如下:
78.使用虚拟ip和iscsi协议重定向机制,进行块存储的高可用iscsi会话的接入方案。
79.具体参见图1,图1是本发明实施例提供的一种应用场景示意图。在该应用场景提供的存储集中,通过多个存储节点3实现数据块的分布式块存储。该分布式块存储具体使用副本机制来存放数据,数据卷被分为多个256mib大小的数据块,每个数据块配置有1-3个副本,单个数据块的副本存放在不同的存储节点上,对于接入到不同存储节点上的读写请求,有没有本地副本会造成在性能和网络流量上的明显差别。本技术下述实施例在图1所示的存储集中设置基于iscsi协议的存储集的高可用性连通系统。
80.存储集由多个存储节点3构成,单个存储集的存储节点的数量大于等于3;在上述存储节点中选择大于等于3的奇数个存储节点作为为主节点或者说接入节点2,其上运行一个分布式元信息服务单元;每个存储节点上运行存储接入服务,本地存储服务单元,每个存储节点上运行一个iscsi重定向服务单元;每个存储节点上运行一个任务分发与执行单元。其中,上述接入节点2还用于接入待访问的接入客户端1。
81.为实现上述目的,请参见图2,图2是本发明实施例提供的第一种基于iscsi协议的存储集的高可用性连通方法的流程示意图。如图2所示,本发明提供的基于iscsi协议的存储集的高可用性连通方法,该方法用于高可用性连通系统,高可用性连通系统包括任务分发与执行单元、iscsi重定向服务单元、分布式元信息服务单元和本地存储服务单元;高可用性连通方法包括:
82.s110:任务分发与执行单元选择存储集中一健康存储节点作为发起客户端的接入节点,为接入节点配置虚拟ip。虚拟ip服务,即vip服务由任务分发与执行单元执行,任务
分发与执行单元会从存储集中选取一健康存储节点作为发起客户端initiator的接入节点,运行虚拟ip服务,将一个接入ip地址放置到一健康存储节点的接入网,这样发起客户端initiator就能够通过该接入节点的ip地址访问存储集。其中,健康存储单元即没有发生故障,功能正常,能够与存储集中其他存储节点通信,且存在发起客户端访问的数据块的节点。
83.s120:当发起客户端根据虚拟ip访问接入节点时,iscsi重定向服务单元监听接入节点的iscsi服务默认端口。
84.s130:iscsi重定向服务单元当监听到发起客户端访问iscsi服务默认端口时,向分布式元信息服务单元上传发起客户端的访问消息。
85.在存储集的每个存储节点上,iscsi重定向服务单元都会监听设置该节点的iscsi服务默认端口(例如端口3260),当发起客户端initiator访问该iscsi服务默认端口时,iscsi重定向服务单元会将一个访问消息上传至分布式元信息服务单元,具体地,iscsi重定向服务单元会将一个五元组(initiator_iqn,initiator_ip,redirector_ip,local_access_ip,target_name)作为访问消息上传至分布式元信息服务单元,这样分布式元信息服务单元就能够了解到发起客户端initiator的信息,并确定该发起客户端需要访问的数据资源target。然后分布式元信息服务单元会根据一定的规则选择一个健康存储节点返回该iscsi重定向服务单元。
86.s140:分布式元信息服务单元当接收到访问消息时,根据预定负载均衡策略选择健康存储节点,反馈至iscsi重定向服务单元。分布式元信息服务单元在接收到上述访问消息时,会根据该访问消息(例如上述五元组)确定发起客户端实际需要访问的数据资源target,然后从存储集中包含该数据资源target或数据块及其副本的健康存储节点中,按照预定负载均衡策略筛选负载较小的健康存储节点,将该健康存储节点的信息反馈至iscsi重定向服务单元,该iscsi重定向服务单元将发起客户端的访问目标重定向为该健康存储节点,从而使得该发起客户端访问该健康存储节点的数据块。
87.s150:iscsi重定向服务单元将发起客户端的访问目标重定向设置为健康存储节点。每个本地存储服务单元会监听本地存储节点的端口(例如端口3261),而重定向服务单元会将原有建立会话连接的login请求对应的回复pdu的状态位设置为0x01重定向状态,该重定向状态对应的重定向目标就是被选定的健康存储节点的iscsi端口,如上述3261端口。
88.s160:本地存储服务单元建立发起客户端与健康存储节点的会话,进行发起客户端对iscsi访问的io过程。iscsi重定向服务单元重定向设置健康存储节点,相当于发起客户端initiator与存储集联系切断,此时发起客户端initiator会重新向目标节点发送一个login请求,该新目标节点即上述选定的健康存储节点,该健康存储节点的本地存储服务单元会受理该请求,建立发起客户端与本地健康存节点的会话,进行正常的iscsi服务的io过程。
89.综上,本发明上述实施例提供的基于iscsi协议的存储集的高可用性连通方案,任务分发与执行单元选择存储集中的一健康存储节点作为发起客户端的接入节点并为该接入节点配置虚拟ip,因为健康存储节点功能正常,能够与存储集中的其他存储节点相连通,因此该健康存储节点作为接入节点能够正常发起客户端的请求。iscsi重定向服务单元监听该接入节点的iscsi服务默认端口,该iscsi服务默认端口用于实现iscsi服务进
程,因此通过监听该iscsi服务默认端口,iscsi重定向服务单元能够准确获取外部的发起客户端的访问消息并上传至分布式元信息服务单元。分布式元信息服务单元根据预定负载均衡策略选择健康存储节点,其中健康存储节点可以为多个,这样分布式元信息服务单元能够按照预定均衡策略使得多个健康存储节点的负载变得均衡,并通过iscsi重定向服务单元将发起客户端的访问目标重定向为负载较小的健康存储节点,将发起客户端的会话产生的负载分配至负载较小的健康存储节点,从而保证发起客户端对存储集中iscsi服务的正常访问。通过上述方式,因为选择功能正常,无故障且能够保证集内节点正常连通的健康存储节点与发起客户端进行会话,因此能够保证在存储集中出现损坏或部分存储节点断网的情况下,仍能够保证外部访问终端对存储集的正常会话解决了现有技术中存储节点损坏或断网的情况,难以实现与存储集的正常会话的问题。
90.其中,作为一种优选的实施例,如图3所示,上述存储集的高可用性连通方法中的步骤s150:iscsi重定向服务单元将发起客户端的访问目标重定向设置为健康存储节点,具体包括:
91.s151:本地存储服务单元分别监听每一健康存储节点的iscsi端口。
92.s152:iscsi重定向服务单元设置回复pdu的状态为重定向状态,将重定向状态的重定向目标设置为健康存储节点的iscsi端口,其中,回复pdu为与发起客户端的访问请求对应的响应数据单元。
93.s153:发起客户端重新发起访问请求至健康存储节点。
94.本技术实施例提供的技术方案中,通过每个本地存储服务单元监听本地存储节点的端口,例如端口3261,而重定向服务单元会将原有的login请求的回复pdu,其状态位设置为0x01重定向状态,该回复pdu的重定向目标就是被选定的健康存储节点的iscsi端口,如上述3261端口。通过发起客户端重新发起访问请求至该健康存储节点,这样发起客户端就能够通过该节点建立与存储集之间的会话连接。
95.另外,作为一种优选的实施例,本技术实施例提供的技术方案需要在发起客户端接入健康存储节点前,筛查存储集中的所有可用的健康存储节点,这样能够及时判断接入网的连通性,保证发起客户端与健康存储节点之间的有效通信,向健康存储节点收发数据块信息。
96.具体如图4所示,在上述步骤s140:分布式元信息服务单元当接收到访问消息时,根据预定负载均衡策略选择健康存储节点的步骤之前,本技术实施例提供的技术方案还包括:
97.s210:存储集中每一存储节点的本地存储服务单元,按照数据连通协议进行相互通信。
98.s220:使用数据连通协议包含的ping操作,判断本地存储节点与存储集中预定数量的存储节点能否相互通信。
99.s230:若判定本地存储节点与预定数量的存储节点能够相互通信,则确定本地存储节点为健康存储节点;或者,
100.s240:若判定本地存储节点与预定数量的存储节点不能相互通信,则禁止iscsi重定向服务单元将访问目标重定向为本地存储节点。
101.本技术实施例提供的技术方案,通过存储集中每一存储节点的本地存储服务单
元,按照相关的数据连通协议,例如节点间通信协议进行相互通信;然后使用数据连通协议包含的网络诊断ping操作,判断本地存储节点与存储集中预定数量的存储节点能否相互通信。当判定能够相互连通时,那么确定该本地存储节点为健康存储节点,此时iscsi重定向服务重定向至该健康存储节点,当判定本地存储节点不能相互通信时,禁止iscsi重定向服务单元将访问目标设置为该存储节点,从而避免接入客户端接入该出现故障的存储节点。
102.具体地,本地存储服务单元之间通过数据连通协议datachannel协议进行通信,协议中包含了ping操作用来判断存储节点之间的连通性。在使用接入网地址互相连接后,通过定期互相发送ping操作,可以发现接入网上不能互相连通的节点对,如果某个节点和半数以上的健康节点不能在接入网上联通,那么可以判定为该节点的接入网存在问题,重定向服务单元将不再把iscsi的login请求转移到该节点的本地存储服务单元上;
103.另外,作为一种优选的实施例,还可以在计算端部署一个或多个哨兵程序agent,哨兵是一个程序,能够运行在虚拟机或容器,甚至直接运行在计算节点的操作系统内,具体可以循环遍历存储集的各存储节点,检测各存储节点的连通性。具体如图5所示,本技术实施例提供的存储集的高可用性连通方法,在上述步骤s140:分布式元信息服务单元当接收到访问消息时,根据预定负载均衡策略选择健康存储节点之前,该方法还包括以下步骤:
104.s310:使用agent程序,循环遍历存储集中的所有存储节点。
105.s320:根据agent程序发送的ping操作,分别判断存储集中每一存储节点能否连通。
106.s330:若判定存储节点能够连通,则确定存储节点为健康存储节点。
107.s340:若判定存储节点不能连通,则向分布式元信息服务单元上报节点故障消息,禁止iscsi重定向服务单元将访问目标重定向为存储节点。
108.本技术实施例提供的技术方案,通过在计算端部署一个或多个哨兵agent程序,哨兵agent程序运行在虚拟机或容器或直接运行在计算节点的操作系统内。其作用是循环遍历存储集的各存储节点,通过ping操作来判断计算端和存储节点的连通性。如果计算端与存储节点不能联通,则通过远程过程调用rpc协议向分布式元信息服务单元汇报,在满足一定条件时,分布式元信息服务单元会判定该存储节点的接入网存在问题,重定向服务单元将不再把iscsi服务的login请求转移到该存储节点的本地存储服务单元上。
109.其中,iscsi重定向服务所需重定向的健康存储节点是需要考虑存储节点的负载。负载均衡的目的是防止会话产生的io过于集中于部分存储节点造成存储集的平均性能下降。负载均衡的过程如下:到过载和欠载的健康存储节点;将部分iscsi会话从过载存储节点转移到欠载存储节点;根据各存储节点的负载状态,选择新建立会话所使用的健康存储节点。
110.这里需要考虑用来衡量节点负载的数量因素有:
111.1.1、iscsi服务的会话数量和可访问的iscsi数据块的数量;
112.1.2、上述健康存储节点的空间的使用情况;
113.1.3、上述健康存储节点的io延迟情况。
114.为了积极节点负载问题,需要综合考虑上述因素,具体赋予不同的权重。具体地,
作为一种优选的实施例,如图6所示,上述步骤s140:分布式元信息服务单元当接收到访问消息时,根据预定负载均衡策略选择健康存储节点,具体包括:
115.s141:对存储集中所有健康存储节点的节点负载求平均计算,得到健康存储节点的平均负载。
116.s142:比对每一健康存储节点的节点负载与平均负载大小,分别得到过载节点和欠载节点。
117.s143:将过载节点的部分会话迁移至欠载节点。以及,
118.s144:根据过载节点和负载节点的节点负载大小,选择新建对话对应的健康存储节点。
119.本技术实施例提供技术方案中,将节点负载按序排列和求平均后,能够得到存储集中的过载节点和欠载节点。将iscsi会话从前者迁移到后者的方法,具体为切断当前会话,在接入客户端,即访问者initiator重新进行login请求时,将会话转移到欠载节点上。
120.在根据预定负载均衡策略选择健康存储节点时,还需要考虑以下问题:
121.2.1、多个计算节点对同一个位于iscsi服务器上的iscsi存储资源target的访问应该分散到不同存储节点上;
122.2.2、iscsi会话的建立时间越长,就越不应该将该健康存储节点的会话迁移至其他存储节点;
123.2.3、在负载模式类似的情况下,io压力越大,io延迟也就越大,因此将io延迟作为因素考虑进来。
124.上述因素不能单独考虑,而是要综合考虑并赋予权重;这是因为:
125.1、存储节点的数据有冷热之分,大块的冷数据占用空间多但是访问很少,不一定会拖慢节点的速度。
126.2、对于一个iscsi会话,可以访问的数据块数量是不均等的,所以已经建立的会话所能访问的数据块的数量是一个比会话数量更精准的对节点负载的刻画。
127.3、每个会话和存储节点的io负载在时间上的模式都不尽相同,若以单一存储节点的性能数据为依据(如延迟作为依据),那么对节点负载的计量在时间上就不够稳定。
128.4、在通常场景下,不同计算节点对同一个iscsi数据资源target对应的的数据卷iscsi lun的访问通常是互斥的,通常不会由多个存储节点访问同一个iscsi lun,所以将不同计算节点对一个iscsi数据资源target的访问分散到不同存储节点上对性能是有益的。
129.5、通常在一个iscsi lun的接入节点,分布式存储会放置iscsi lun数据的一个副本,这种被称为本地化的行为能有效提升性能,降低网络流量,而一个会话建立时间越久就越意味着这个会话下的iscsi lun的本地化程度会越高,此时迁移访问点对性能的负面影响就可能越大。
130.为了解决上述问题,对影响存储节点的各种因素进行综合考虑,作为一种优选的实施例,如图7所示,上述存储集的高可用性连通方法中,步骤s140:分布式元信息服务单元当接收到访问消息时,根据预定负载均衡策略选择健康存储节点包括:
131.s145:将存储集中健康存储节点,按照可访问iscsi数据块的数量从高到低依次排列。
132.s146:将可访问iscsi数据块数量最少的健康存储节点作为第一基准节点,筛选可访问iscsi数据块数量超过第一基准节点预定数量的健康存储节点,作为初选存储节点。
133.s147:将初选存储节点,按照节点空间占比从高到低依次排列。
134.s148:将节点空间占比最低的初选存储节点作为第二基准节点,筛选节点空间占比超过第二基准节点预定比例的健康存储节点,作为候选存储节点。
135.s149:当存在需要接入的iscsi存储资源时,根据发起客户端待访问的数据块的副本分配情况,选择iscsi存储资源放置的候选存储节点。
136.本技术实施例提供的技术方案,通过将存储集中健康存储节点按照可访问iscsi数据库的数量由高到低排列,并且将可访问iscsi数据块最少的节点作为第一基准节点,筛选可访问iscsi数据块数量超过该第一基准节点预定数量(例如5%)的健康存储节点作为初选存储节点,将节点空间占比最低的初选存储节点作为第二基准节点,筛选节点空间占比较高的节点作为候选存储节点,然后将iscsi存储资源放置在该候选存储节点上,这样就能够保证对负载较低的健康存储节点的筛选,提高节点资源的利用率。
137.具体地,作为一种优选的实施例,如图8所示,上述存储集的高可用性连通方法中,步骤s149:根据发起客户端待访问的数据块的副本分配情况,选择iscsi存储资源放置的候选存储节点的步骤包括:
138.s1491:判断发起客户端待访问的数据块是否已有副本分配;
139.s1492:若判定待访问的数据块已有副本分配,则将iscsi存储资源放置于副本所在的候选存储节点;
140.s1493:当存在多个候选存储节点时,将iscsi存储资源放置于前预定时间内平均延迟最低的候选存储节点;
141.或者,
142.s1494:若判定待访问的数据块没有副本分配或副本不能满足发起客户端的需求,则将iscsi存储资源放置于接入节点。
143.另外为了提高存储集的性能,还需要进行融合场景的优化。本技术实施例通过超融合的方式优化存储集性能。具体地,超融合是一种让存储集中的节点同时承担计算和存储能力的云计算形态。超融合架构和分离式架构有一个重大差别,就是计算服务在使用本存储节点上的存储服务时,是有很大的性能优势的。考虑到超融合架构的存储本地化需求,在分配iscsi的接入节点时,需要实行针对性措施。具体地,作为一种优选的实施例,如图9所示,上述存储集的高可用性连通方法还包括:
144.s410:从存储集中选取健康存储节点作为超融合存储节点。
145.s420:任务分发与执行单元将超融合存储节点设置为发起客户端访问的接入节点。
146.s430:iscsi重定向服务单元将发起客户端的访问目标重定向设置为超融合存储节点。
147.具体地,标记被超融合使用的iscsi target;然后记录存储集中超融合存储节点的地址,在该超融合存储节点上访问融合用途的iscsi target时,总是将访问目标设置在本地融合节点;若本地的超融合存储节点不可用,那么将周期性的尝试将访问目标转移回本地;这样可以尽可能保证计算能访问到本地存储。
148.另外,作为一种优选的实施例,如图10所示,上述存储集的高可用性连通方法还包括:
149.s510:当发起客户端的接入节点确定时,在接入节点放置数据块的副本;
150.s520:当iscsi重定向服务单元将访问目标重定向设置为健康存储节点时,iscsi重定向服务单元优先重定向存在副本的健康存储节点;
151.s530:若iscsi重定向服务单元重定向的健康存储节点不存在副本,则将接入节点放置的副本迁移至iscsi重定向服务单元重定向的健康存储节点。
152.本技术实施例提供的技术方案,能够实现接入节点和副本放置的一致化;对于iscsi lun的读会落到一个副本上,而写请求会落到所有副本上,对于两副本的读和写,接入节点有本地副本相较于没有分别会节省100%和50%的网络带宽,这会造成显著的性能差距。在本技术实施例的技术方案中,访问点放置和副本放置是双向适应的,包含:1、在接入节点确定后,副本分配会确保在接入点放置一个副本,除非节点损坏或者容量不足;2、在接入点迁移后,如果目标节点没有副本,那么会迁移一个副本到目标节点上;3、在迁移接入点时,会优先考虑会话可访问的iscsi lun有更多数据副本的节点。上述第1点和第2点是副本向接入节点的倾斜,第3点是接入节点向副本的倾斜,总之,目的是保证性能的同时减少副本的迁移量。
153.基于上述方法实施例的同一构思,本发明实施例还提供了基于iscsi协议的存储集的高可用性连通系统,用于实现本发明的上述方法,由于该系统实施例解决问题的原理与方法相似,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
154.具体参见图11,图11为本发明实施例提供的一种基于iscsi协议的存储集的高可用性连通系统的结构示意图。如图11所示,该存储集的高可用性连通系统包括:
155.任务分发与执行单元110、iscsi重定向服务单元120、分布式元信息服务单元130和本地存储服务单元140;其中,
156.任务分发与执行单元110,用于选择存储集中一健康存储节点作为发起客户端的接入节点,为接入节点配置虚拟ip;
157.iscsi重定向服务单元120,用于当发起客户端根据虚拟ip访问接入节点时,监听接入节点的iscsi服务默认端口;
158.iscsi重定向服务单元120,还用于当监听到发起客户端访问iscsi服务默认端口时,向分布式元信息服务单元上传发起客户端的访问消息;
159.分布式元信息服务单元130,用于当接收到访问消息时,根据预定负载均衡策略选择健康存储节点,反馈至iscsi重定向服务单元;
160.iscsi重定向服务单元130,还用于将发起客户端的访问目标重定向设置为健康存储节点;
161.本地存储服务单元140,用于建立发起客户端与健康存储节点的会话,进行发起客户端对iscsi访问的io过程。
162.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
163.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
164.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
165.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
166.应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
167.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
168.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

技术特征:


1.一种基于iscsi协议的存储集的高可用性连通方法,其特征在于,所述方法用于高可用性连通系统,所述高可用性连通系统包括任务分发与执行单元、iscsi重定向服务单元、分布式元信息服务单元和本地存储服务单元;所述高可用性连通方法包括:所述任务分发与执行单元选择存储集中一健康存储节点作为发起客户端的接入节点,为所述接入节点配置虚拟ip;当所述发起客户端根据所述虚拟ip访问所述接入节点时,所述iscsi重定向服务单元监听所述接入节点的iscsi服务默认端口;所述iscsi重定向服务单元当监听到所述发起客户端访问所述iscsi服务默认端口时,向所述分布式元信息服务单元上传所述发起客户端的访问消息;所述分布式元信息服务单元当接收到所述访问消息时,根据预定负载均衡策略选择健康存储节点,反馈至所述iscsi重定向服务单元;所述iscsi重定向服务单元将所述发起客户端的访问目标重定向设置为所述健康存储节点;所述本地存储服务单元建立所述发起客户端与所述健康存储节点的会话,进行所述发起客户端对iscsi访问的io过程。2.根据权利要求1所述的存储集的高可用性连通方法,其特征在于,所述iscsi重定向服务单元将所述发起客户端的访问目标重定向设置为所述健康存储节点的步骤,包括:所述本地存储服务单元分别监听每一健康存储节点的iscsi端口;所述iscsi重定向服务单元设置回复pdu的状态为重定向状态,将所述重定向状态的重定向目标设置为所述健康存储节点的iscsi端口,其中,所述回复pdu为与所述发起客户端的访问请求对应的响应数据单元;所述发起客户端重新发起所述访问请求至所述健康存储节点。3.根据权利要求1所述的存储集的高可用性连通方法,其特征在于,所述分布式元信息服务单元当接收到所述访问消息时,根据预定负载均衡策略选择健康存储节点的步骤之前,所述方法还包括:所述存储集中每一存储节点的本地存储服务单元,按照数据连通协议进行相互通信;使用所述数据连通协议包含的ping操作,判断本地存储节点与所述存储集中预定数量的存储节点能否相互通信;若判定所述本地存储节点与预定数量的存储节点能够相互通信,则确定所述本地存储节点为健康存储节点;或者,若判定所述本地存储节点与预定数量的存储节点不能相互通信,则禁止所述iscsi重定向服务单元将所述访问目标重定向为所述本地存储节点。4.根据权利要求1或3所述的存储集的高可用性连通方法,其特征在于,所述分布式元信息服务单元当接收到所述访问消息时,根据预定负载均衡策略选择健康存储节点的步骤之前,所述方法还包括:使用agent程序,循环遍历所述存储集中的所有存储节点;根据所述agent程序发送的ping操作,分别判断所述存储集总每一存储节点能否连通;
若判定所述存储节点能够连通,则确定所述存储节点为健康存储节点;若判定所述存储节点不能连通,则向所述分布式元信息服务单元上报节点故障消息,禁止所述iscsi重定向服务单元将所述访问目标重定向为所述存储节点。5.根据权利要求1所述的存储集的高可用性连通方法,其特征在于,所述分布式元信息服务单元当接收到所述访问消息时,根据预定负载均衡策略选择健康存储节点的步骤,包括:对所述存储集中所有健康存储节点的节点负载求平均计算,得到所述健康存储节点的平均负载;比对每一所述健康存储节点的节点负载与所述平均负载大小,分别得到过载节点和欠载节点;将所述过载节点的部分会话迁移至所述欠载节点;以及,根据所述过载节点和负载节点的节点负载大小,选择新建对话对应的健康存储节点。6.根据权利要求1所述的存储集的高可用性连通方法,其特征在于,所述分布式元信息服务单元当接收到所述访问消息时,根据预定负载均衡策略选择健康存储节点的步骤,包括:将所述存储集中健康存储节点,按照可访问iscsi数据块的数量从高到低依次排列;将所述可访问iscsi数据块数量最少的健康存储节点作为第一基准节点,筛选可访问iscsi数据块数量超过所述第一基准节点预定数量的健康存储节点,作为初选存储节点;将所述初选存储节点,按照节点空间占比从高到低依次排列;将所述节点空间占比最低的初选存储节点作为第二基准节点,筛选节点空间占比超过所述第二基准节点预定比例的健康存储节点,作为候选存储节点;当存在需要接入的iscsi存储资源时,根据所述发起客户端待访问的数据块的副本分配情况,选择所述iscsi存储资源放置的候选存储节点。7.根据权利要求6所述的存储集的高可用性连通方法,其特征在于,所述根据所述发起客户端待访问的数据块的副本分配情况,选择所述iscsi存储资源放置的候选存储节点的步骤,包括:判断所述发起客户端待访问的数据块是否已有副本分配;若判定所述待访问的数据块已有副本分配,则将所述iscsi存储资源放置于所述副本所在的候选存储节点,当存在多个所述候选存储节点时,将所述iscsi存储资源放置于前预定时间内平均延迟最低的候选存储节点;或者,若判定所述待访问的数据块没有副本分配或所述副本不能满足所述发起客户端的需求,则将所述iscsi存储资源放置于所述接入节点。8.根据权利要求1所述的存储集的高可用性连通方法,其特征在于,还包括:从所述存储集中选取健康存储节点作为超融合存储节点;所述任务分发与执行单元将所述超融合存储节点设置为所述发起客户端访问的接入节点;所述iscsi重定向服务单元将所述发起客户端的访问目标重定向设置为所述超融合存
储节点。9.根据权利要求1所述的存储集的高可用性连通方法,其特征在于,还包括:当所述发起客户端的接入节点确定时,在所述接入节点放置数据块的副本;当所述iscsi重定向服务单元将所述访问目标重定向设置为所述健康存储节点时,所述iscsi重定向服务单元优先重定向存在所述副本的健康存储节点;若所述iscsi重定向服务单元重定向的健康存储节点不存在所述副本,则将所述接入节点放置的副本迁移至所述iscsi重定向服务单元重定向的健康存储节点。10.一种基于iscsi协议的存储集的高可用性连通系统,其特征在于,包括:任务分发与执行单元、iscsi重定向服务单元、分布式元信息服务单元和本地存储服务单元;其中,所述任务分发与执行单元,用于选择存储集中一健康存储节点作为发起客户端的接入节点,为所述接入节点配置虚拟ip;所述iscsi重定向服务单元,用于当所述发起客户端根据所述虚拟ip访问所述接入节点时,监听所述接入节点的iscsi服务默认端口;所述iscsi重定向服务单元,用于当监听到所述发起客户端访问所述iscsi服务默认端口时,向所述分布式元信息服务单元上传所述发起客户端的访问消息;所述分布式元信息服务单元,用于当接收到所述访问消息时,根据预定负载均衡策略选择健康存储节点,反馈至所述iscsi重定向服务单元;所述iscsi重定向服务单元,用于将所述发起客户端的访问目标重定向设置为所述健康存储节点;所述本地存储服务单元,用于建立所述发起客户端与所述健康存储节点的会话,进行所述发起客户端对iscsi访问的io过程。

技术总结


本发明公开一种基于iSCSI协议的存储集的高可用性连通方法和系统,方法包括:任务分发与执行单元选择存储集中一健康存储节点作为发起客户端的接入节点,为接入节点配置虚拟IP;iSCSI重定向服务单元监听接入节点的iSCSI服务默认端口;iSCSI重定向服务单元向分布式元信息服务单元上传发起客户端的访问消息;分布式元信息服务单元根据预定负载均衡策略选择健康存储节点;iSCSI重定向服务单元将发起客户端的访问目标重定向设置为健康存储节点;建立发起客户端与健康存储节点的会话,进行发起客户端对iSCSI的访问。本发明解决现有技术中的经常会出现存储节点损坏或断网,导致难以实现与存储集会话的问题。致难以实现与存储集会话的问题。致难以实现与存储集会话的问题。


技术研发人员:

孙文全 徐文豪 王弘毅 张凯

受保护的技术使用者:

北京志凌海纳科技有限公司

技术研发日:

2022.08.18

技术公布日:

2022/11/22

本文发布于:2024-09-23 03:12:53,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/17501.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:节点   单元   所述   集群
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议