一种基于iSCSI的分布式块存储服务链接管理的方法及系统与流程

文档序号:23711145发布日期:2021-01-23 20:10阅读:162来源:国知局
一种基于iSCSI的分布式块存储服务链接管理的方法及系统与流程
一种基于iscsi的分布式块存储服务链接管理的方法及系统
技术领域
[0001]
本发明涉及服务器链接管理领域,尤其是涉及一种基于iscsi的分布式块存储服务链接管理的方法及系统。


背景技术:

[0002]
iscsi(internet small computer system interface,internet小型计算机系统接口)主要是通过过tcp/ip的技术,将储存设备(r bd)端透过iscsi target(iscsi目标)功能,做成可以提供磁盘的服务器端,再通过iscsi initiator(iscsi初始化用户)功能,做成能够挂载使用iscsi target的客户端,如此便能通过iscsi协议来进行磁盘的应用了。
[0003]
客户端主机可通过以上途径与tgt(iscsi target)服务器建立连接访问底层的librbd(ceph提供的块存储库),实现对块存储的操作,一个target(储存设备端,存放磁盘或raid的设备,目的在提供其他主机使用的磁盘)上可以映射多个块设备,同时一个tgt上可以创建多个target,客户端主机可以连接tgt上其中一个或多个target分别进行访问,iscsi target均可将本地磁盘映射为一个块设备为iscsi initiator提供硬盘。
[0004]
现有的iscsi客户端需要根据节点数和客户端数量进行均衡分配,一个ip对应一个节点,当节点比较多的时候,每个节点提供一个ip,用户若要负载均衡,需要手动分配节点和客户端的对应关系,效率低,并且不利于用户体验。


技术实现要素:

[0005]
本发明为了解决现有技术中存在的问题,创新提出了一种基于iscsi的分布式块存储服务链接管理的方法及系统,有效解决由于现有技术造成iscsi客户端分配节点时效率低、用户体验不高的问题,有效的提高了iscsi客户端分配节点的效率,提升用户体验满意度。
[0006]
本发明第一方面提供了一种基于iscsi的分布式块存储服务链接管理的方法,包括:
[0007]
设置分布式集群的业务ip以及唯一虚拟ip,所述虚拟ip用于客户端登录分布式集群中的第一节点;所述业务ip用于客户端连接分布式集群中的第二节点;
[0008]
通过map在内存与持久化存储中分别记录客户端与节点之间映射关系;
[0009]
通过冒泡算法遍历内存map中节点,获取压力最小的节点作为第一节点,将客户端分配至分布式集群的第一节点,用于客户端通过虚拟ip登录分布式集群中的第一节点;
[0010]
客户端在第一节点中通过冒泡算法遍历内存map中除第一节点外的其他节点,选取压力最小的节点作为第二节点,将客户端重定向至第二节点,用于客户端通过业务ip连接分布式集群中的第二节点。
[0011]
可选地,内存map中各节点对应key的set或链表中的元素个数最少的节点即为压力最小的节点。
[0012]
可选地,通过map在内存与持久化存储中分别记录客户端与节点之间映射关系具
体是:
[0013]
内存中map的key记录节点的ip、主机名,map的value记录客户端ip以及初始化用户名;
[0014]
持久化存储中omap的key记录客户端ip以及初始化用户名,omap的value记录节点的ip、主机名。
[0015]
可选地,客户端在第一节点中通过冒泡算法遍历内存map中除第一节点外的其他节点,选取压力最小的节点作为第二节点,将客户端重定向至第二节点,用于客户端通过业务ip连接分布式集群中的第二节点具体包括:
[0016]
客户端使用虚拟ip连接第一节点;
[0017]
通过冒泡算法遍历内存map中除第一节点外的其他节点,选取压力最小的节点作为第二节点;
[0018]
从持久化存储中获取集群第二节点业务ip信息;
[0019]
更新持久化存储中对象上客户端与节点之间的映射信息;
[0020]
配置客户端redirect字段,断开第一节点连接;
[0021]
客户端根据redirect信息中的业务ip重新连接第二节点。
[0022]
进一步地,客户端使用虚拟ip连接第一节点之后还包括:
[0023]
虚拟ip所在的第一节点记录第一节点ip,用于比对第一节点是否为首次承载虚拟ip,如果是,则获取持久化存储中对象上信息并构造内存map。
[0024]
可选地,还包括:
[0025]
当前第二节点故障时,客户端重新切换至虚拟ip所在第一节点;
[0026]
运用冒泡算法遍历内存map中各未故障的第二节点,重新确定第二节点;
[0027]
从持久化存储中获取集群重新确定的第二节点ip信息;
[0028]
更新持久化存储中对象上客户端与节点之间的映射信息;
[0029]
配置客户端redirect字段,断开第一节点连接;
[0030]
客户端根据redirect信息连接重新确定的第二节点。
[0031]
可选地,还包括:
[0032]
当前第一节点故障时,通过冒泡算法遍历内存map中除当前故障的第一节点外的其他节点,重新确定第一节点;
[0033]
将客户端分配至分布式集群的重新确定的第一节点,用于客户端通过虚拟ip登录分布式集群中的重新确定的第一节点。
[0034]
进一步地,还包括:
[0035]
客户端在重新确定的第一节点中通过冒泡算法遍历内存map中除重新确定的第一节点以及故障的原第一节点外的其他节点,选取压力最小的节点作为第二节点,将客户端重定向至第二节点,用于客户端通过业务ip连接分布式集群中的第二节点。
[0036]
可选地,还包括:
[0037]
虚拟ip所在的重新确定的第一节点记录当前第一节点ip,用于比对当前第一节点是否为首次承载虚拟ip,如果是,则获取持久化存储中对象上信息并构造内存map。
[0038]
本发明第二方面提供了一种基于iscsi的分布式块存储服务链接管理的系统,包括:
[0039]
设置模块,设置分布式集群的业务ip以及唯一虚拟ip,所述虚拟ip用于客户端登录分布式集群中的第一节点;所述业务ip用于客户端连接分布式集群中的第二节点;
[0040]
记录模块,通过map在内存与持久化存储中分别记录客户端与节点之间映射关系;
[0041]
第一节点登录模块,通过冒泡算法遍历内存map中节点,获取压力最小的节点作为第一节点,将客户端分配至分布式集群的第一节点,用于客户端通过虚拟ip登录分布式集群中的第一节点;
[0042]
第二节点连接模块,客户端在第一节点中通过冒泡算法遍历内存map中除第一节点外的其他节点,选取压力最小的节点作为第二节点,将客户端重定向至第二节点,用于客户端通过业务ip连接分布式集群中的第二节点。
[0043]
本发明采用的技术方案包括以下技术效果:
[0044]
1、本发明对外只需提供一个虚拟ip,客户端连接时直接根据负载均衡算法完成任务的分配,用户不必再手动根据压力分配不同的ip进行连接,有效解决由于现有技术造成iscsi客户端分配节点时效率低、用户体验不高的问题,有效的提高了iscsi客户端分配节点的效率,提升用户体验满意度。
[0045]
2、本发明第一节点以及第二节点均为分布式集群中压力最小的节点,有效地提高了第一节点以及第二节点处理效率,降低处理时间。
[0046]
3、本发明技术方案中第一节点以及第二节点故障时,可以根据冒泡算法重新确定,避免了因为当前节点故障,造成任务无法处理,有效地提高了客户端登录以及连接的可靠性。
[0047]
应当理解的是以上的一般描述以及后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
[0048]
为了更清楚说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见的,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0049]
图1为本发明方案中实施例一方法的流程示意图;
[0050]
图2为本发明方案中实施例一方法的整体流程示意图;
[0051]
图3为本发明方案中实施例一方法中步骤s4的一流程示意图;
[0052]
图4为本发明方案中实施例一方法中步骤s4的另一流程示意图;
[0053]
图5为本发明方案中实施例一方法中步骤s4的另一流程示意图;
[0054]
图6为本发明方案中实施例二方法中的一流程示意图;
[0055]
图7为本发明方案中实施例二方法中的另一流程示意图;
[0056]
图8为本发明方案中实施例二方法中的另一流程示意图;
[0057]
图9为本发明方案中实施例三系统的结构示意图。
具体实施方式
[0058]
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结
构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
[0059]
实施例一
[0060]
如图1-图2所示,本发明提供了一种基于iscsi的分布式块存储服务链接管理的方法,包括:
[0061]
s1,设置分布式集群的业务ip以及唯一虚拟ip,所述虚拟ip用于客户端登录分布式集群中的第一节点;所述业务ip用于客户端连接分布式集群中的第二节点;
[0062]
s2,通过map在内存与持久化存储中分别记录客户端与节点之间映射关系;
[0063]
s3,通过冒泡算法遍历内存map中节点,获取压力最小的节点作为第一节点,将客户端分配至分布式集群的第一节点,用于客户端通过虚拟ip登录分布式集群中的第一节点;
[0064]
s4,客户端在第一节点中通过冒泡算法遍历内存map中除第一节点外的其他节点,选取压力最小的节点作为第二节点,将客户端重定向至第二节点,用于客户端通过业务ip连接分布式集群中的第二节点。
[0065]
其中,在步骤s1中,虚拟ip(即图2中的redirect ip)可以使用keepalive组件,为分布式集群设置一个唯一的虚拟ip,提供给客户端登录,业务ip也可以使用keepalive组件创建,即图2中的public ip,用来重定向给客户端进行连接;业务ip可以通过配置选择业务节点,使用public ip等待客户端重定向连接,业务节点可以为默认集群所有节点。
[0066]
在步骤s2中,通过map在内存与持久化存储中分别记录客户端与节点之间映射关系具体是:
[0067]
内存中map的key记录节点的ip、主机名(图2中的hostname),map的value记录客户端ip以及初始化用户名(图2中initiatorname);其中节点指的是业务节点,节点的ip指的是业务ip,即public ip;map的value通过set或链表进行设置。
[0068]
持久化存储中omap(ceph提供的存储对象)的key记录客户端ip以及初始化用户名,omap的value记录节点的ip、主机名;其中节点指的是业务节点,节点的ip指的是业务ip,即public ip。持久化存储可以通过将rados(分布式数据存储系统,给适合相应需求的分布式文件系统提供数据存储服务)磁盘持久化构建,设置为默认存储池。
[0069]
在步骤s3中,内存map中各节点对应key的set或链表中的元素个数最少的节点即为压力最小的节点。
[0070]
如图3所示,在步骤s4中,具体包括:
[0071]
s401,客户端使用虚拟ip连接第一节点;
[0072]
s402,通过冒泡算法遍历内存map(即图2中加载map信息)中除第一节点外的其他节点(即图2中分析是否有节点加入或故障),选取压力最小的节点作为第二节点;
[0073]
s403,从持久化存储中获取集群第二节点业务ip信息(即图2中获取集群ip列表);
[0074]
s404,更新持久化存储中对象上客户端与节点之间的映射信息(即图2中更新内存map,并为initiator分配节点,更新对象上映射信息);
[0075]
s405,配置客户端redirect字段,断开第一节点连接(即图2中配置redirect字段,
并断开连接);
[0076]
s406,客户端根据redirect信息中的业务ip重新连接第二节点(即图2中假设分配至node1,根据redirect信息连接)。
[0077]
步骤s402中,内存map中各节点对应key的set或链表中的元素个数最少的节点即为压力最小的节点。
[0078]
如图2所示,node_2为第一节点,node_1为当前第二节点,initiator为客户端,rados为持久化存储。
[0079]
进一步地,如图4所示,步骤s4具体包括:
[0080]
s401,客户端使用虚拟ip连接第一节点;
[0081]
s402,虚拟ip所在的第一节点记录第一节点ip,用于比对第一节点是否为首次承载虚拟ip,如果是,则获取持久化存储中对象上信息并构造内存map;
[0082]
s403,通过冒泡算法遍历内存map中除第一节点外的其他节点,选取压力最小的节点作为第二节点;
[0083]
s404,从持久化存储中获取集群第二节点业务ip信息;
[0084]
s405,更新持久化存储中对象上客户端与节点之间的映射信息;
[0085]
s406,配置客户端redirect字段,断开第一节点连接;
[0086]
s407,客户端根据redirect信息中的业务ip重新连接第二节点。
[0087]
在步骤s402中,虚拟ip所在的第一节点记录第一节点ip(图2中记录本端tcpip),用于比对第一节点是否为首次承载虚拟ip,如果是,则获取持久化存储中对象上信息并构造内存map;如果不是首次承载虚拟ip,则不需要获取持久化存储中对象上信息并构造内存map。
[0088]
进一步地,如图5所示,步骤s4具体包括:
[0089]
s401,客户端使用虚拟ip连接第一节点;
[0090]
s402,虚拟ip所在的第一节点记录第一节点ip,用于比对第一节点是否为首次承载虚拟ip,如果是,则获取持久化存储中对象上信息并构造内存map;
[0091]
s403,通过冒泡算法遍历内存map中除第一节点外的其他节点,选取压力最小的节点作为第二节点;
[0092]
s404,从持久化存储中获取集群第二节点业务ip信息;
[0093]
s405,更新持久化存储中对象上客户端与节点之间的映射信息;
[0094]
s406,配置客户端redirect字段,断开第一节点连接;
[0095]
s407,客户端根据redirect信息中的业务ip重新连接第二节点;
[0096]
s408,当前第二节点故障时,客户端重新切换至虚拟ip所在第一节点(即图2中回切至redirect ip所在节点);
[0097]
s409,运用冒泡算法遍历内存map中各未故障的第二节点(即图2中分析是否有节点故障,跟上次记录本端ip一致,且为redirect ip),重新确定第二节点;
[0098]
s410,从持久化存储中获取集群重新确定的第二节点ip信息(即图2中获取集群ip列表);
[0099]
s411,更新持久化存储中对象上客户端与节点之间的映射信息(即图2中更新内存map,给initiator分配节点,更新对象上故障节点对应的映射信息);
[0100]
s412,配置客户端redirect字段,断开第一节点连接;
[0101]
s413,客户端根据redirect信息连接重新确定的第二节点(即图2中根据redirect信息连接node3)。
[0102]
需要说明的是,本方案中,当前时间有且仅有一个节点(即虚拟ip或业务ip)与客户端对应通信。
[0103]
本发明对外只需提供一个虚拟ip,客户端连接时直接根据负载均衡算法完成任务的分配,用户不必再手动根据压力分配不同的ip进行连接,有效解决由于现有技术造成iscsi客户端分配节点时效率低、用户体验不高的问题,有效的提高了iscsi客户端分配节点的效率,提升用户体验满意度。
[0104]
本发明第一节点以及第二节点均为分布式集群中压力最小的节点,有效地提高了第一节点以及第二节点处理效率,降低处理时间。
[0105]
本发明技术方案中第二节点故障时,可以根据冒泡算法重新确定,避免了因为当前节点故障,造成任务无法处理,有效地提高了客户端登录以及连接的可靠性。
[0106]
实施例二
[0107]
如图6、图2所示,本发明技术方案还提供了基于iscsi的分布式块存储服务链接管理的方法,包括:
[0108]
s1,设置分布式集群的业务ip以及唯一虚拟ip,所述虚拟ip用于客户端登录分布式集群中的第一节点;所述业务ip用于客户端连接分布式集群中的第二节点;
[0109]
s2,通过map在内存与持久化存储中分别记录客户端与节点之间映射关系;
[0110]
s3,通过冒泡算法遍历内存map中节点,获取压力最小的节点作为第一节点,将客户端分配至分布式集群的第一节点,用于客户端通过虚拟ip登录分布式集群中的第一节点;
[0111]
s4,客户端在第一节点中通过冒泡算法遍历内存map中除第一节点外的其他节点,选取压力最小的节点作为第二节点,将客户端重定向至第二节点,用于客户端通过业务ip连接分布式集群中的第二节点;
[0112]
s5,当前第一节点故障时,通过冒泡算法遍历内存map中除当前故障的第一节点外的其他节点,重新确定第一节点;
[0113]
s6,将客户端分配至分布式集群的重新确定的第一节点,用于客户端通过虚拟ip登录分布式集群中的重新确定的第一节点。
[0114]
在步骤s5-s6中,如图2所示,当第一节点node_2故障时,通过冒泡算法遍历内存map中除当前故障的第一节点外的其他节点,重新确定第一节点,即node_1(即图2中node1承接redirect ip,本端为redirect ip,且之前无记录),将客户端分配至分布式集群的重新确定的第一节点node_1,用于客户端通过虚拟ip登录分布式集群中的重新确定的第一节点node_1。
[0115]
进一步地,如图7所示,还包括:
[0116]
s7,客户端在重新确定的第一节点中通过冒泡算法遍历内存map中除重新确定的第一节点以及故障的原第一节点外的其他节点,选取压力最小的节点作为第二节点,将客户端重定向至第二节点,用于客户端通过业务ip连接分布式集群中的第二节点。
[0117]
如图2所示,在步骤s7中,客户端在重新确定的第一节点node_1中通过冒泡算法遍
历内存map中除重新确定的第一节点node_1以及故障的原第一节点node_2外的其他节点,选取压力最小的节点作为第二节点node_3,将客户端重定向至第二节点node_3,用于客户端通过业务ip连接分布式集群中的第二节点node_3。
[0118]
进一步地,如图8所示,还包括:
[0119]
s8,虚拟ip所在的重新确定的第一节点记录当前第一节点ip,用于比对当前第一节点是否为首次承载虚拟ip,如果是,则获取持久化存储中对象上信息并构造内存map。
[0120]
如图2所示,在步骤s8中,虚拟ip所在的重新确定的第一节点node_1记录当前第一节点node_1的ip,用于比对当前第一节点node_1是否为首次承载虚拟ip,如果是,则获取持久化存储中对象上信息并构造内存map;再相应执行步骤s401-s407。
[0121]
本发明技术方案中第一节点故障时,可以根据冒泡算法重新确定,避免了因为当前节点故障,造成任务无法处理,有效地提高了客户端登录以及连接的可靠性。
[0122]
实施例三
[0123]
如图9所示,本发明技术方案还提供了一种基于iscsi的分布式块存储服务链接管理的系统,包括:
[0124]
设置模块101,设置分布式集群的业务ip以及唯一虚拟ip,所述虚拟ip用于客户端登录分布式集群中的第一节点;所述业务ip用于客户端连接分布式集群中的第二节点;
[0125]
记录模块102,通过map在内存与持久化存储中分别记录客户端与节点之间映射关系;
[0126]
第一节点登录模块103,通过冒泡算法遍历内存map中节点,获取压力最小的节点作为第一节点,将客户端分配至分布式集群的第一节点,用于客户端通过虚拟ip登录分布式集群中的第一节点;
[0127]
第二节点连接模块104,客户端在第一节点中通过冒泡算法遍历内存map中除第一节点外的其他节点,选取压力最小的节点作为第二节点,将客户端重定向至第二节点,用于客户端通过业务ip连接分布式集群中的第二节点。
[0128]
本发明对外只需提供一个虚拟ip,客户端连接时直接根据负载均衡算法完成任务的分配,用户不必再手动根据压力分配不同的ip进行连接,有效解决由于现有技术造成iscsi客户端分配节点时效率低、用户体验不高的问题,有效的提高了iscsi客户端分配节点的效率,提升用户体验满意度。
[0129]
本发明第一节点以及第二节点均为分布式集群中压力最小的节点,有效地提高了第一节点以及第二节点处理效率,降低处理时间。
[0130]
本发明技术方案中第一节点以及第二节点故障时,可以根据冒泡算法重新确定,避免了因为当前节点故障,造成任务无法处理,有效地提高了客户端登录以及连接的可靠性。
[0131]
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1