设为首页 收藏本站
查看: 2119|回复: 0

[经验分享] “杉岩两语”企业级CEPH之路—:iSCSI优化与实践

[复制链接]

尚未签到

发表于 2017-6-21 20:21:40 | 显示全部楼层 |阅读模式
  从开源到商用,一款企业级产品需要走过的路和踩过的坑还有很多很多,有些人过来了,有些人还在路上,而有些人则陷入了坑里……
  本文为杉岩数据CTO邱尚高在ceph中国行深圳站上的分享,旨在为每一位在Ceph之路上前行的企业或个人提供一些有益的借鉴,如此,则甚好。
一、为什麽需要iSCSI:
  CEPH提供了对象、块、CEPHFS,块接口主要通过librbd或者KRBD支持,librbd是应用态接口,普通应用不能直接使用,krbd只能部署在linux高内核版本系统。但是企业环境里面常用到的VMWare EXSi、Windows/Solaris操作系统是无法直接使用librbd,而krbd也无法运行在这些系统中。所以一个标准的iSCSI接口就成为这些系统使用CEPH的最优方案。
DSC0000.jpg

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

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

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

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

  • Tgt有自身的管理命令,CEPH也有管理命令,如何整合?
  • Rbd 与 target映射关系、鉴权等配置信息,如何持久化、如何保证多个TGT之间的一致性和同步?
  • MPIO/ALUA的支持,TGT没有实现。
  • 对于VMWare的VAAI支持很差,并未将操作下压到CEPH处理。
DSC0004.jpg
问题提出了,那么接下来就是如何去解决这些问题了,以下,就是杉岩数据针对这些问题的具体解决方法:

三、企业级CEPH实践
DSC0005.jpg

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

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

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

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

  此外,我们很好的支持了MPIO、CHAP、ALUA等高级特性,在复杂业务场景下,更好的支撑传统的企业应用。
DSC00011.jpg
总的来说,杉岩的STGT相对于开源TGT有如下好处:


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

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

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-386513-1-1.html 上篇帖子: 关于Ceph现状与未来的一些思考 下篇帖子: 使用虚拟机CentOS7部署CEPH集群
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表