ceph适合云计算的使用场景吗?

Anytao提问于 2018-01-21 13:22
1 个回答
  • 时光好2018-01-21 22:12

    网易云的实践经验,Ceph是采用分布式架构设计的存储系统,具有高扩展、高可靠和高性能特性,并且经过了大量的用户线上的验证,能在云计算领域作为虚机后端发挥作用,但一些场景确实需要很强的优化能力。



    首先重复一个观点:任何技术(或者工具)的流行都不是无缘无故的,一定是触动了某些痛点,是否使用这项技术,关键是看应用场景。比如CAP这样的难题,没有对错,只有是否合适。



    在企业的不同应用场景下,对象存储、块存储和文件存储的需求都会存在,而Ceph的野心很大,一个项目覆盖三种服务,这是它的一个主要卖点,毕竟维护多套系统对一个团队而言是烦人的事情。题主的描述,充分体现了场景的复杂性,或许这也是考虑Ceph的原因之一,不惟Ceph抱OpenStack大腿。



    然而,Ceph涉及很多技术难点,比如文件系统就不是那么容易搞定的。强一致性下的恢复,也是很复杂的过程。Swift确实专一,在OpenStack中稳定,但我要的可能不只是对象啊,所以也有使用Ceph(或者Gluster)作为对象存储底层,上面使用Swift的API这么一种方案。



    网易云后端支持二种存储类型,包括基于iSCSI协议的分布式块存储NBS和基于Ceph的存储,分别满足企业用户在不同的场景的使用。NBS用来支持数据库等高性能IO的特定场景需求,用户默认是使用Ceph的存储,在一些特殊的场景下面,比如系统重启或深度支持快照,确实需要对Ceph进行优化改造才能很好地使用。我们选择时候的考虑和优化经验:



    开源Ceph系统的通用性更好,具备完善的存储系统功能,同时支持对象、文件、块三类存储。此外,Ceph社区发展也非常快,社区开发者越来越多,版本发布也越来越快。目前国内也已经有很多在生产系统使用Ceph存储的案例。Ceph目前在IO性能上还需要很多的优化才能满足高性能IO的需求。网易云块存储使用全SSD硬件,而Ceph项目在SSD流行之前诞生,主要面向慢速设备,现在虽然也在支持SAS/PCIe SSD的方向上发展,但还是没有满足我们的需要。我们有一个专门的团队做Ceph的优化,也做了不少工作。例如,Ceph运维需要重启OSD进程时,社区采用的是全量数据恢复方式,导致Ceph集群的IO性能在较长时间(10多分钟))内持续受到很大的影响,虚拟机读写Ceph盘的IO性能骤降到原来的10%-20%。后来在数据恢复时我们优化成了增量恢复的方式,重启OSD进程时,IO性能只降低了10%-20%,时间也从原来的5-10分钟缩短到1分钟左右;另外,在Ceph的参数调优方面,我们也做了一些调整,让Ceph集群的整体I/O吞吐能力比原来得到了1倍以上的提升。当前针对Ceph不能跑比较高性能的I/O应用如数据库的缺陷,我们目前投入比较大的人力和精力要去解决这个问题,从而扩大Ceph的应用场景。



    国内平安、盛大都有分享Ceph的应用。国外的实践,可以参考之前雅虎的经验:《雅虎PB级云对象存储COS实践:选择Ceph,放弃Swift》