返回 登录
5

“杉岩两语”企业级CEPH之路—:iSCSI优化与实践

阅读3634

本文作者:杉岩数据CTO邱尚高

图片描述

从开源到商用,一款企业级产品需要走过的路和踩过的坑还有很多很多,有些人过来了,有些人还在路上,而有些人则陷入了坑里……

本文为杉岩数据CTO邱尚高在ceph中国行深圳站上的分享,旨在为每一位在Ceph之路上前行的企业或个人提供一些有益的借鉴,如此,则甚好。

一、为什麽需要iSCSI:

CEPH提供了对象、块、CEPHFS,块接口主要通过librbd或者KRBD支持,librbd是应用态接口,普通应用不能直接使用,krbd只能部署在linux高内核版本系统。但是企业环境里面常用到的VMWare EXSi、Windows/Solaris操作系统是无法直接使用librbd,而krbd也无法运行在这些系统中。所以一个标准的iSCSI接口就成为这些系统使用CEPH的最优方案。

图片描述

二、CEPH提供iSCSI接口需要面临的问题:

杉岩团队在实际考虑iSCSI时,期望目标是分布式无状态的控制器集群,部署在所有的存储服务器上,分布式可扩展的,而且每个iSCSI Target都是Active的,所有target都可以处理请求,没有单点性能瓶颈的。
另外,考虑到未来全用户态软件栈的发展,我们也希望iSCSI Target是用户态的。

图片描述

2013年时我们考虑了开源TGT+librbd 的方案,这个方案的优点在与配置简单,网上的指导文档也很多。但随着研究的深入,我们却发现了一个很大的问题: 因为TGT单实例设计的,无法实现多个TGT之间的交互,所以导致了如下问题:

  1. 因为无法实现分布式锁,只能做成单Active target或者1主+多备的模式
  2. CEPH是分布式的,而iSCSI只有一个Active 实例,性能将会成为瓶颈
  3. 在一主多备模式下,主结点故障所带来的切换时间开销会非常大
  4. TGT本身的性能也非常差,主要原因包括单线程设计、tgt与librbd之间的内存拷贝、资源消耗过大
  5. 不能支持SCSI-2 和 SCSI-3的锁机制,VMFS或者MSCS故障转移集群无法使用

图片描述
图片描述

另外,对于实现一个企业级产品,还有些特有的问题,比如:

  1. Tgt有自身的管理命令,CEPH也有管理命令,如何整合?
  2. Rbd 与 target映射关系、鉴权等配置信息,如何持久化、如何保证多个TGT之间的一致性和同步?
  3. MPIO/ALUA的支持,TGT没有实现。
  4. 对于VMWare的VAAI支持很差,并未将操作下压到CEPH处理。

图片描述
问题提出了,那么接下来就是如何去解决这些问题了,以下,就是杉岩数据针对这些问题的具体解决方法:

三、企业级CEPH实践

图片描述

首先,我们重新编写了新的iSCSI Target,模块名称为STGT。STGT实现了分布式锁机制,从而解决了多个Active target之间支持release/reserve和 Persistent Reservation的问题。同时,将LUN映射信息存储在RADOS集群中,同时在STGT中缓存所有的元数据以加快访问速度。
当LUN映射信息发生变更时,会通知所有STGT的缓存进行变更。

图片描述

其次,在性能方面,我们通过多线程池提高IO的并发度。

再次,由于是重新开发的软件栈,STGT网络接收到iSCSI数据时,就是用buffer_list保存数据,之后不再需要任何拷贝就通过librados发送给OSD了,从而避免了两个不同开源模块之间的内存拷贝。优化后,单个STGT我们相对于开源TGT的性能,在并发IO下提升超过10倍的性能。

图片描述

我们完美的支持VAAI所有接口,对于XCOPY,我们将虚拟机拷贝下压到存储,并利用多个OSD并发拷贝,克隆性能超过TGT数10倍。

图片描述

对于Windows/Hyper-V,我们支持ODX特性,在拷贝大文件以及虚拟机克隆时,也可以将拷贝动作offload到存储,可以大大减少业务主机测得网络开销。

图片描述
图片描述

此外,我们很好的支持了MPIO、CHAP、ALUA等高级特性,在复杂业务场景下,更好的支撑传统的企业应用。

图片描述
总的来说,杉岩的STGT相对于开源TGT有如下好处:

  1. 扩展性:支持1024个target集群
  2. 性 能:单个杉岩STGT 10倍于开源TGT的并发处理能力。性能可以线性扩展。
  3. 集群支持:支持Active/Active 集群支持
  4. MPIO支持:杉岩STGT支持,开源TGT不支持
  5. VAAI性能:数10倍于开源TGT
  6. ODX 支持:杉岩STGT支持,开源TGT不支持
  7. 配置可靠性和一致性:杉岩STGT可以更好保证一致性, 开源TGT需要人工保证
  8. 配置方便性: 杉岩STGT通过统一工具配置, 开源TGT需要 tgtadm + ceph tool配合完成

图片描述

当然,如果使用杉岩的管理系统,配置就更加方便了!(笑脸)。

图片描述

以上,就是杉岩数据在企业级Ceph之路上的具体实践,未来的路还有很长,关注杉岩,我们和你一同经历。


130+位讲师,16大分论坛,中国科学院院士陈润生、滴滴出行高级副总裁章文嵩、联想集团高级副总裁兼CTO芮勇、上交所前总工程师白硕等专家将亲临2016中国大数据技术大会,票价折扣即将结束,预购从速

图片描述

评论