一种Ceph云存储下基于LIO的iSCSI GateWay高可用实现方法技术

技术编号:20331237 阅读:31 留言:0更新日期:2019-02-13 07:05
本发明专利技术提供一种Ceph云存储下基于LIO的iSCSI GateWay高可用实现方法,利用LIO的targetcli与python‑rtslib接口来设计与开发配置iSCSI GateWay的管理模块。能够适用于LUN规模较大的场景,且在iSCSI GateWay的选择、target的创建、负载均衡等方面更加灵活,提出了新的组织架构及其实现方法,避免了集群中的几个节点成为整个集群的瓶颈,以及很多个LUN共享一个session的资源造成读写的瓶颈问题,解决了现有方案中存在的性能瓶颈问题,优化了大规模LUN场景下的性能,同时支持I/O的故障迁移和负载均衡,具备高性能、高可靠性以及高可扩展性。

【技术实现步骤摘要】
一种Ceph云存储下基于LIO的iSCSIGateWay高可用实现方法
本专利技术属于云存储
,尤其涉及一种Ceph云存储下基于LIO的iSCSIGateWay高可用实现方法。
技术介绍
随着Ceph的商业化,一些企业开始利用Ceph来给客户提供一些替代存储区域网络的解决方案,希望利用Ceph的高可用性、高可扩展性来提供一个大规模、低成本的通用存储。Ceph在应用于这种场景时,还存在一些兼容性问题:Ceph提供的接口并不支持SCSI标准的块接口,因此无法直接兼容VMware、Windows以及Solaris等采用标准SCSI接口的设备。为解决上述技术问题,业内提出了iSCSI的解决方案以扩大Ceph的应用,采用架设iSCSIGateWay的方式来为Ceph提供iSCSI的访问接口,Ceph开源社区也是采用这种方案。iSCSIGateWay在iSCSI中是作为服务端的,所以它应当是iSCSITarget节点。目前,社区首选的是使用LIO及TCMU作为iSCSITarget的选型,并配合TCMU-Runner来完成Ceph中RBD块设备的iSCSI支持。社区还提供了ceph-iscsi-cli、ceph-iscsi-config两个工具相互配合来创建配置iSCSIGateWay。目前社区提供的ceph-iscsi-cli、ceph-iscsi-config两个工具还不完善,采用这两个工具的方案存在一下不足:1、在创建iSCSIGateWay的时候只能选择2-4个节点作为网关节点,在集群庞大的时候,这几个节点将会成为集群iSCSI访问的性能瓶颈。如图1所示,是使用ceph-iscsi-cli来配置iSCSIGateWay的架构组织,其包含很多了节点,却只能选择其中2-4个,图中场景选择了两个作为网关,并且在选中的节点中只能创建一个Target,所有的LUN都将放在这一个Target下。没有选中的节点,仅仅部署了Ceph,当LUN访问需求增大,网关数量少和Target数量将成为性能瓶颈,不能充分发挥其他节点的资源优势。2、当选择了特定的节点创建iSCSIGateWay的时候,整个iSCSIGateWay节点组成的网关集群,只能创建一个Target,Target下只存在一个有效的TPG,而一个Target下目前只能创建256个LUN。3、当initiator与target建立连接,连接initiator和target的一组TCP连接构成一个session。一个initiator与target建立连接以后,它能够访问到的LUN都会挂载到客户端下,当客户端对这些LUN进行读写访问的时候,它们会共享这一个session的资源,这样同样存在性能的瓶颈。4、对LUN的owner的选择,过于简单,仅仅考虑节点的owner的个数,不能很好的实现负载均衡。5、只适用于LUN数目较少的场景,对于LUN数目较大的时候存在性能瓶颈。
技术实现思路
针对目前使用ceph-iscsi-cli与ceph-iscsi-config来配置iscsiGateWay高可用的方案存在着适用场景集群规模较小、性能在较多方面存在瓶颈的不足,本专利技术提供一种Ceph云存储下基于LIO的iSCSIGateWay高可用实现方法。本专利技术采用如下技术方案:在一些可选的实施例中,提供一种Ceph云存储下基于LIO的iSCSIGateWay高可用实现方法,利用LIO的targetcli与python-rtslib接口来设计与开发配置iSCSIGateWay的管理模块,管理模块配置iSCSIGateWay的过程包括:新增一块LUN,为该LUN创建后端存储,将Ceph中的块设备作为该LUN的后端存储;在Ceph集群中创建RBD,开启RBD的exclusive-lock;利用LIO的targetcli或python-rtslib接口,将创建的RBD添加到TCMU的后端存储库中,并为后端存储块设备创建ALUA端口组,并根据ALUA的规则配置参数;默认使用整个Ceph集群作为网关集群,Ceph集群中的每个节点都可以在Schedule模块的调度下创建target,成为iSCSIGateWay,在所述网关集群中创建target;在target下创建tpg,tpg数量为副本数数量,并配置tpg;将LUN添加到target下,并配置端口组。在一些可选的实施例中,所述为后端存储块设备创建的ALUA端口组的名称分别为AO和ANO。在一些可选的实施例中,在所述网关集群中创建target的过程包括:由负载均衡算法在所述网关集群中选择节点,节点的个数由用户指定的高可用副本数来决定;在选出的节点上创建iqn号相同的target。在一些可选的实施例中,所述在target下创建tpg,tpg数量为副本数数量,并配置tpg的过程中,同一个target同时存在几个节点上,对于某一节点上的target,tpg有效状态为enable的只有一个,其余都是无效状态,无效状态的tpg用于标识对端,即标识同一个target其他的节点的IP。在一些可选的实施例中,所述将LUN添加到target下,并配置端口组的过程包括:负载均衡模块根据负载均衡算法,在包含target的几台节点上选出最优节点;将LUN添加到iqn号相同的target下;被选择出的最优节点上的target与最优节点的有效tpg,在挂载LUN的时候设置LUN的端口状态为AO,其他节点上的target在挂载LUN的时候设置LUN的端口状态为ANO。在一些可选的实施例中,当新增一个LUN到已经存在的指定target下时,通过查询数据库的方式获得所述已经存在的指定target的位置。在一些可选的实施例中,所述的一种Ceph云存储下基于LIO的iSCSIGateWay高可用实现方法,还包括:将配置文件通过调用Ceph提供的API下压保存到默认存储池rbd。本专利技术所带来的有益效果:1、在iSCSIGateWay的选择、target的创建、负载均衡等方面更加灵活,避免了集群中的几个节点成为整个集群的瓶颈,以及很多个LUN共享一个session的资源造成读写的瓶颈问题;2、能够选择集群中的任意节点作为网关节点,并且能够创建并管理多个target,在负载均衡上考虑了target的个数、节点的LUN的owner个数、节点的CPU使用率、CPU内存剩余量、节点的IPOS、节点的吞吐量、节点的带宽等因素,最终使其适用于LUN数量较大的场景。3、在解决了现有方案中存在的性能瓶颈问题,优化了大规模LUN场景下的性能的同时,支持I/O的故障迁移和负载均衡,具备高性能、高可靠性以及高可扩展性。附图说明图1是现有的方案iSCSIGateWay中Target与LUN、集群节点的组织结构;图2是本专利技术所采用的架构组织方式;图3是本专利技术高可用配置的原理;图4是本专利技术的流程示意图。具体实施方式以下描述和附图充分地示出本专利技术的具体实施方案,以使本领域的技术人员能够实践它们。其他实施方案可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部本文档来自技高网
...

【技术保护点】
1.一种Ceph云存储下基于LIO的iSCSI GateWay高可用实现方法,其特征在于,利用LIO的targetcli与python‑rtslib接口来设计与开发配置iSCSI GateWay的管理模块,管理模块配置iSCSI GateWay的过程包括:新增一块LUN,为该LUN创建后端存储,将Ceph中的块设备作为该LUN的后端存储;在Ceph集群中创建RBD,开启RBD的exclusive‑lock;利用LIO的targetcli或python‑rtslib接口,将创建的RBD添加到TCMU的后端存储库中,并为后端存储块设备创建ALUA端口组,并根据ALUA的规则配置参数;默认使用整个Ceph集群作为网关集群,Ceph集群中的每个节点都可以在Schedule模块的调度下创建target,成为iSCSI GateWay,在所述网关集群中创建target;在target下创建tpg,tpg数量为副本数数量,并配置tpg;将LUN添加到target下,并配置端口组。

【技术特征摘要】
1.一种Ceph云存储下基于LIO的iSCSIGateWay高可用实现方法,其特征在于,利用LIO的targetcli与python-rtslib接口来设计与开发配置iSCSIGateWay的管理模块,管理模块配置iSCSIGateWay的过程包括:新增一块LUN,为该LUN创建后端存储,将Ceph中的块设备作为该LUN的后端存储;在Ceph集群中创建RBD,开启RBD的exclusive-lock;利用LIO的targetcli或python-rtslib接口,将创建的RBD添加到TCMU的后端存储库中,并为后端存储块设备创建ALUA端口组,并根据ALUA的规则配置参数;默认使用整个Ceph集群作为网关集群,Ceph集群中的每个节点都可以在Schedule模块的调度下创建target,成为iSCSIGateWay,在所述网关集群中创建target;在target下创建tpg,tpg数量为副本数数量,并配置tpg;将LUN添加到target下,并配置端口组。2.根据权利要求1所述的一种Ceph云存储下基于LIO的iSCSIGateWay高可用实现方法,其特征在于,所述为后端存储块设备创建的ALUA端口组的名称分别为AO和ANO。3.根据权利要求2所述的一种Ceph云存储下基于LIO的iSCSIGateWay高可用实现方法,其特征在于,在所述网关集群中创建target的过程包括:由负载均衡算法在所述网关集群中选择节点,节点的个数由用户指定的高可用副本数来决定;在选出的节...

【专利技术属性】
技术研发人员:王洋杨东升于治国曾令钢潘东元
申请(专利权)人:南京易捷思达软件科技有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1