基于iSCSI协议的分布式块存储数据访问方法及系统与流程

文档序号:12278716阅读:374来源:国知局
基于iSCSI协议的分布式块存储数据访问方法及系统与流程

本发明涉及云存储的技术领域,特别是涉及一种基于iSCSI协议的分布式块存储数据访问方法及系统。



背景技术:

传统的网络存储系统采用集中的存储服务器存放所有数据。存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。

分布式存储是将数据分散存储在多台独立的设备上,其采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,不但提高了系统的可靠性、可用性和存取效率,还易于扩展。

现有技术中,对分布式块存储采用的是内核态的LIO访问方法。但是该访问方法的二次开发难度大,且用户的可选择性不强。

Internet小型计算机系统接口协议(Internet Small Computer System Interface,iSCSI)是2003年IETF(InternetEngineering Task Force,互联网工程任务组)制订的一项标准,用于将小型计算机系统接口(Small Computer System Interface,SCSI)数据块映射成以太网数据包。从根本上说,iSCSI协议是一种利用IP网络来传输潜伏时间短的SCSI数据块的方法,iSCSI使用以太网协议传送SCSI命令、响应和数据。iSCSI克服了直接连接存储的局限性,能够跨不同服务器共享存储资源,并可以在不停机状态下扩充存储容量,实现远程存储管理。

iSCSI协议的工作过程:当iSCSI主机应用程序发出数据读写请求后,操作系统会生成一个相应的SCSI命令,该SCSI命令在iSCSI主机(initiator)层被封装成ISCSI消息包并通过TCP/IP传送到设备侧,设备侧的iSCSI目标(target)层会解开iSCSI消息包,得到SCSI命令的内容,然后传送给SCSI设备执行;设备执行SCSI命令后的响应,在经过设备侧iSCSI target层时被封装成ISCSI响应PDU,通过TCP/IP网络传送给主机的ISCSI initiator层,iSCSI initiator会从ISCSI响应PDU里解析出SCSI响应并传送给操作系统,操作系统再响应给应用程序。

对于规模不大的iSCSI target采用用户态的iSCSI协议访问虽然更为便捷,但也存在以下问题:

(1)无法满足Active/passive多路径环境和集群多节点访问存储需求;

(2)多节点通过iSCSI协议访问时,访问冲突导致对同一逻辑单元号(Logical Unit Number,LUN)的操作异常;

(3)在分布式访问存储中,均衡器成为资源均衡的瓶颈。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于iSCSI协议的分布式块存储数据访问方法及系统,能够满足分布式集群块存储iSCSI多路径访问,提供高可用与高并发的访问网关,并减少分布式块存储并发访问的权限冲突,避免资源均衡的性能瓶颈,为数据访问的安全性、可靠性提供保障。

为实现上述目的及其他相关目的,本发明提供一种基于iSCSI协议的分布式块存储数据访问方法,包括构建基于虚拟IP机制的多资源管理系统,所述多资源管理系统包括主机层、iSCSI协议层和存储层;所述主机层用于提供访问分布式块存储的访问路径列表;所述iSCSI协议层用于提供主机层访问分布式块存储的路径;所述存储层用于基于Ceph分布式文件系统,对存储驱动层通过块存储接口RBD提供块访问;在该多资源管理系统中,集群中所有节点的同一分布式块存储的LUN信息完全一致;所有主机的访问路径列表完全一致;每个分布式块存储都与唯一的虚拟IP一一对应;基于动态反馈将虚拟IP资源分配到集群各节点,使得集群各节点均衡负载;其中分配虚拟IP资源时循环执行以下操作:设置可分配最低虚拟IP资源容余Mmin;计算集群各节点的虚拟IP资源容余;选取集群中的满足条件Mi>Mmin的所有节点,Mi为集群中节点的虚拟IP资源容余;若集群中不存在满足该条件的节点,则重新设置可分配最低虚拟IP资源容余,直至选取到满足该条件的节点;将选取的节点加入到备选节点集合;计算备选节点集合中各节点的权值;选取备选节点集合中权值最大的节点;计算备选节点集合中权值最大的节点的负载变化值;根据备选节点集合中权值最大的节点的负载变化值,修改备选节点集合中权值最大的节点的虚拟IP资源容余。

于本发明一实施例中,所述虚拟IP机制通过分布式集群组件管理系统来实现;所述分布式集群组件管理系统包括集群资源管理器、本地资源管理器和消息及成员管理模块;

所述集群资源管理器用于对集群和资源的各种事件做出反应和决策;资源事件包括虚拟IP的创建、删除、链路异常;

所述本地资源管理器用于提供虚拟IP资源及块存储操作的bash脚本;

所述消息及成员管理模块用于集群资源管理器和本地资源管理器之间的消息传递以及分布式集群中成员关系管理。

于本发明一实施例中,所述基于虚拟IP机制的多资源管理系统采用以下方式管理虚拟IP资源:

创建虚拟IP-分布式块存储-LUN资源组;

设置虚拟IP-分布式块存储-LUN资源组属性;

若属性设置失败,则删除虚拟IP-分布式块存储-LUN资源组;若属性设置成功,则将虚拟IP-分布式块存储-LUN资源组映射至主机层;若虚拟IP-分布式块存储-LUN资源组映射至主机层失败,则删除虚拟IP-分布式块存储-LUN映射和虚拟IP-分布式块存储-LUN资源组;若虚拟IP-分布式块存储-LUN资源组映射至主机层成功,则更新虚拟IP-分布式块存储-LUN数据库信息。

于本发明一实施例中,根据公式Mi=Mn+k1*Δt*C/L-k2*Rn/C计算集群各节点的虚拟IP资源容余;其中Mn为上次时间片到达时由集群的仲裁节点传入节点的负载容余,k1*Δt*C/L为时间段Δt内节点完成的负载,k2*Rn/C为时间段Δt内为集群的仲裁节点添加新请求而增加的负载;k1、k2为自定义系数;Rn为Δt时间段内增加的请求个数;C为节点的性能;L为节点的当前负载;Δt为当前时间与上次时间片到达时的时间差。

于本发明一实施例中,备选集合中权值最大的节点的虚拟IP资源容余修改为备选集合中权值最大的节点的原虚拟IP资源容余与Δt时间内该节点的负载变化值之差,Δt为当前时间与上次时间片到达时的时间差。

同时,本发明还提供一种基于iSCSI协议的分布式块存储数据访问系统,包括构建模块和均衡模块;

所述构建模块用于构建基于虚拟IP机制的多资源管理系统,所述多资源管理系统包括主机层、iSCSI协议层和存储层;所述主机层用于提供访问分布式块存储的访问路径列表;所述iSCSI协议层用于提供主机层访问分布式块存储的路径;所述存储层用于基于Ceph分布式文件系统,对存储驱动层通过块存储接口RBD提供块访问;在该多资源管理系统中,集群中所有节点的同一分布式块存储的LUN信息完全一致;所有主机的访问路径列表完全一致;每个分布式块存储都与唯一的虚拟IP一一对应;

所述均衡模块用于基于动态反馈将虚拟IP资源分配到集群各节点,使得集群各节点均衡负载;其中分配虚拟IP资源时循环执行以下操作:

设置可分配最低虚拟IP资源容余Mmin

计算集群各节点的虚拟IP资源容余;

选取集群中的满足条件Mi>Mmin的所有节点,Mi为集群中节点的虚拟IP资源容余;若集群中不存在满足该条件的节点,则重新设置可分配最低虚拟IP资源容余,直至选取到满足该条件的节点;

将选取的节点加入到备选节点集合;

计算备选节点集合中各节点的权值;

选取备选节点集合中权值最大的节点;

计算备选节点集合中权值最大的节点的负载变化值;

根据备选节点集合中权值最大的节点的负载变化值,修改备选节点集合中权值最大的节点的虚拟IP资源容余。

于本发明一实施例中,所述构建模块中,所述虚拟IP机制通过分布式集群组件管理系统来实现;所述分布式集群组件管理系统包括集群资源管理器、本地资源管理器和消息及成员管理模块;

所述集群资源管理器用于对集群和资源的各种事件做出反应和决策;资源事件包括虚拟IP的创建、删除、链路异常;

所述本地资源管理器用于提供虚拟IP资源及块存储操作的bash脚本;

所述消息及成员管理模块用于集群资源管理器和本地资源管理器之间的消息传递以及分布式集群中成员关系管理。

于本发明一实施例中,所述基于虚拟IP机制的多资源管理系统采用以下方式管理虚拟IP资源:

创建虚拟IP-分布式块存储-LUN资源组;

设置虚拟IP-分布式块存储-LUN资源组属性;

若属性设置失败,则删除虚拟IP-分布式块存储-LUN资源组;若属性设置成功,则将虚拟IP-分布式块存储-LUN资源组映射至主机层;若虚拟IP-分布式块存储-LUN资源组映射至主机层失败,则删除虚拟IP-分布式块存储-LUN映射和虚拟IP-分布式块存储-LUN资源组;若虚拟IP-分布式块存储-LUN资源组映射至主机层成功,则更新虚拟IP-分布式块存储-LUN数据库信息。

于本发明一实施例中,所述均衡模块中,根据公式Mi=Mn+k1*Δt*C/L-k2*Rn/C计算集群各节点的虚拟IP资源容余;其中Mn为上次时间片到达时由集群的仲裁节点传入节点的负载容余,k1*Δt*C/L为时间段Δt内节点完成的负载,k2*Rn/C为时间段Δt内为集群的仲裁节点添加新请求而增加的负载;k1、k2为自定义系数;Rn为Δt时间段内增加的请求个数;C为节点的性能;L为节点的当前负载;Δt为当前时间与上次时间片到达时的时间差。

于本发明一实施例中,所述均衡模块中,备选集合中权值最大的节点的虚拟IP资源容余修改为备选集合中权值最大的节点的原虚拟IP资源容余与Δt时间内该节点的负载变化值之差,Δt为当前时间与上次时间片到达时的时间差。

如上所述,本发明的基于iSCSI协议的分布式块存储数据访问方法及系统,具有以下有益效果:

(1)采用虚拟IP机制为分布式块存储提供高可用与高并发访问网关,减少了分布式块存储并发访问的权限冲突,提高了数据并发访问的安全性、可靠性;

(2)通过基于动态反馈的虚拟IP资源均衡算法,将虚拟IP资源合理分配到分布式集群各节点,使得分布式集群各节点均衡负载,从而保证分布式块存储系统的处理能力和服务质量。

附图说明

图1显示为本发明的基于iSCSI协议的分布式块存储数据访问方法的流程图;

图2显示为本发明的基于虚拟IP机制的多资源管理系统的结构示意图;

图3显示为本发明的基于iSCSI协议的分布式块存储数据访问系统的结构示意图。

元件标号说明

1 构建模块

2 均衡模块

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

本发明的基于iSCSI协议的分布式块存储数据访问方法及系统采用虚拟IP(Virtual IP,VIP)机制实现分布式集群中各业务节点通过iSCSI链路、采用Active/Passive多路径策略访问分布式块存储。集群多节点访问分布式块存储时,由于分布式块存储的访问网关是唯一的,故能够提供分布式块存储的并发性访问。一旦集群节点出现故障,分布式块存储访问网关能够在各节点间有效的切换,以提供分布式块存储访问网关的高可用性。同时,采用基于动态反馈的虚拟IP资源均衡算法,将虚拟IP资源合理分配到集群各节点,使得集群各节点均衡负载,从而保证分布式块存储系统的处理能力和服务质量。

参照图1,本发明的基于iSCSI协议的分布式块存储数据访问方法包括以下内容:

(1)构建基于虚拟IP机制的多资源管理系统,该多资源管理系统包括主机层(intiator层)、iSCSI协议层和存储层(target层)。图2所示即为本发明的基于虚拟IP机制的多资源管理系统的结构示意图。

具体地,initiator层用于提供访问分布式块存储(target)的访问路径列表,每条访问路径包括虚拟IP、端口(port)和iSCSI唯一标识(iSCSI qualified name,iqn)。

通过每条访问路径,能够获取对应的虚拟设备。其中,该虚拟设备是存储端的分布式块存储在initiator端的映射表现。即:分布式块存储在存储端体现为/dev/a,在initator端体现为/dev/b。

iSCSI协议层用于提供主机层访问分布式块存储的路径。

存储层用于基于Ceph分布式文件系统,对存储驱动层通过块存储RBD接口提供块访问。其中,存储层基于RADOS协议提供一层块设备的抽象,支持对iSCSI的支持。

在该多资源管理系统中,集群中所有节点的同一target的LUN信息完全一致;所有initiator的访问路径列表完全一致;每个target都与唯一的虚拟IP一一对应。

具体地,LUN添加到集群所有节点的target中,每个节点允许多个target,但同一target有且只有一个LUN。任意initiator可访问任意target和LUN信息。

在构建模块中,通过分布式集群组件管理系统来实现虚拟IP机制。该分布式集群组件管理系统包括集群资源管理器、本地资源管理器和消息及成员管理模块。

其中,集群资源管理器用于对集群和资源的各种事件做出反应和决策。其中,资源事件包括虚拟IP的创建、删除、链路异常等情况。

本地资源管理器用于提供虚拟IP资源及块存储操作的bash脚本。本地资源管理中与虚拟IP资源及块存储相关的bash脚本运行的逻辑关系由集群资源管理器进行决策。也就是说,本地资源管理器是执行者;集群资源管理器是决策者,能够统筹本地资源脚本。

消息及成员管理模块用于集群资源管理器和本地资源管理器之间的消息传递以及分布式集群中成员关系管理。

具体地,在基于虚拟IP机制的多资源管理系统中,采用以下方式管理虚拟IP资源:

步骤S11、创建虚拟IP-分布式块存储-LUN(虚拟IP-target-LUN)资源组。

具体地,采用本地资源脚本创建虚拟IP-target-LUN资源组。

步骤S12、设置IP-target-LUN资源组属性。

具体地,IP-target-LUN资源组属性包括节点分布吸附性、资源的启动顺序等等。

步骤S13、若属性设置失败,则删除虚拟IP-target-LUN资源组;若属性设置成功,则将虚拟IP-target-LUN资源组映射至initiator;若虚拟IP-target-LUN资源组映射至initiator失败,则删除虚拟IP-target-LUN映射和虚拟IP-target-LUN资源组;若虚拟IP-target-LUN资源组映射至initiator成功,则更新虚拟IP-target-LUN数据库信息。

其中,虚拟IP-target-LUN数据库存放在存储端。故存储端可管理映射关系。

(2)基于动态反馈将虚拟IP资源分配到集群各节点,使得集群各节点均衡负载;其中分配虚拟IP资源时循环执行以下操作:

步骤S21、设置可分配最低虚拟IP资源容余Mmin

步骤S22、计算集群各节点的虚拟IP资源容余。

具体地,根据公式Mi=Mn+k1*Δt*C/L-k2*Rn/C计算集群各节点的虚拟IP资源容余;其中Mn为上次时间片到达时由集群的仲裁节点传入节点的负载容余,k1*Δt*C/L为时间段Δt内节点完成的负载,k2*Rn/C为时间段Δt内为集群的仲裁节点添加新请求而增加的负载。其中,k1、k2为自定义系数;Rn为Δt时间段内增加的请求个数;C为节点的性能;L为节点的当前负载;Δt为当前时间与上次时间片到达时的时间差。

仲裁节点相当于集群中的管理节点,对资源具有仲裁属性。

步骤S23、选取集群中的满足条件Mi>Mmin的所有节点,Mi为集群中节点的虚拟IP资源容余;若集群中不存在满足该条件的节点,则重新设置可分配最低虚拟IP资源容余,直至选取到满足该条件的节点。

步骤S24、将选取的节点加入到备选节点集合。

步骤S25、计算备选节点集合中各节点的权值。

具体地,根据公式W=C/L计算备选节点集合中各节点的权值,其中C为节点性能参数,L为节点当前负载。

步骤S26、选取备选节点集合中权值最大的节点。

步骤S27、计算备选节点集合中权值最大的节点的负载变化值。

具体地,-k1*Δt*C/L+k/C为Δt时间内权值最大的节点的负载变化值,k为自定义参数。因此,权值最大的节点的当前负载为Li-k1*Δt*C/L+k/C,其中Li为上次时间片到达时由集群的仲裁节点传入权值最大的节点的负载值。

步骤S28、根据备选节点集合中权值最大的节点的负载变化值,修改备选节点集合中权值最大的节点的虚拟IP资源容余。

具体地,根据公式M=Mi+k1*Δt*C/L-k/C修改备选节点集合中权值最大的节点的虚拟IP资源容余;其中Mi为权值最大的节点的虚拟IP资源容余,-k1*Δt*C/L+k/C为Δt时间内权值最大的节点的负载变化值,也就是Δt时间内权值最大的节点的虚拟IP资源容余的变化值。因此,权值最大的节点的虚拟IP资源容余修改为权值最大的节点的原虚拟IP资源容余与Δt时间内权值最大的节点的负载变化值之差。

参照图3,本发明的基于iSCSI协议的分布式块存储数据访问系统包括构建模块1和均衡模块2。

构建模块1用于构建基于虚拟IP机制的多资源管理系统,该多资源管理系统包括主机层(intiator层)、iSCSI协议层和存储层(target层)。

具体地,initiator层用于提供访问分布式块存储(target)的访问路径列表,每条访问路径包括虚拟IP、端口(port)和iSCSI唯一标识(iSCSI qualified name,iqn)。

通过每条访问路径,能够获取对应的虚拟设备。其中,该虚拟设备是存储端的分布式块存储在initiator端的映射表现。即:分布式块存储在存储端体现为/dev/a,在initator端体现为/dev/b。

iSCSI协议层用于提供主机层访问分布式块存储的路径。

存储层用于基于Ceph分布式文件系统,对存储驱动层通过块存储RBD接口提供块访问。其中,存储层基于RADOS协议提供一层块设备的抽象,支持对iSCSI的支持。

在该多资源管理系统中,集群中所有节点的同一target的LUN信息完全一致;所有initiator的访问路径列表完全一致;每个target都与唯一的虚拟IP一一对应。

具体地,LUN添加到集群所有节点的target中,每个节点允许多个target,但同一target有且只有一个LUN。任意initiator可访问任意target和LUN信息。

在本发明中,通过分布式集群组件管理系统来实现虚拟IP机制。该分布式集群组件管理系统包括集群资源管理器、本地资源管理器和消息及成员管理模块。

其中,集群资源管理器用于对集群和资源的各种事件做出反应和决策。其中,资源事件包括虚拟IP的创建、删除、链路异常等情况。

本地资源管理器用于提供虚拟IP资源及块存储操作的bash脚本。本地资源管理中与虚拟IP资源及块存储相关的bash脚本运行的逻辑关系由集群资源管理器进行决策。也就是说,本地资源管理器是执行者;集群资源管理器是决策者,能够统筹本地资源脚本。

消息及成员管理模块用于集群资源管理器和本地资源管理器之间的消息传递以及分布式集群中成员关系管理。

具体地,在基于虚拟IP机制的多资源管理系统中,采用以下方式管理虚拟IP资源:

步骤S11、创建虚拟IP-分布式块存储-LUN(虚拟IP-target-LUN)资源组。

具体地,采用本地资源脚本创建虚拟IP-target-LUN资源组。

步骤S12、设置IP-target-LUN资源组属性。

具体地,IP-target-LUN资源组属性包括节点分布吸附性、资源的启动顺序等等。

步骤S13、若属性设置失败,则删除虚拟IP-target-LUN资源组;若属性设置成功,则将虚拟IP-target-LUN资源组映射至initiator;若虚拟IP-target-LUN资源组映射至initiator失败,则删除虚拟IP-target-LUN映射和虚拟IP-target-LUN资源组;若虚拟IP-target-LUN资源组映射至initiator成功,则更新虚拟IP-target-LUN数据库信息。

其中,虚拟IP-target-LUN数据库存放在存储端。故存储端可管理映射关系。

均衡模块2与构建模块1相连,用于基于动态反馈将虚拟IP资源分配到集群各节点,使得集群各节点均衡负载;其中分配虚拟IP资源时循环执行以下操作:

步骤S21、设置可分配最低虚拟IP资源容余Mmin

步骤S22、计算集群各节点的虚拟IP资源容余。

具体地,根据公式Mi=Mn+k1*Δt*C/L-k2*Rn/C计算集群各节点的虚拟IP资源容余;其中Mn为上次时间片到达时由集群的仲裁节点传入节点的负载容余,k1*Δt*C/L为时间段Δt内节点完成的负载,k2*Rn/C为时间段Δt内为集群的仲裁节点添加新请求而增加的负载。其中,k1、k2为自定义系数;Rn为Δt时间段内增加的请求个数;C为节点的性能;L为节点的当前负载;Δt为当前时间与上次时间片到达时的时间差。

仲裁节点相当于集群中的管理节点,对资源具有仲裁属性。

步骤S23、选取集群中的满足条件Mi>Mmin的所有节点,Mi为集群中节点的虚拟IP资源容余;若集群中不存在满足该条件的节点,则重新设置可分配最低虚拟IP资源容余,直至选取到满足该条件的节点。

步骤S24、将选取的节点加入到备选节点集合。

步骤S25、计算备选节点集合中各节点的权值。

具体地,根据公式W=C/L计算备选节点集合中各节点的权值,其中C为节点性能参数,L为节点当前负载。

步骤S26、选取备选节点集合中权值最大的节点。

步骤S27、计算备选节点集合中权值最大的节点的负载变化值。

具体地,-k1*Δt*C/L+k/C为Δt时间内权值最大的节点的负载变化值,k为自定义参数。因此,权值最大的节点的当前负载为Li-k1*Δt*C/L+k/C,其中Li为上次时间片到达时由集群的仲裁节点传入权值最大的节点的负载值。

步骤S28、根据备选节点集合中权值最大的节点的负载变化值,修改备选节点集合中权值最大的节点的虚拟IP资源容余。

具体地,根据公式M=Mi+k1*Δt*C/L-k/C修改备选节点集合中权值最大的节点的虚拟IP资源容余;其中Mi为权值最大的节点的虚拟IP资源容余,-k1*Δt*C/L+k/C为Δt时间内权值最大的节点的负载变化值,也就是Δt时间内权值最大的节点的虚拟IP资源容余的变化值。因此,权值最大的节点的虚拟IP资源容余修改为权值最大的节点的原虚拟IP资源容余与Δt时间内权值最大的节点的负载变化值之差。

综上所述,本发明的基于iSCSI协议的分布式块存储数据访问方法及系统采用VIP机制为分布式块存储提供高可用与高并发访问网关,减少了分布式块存储并发访问的权限冲突,提高了数据并发访问的安全性、可靠性;通过基于动态反馈的VIP资源均衡算法,将VIP资源合理分配到集群各节点,使得集群各节点均衡负载,从而保证分布式块存储系统的处理能力和服务质量。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1