基于性能需求看存储:从调侃OpenStack和Ceph谈起
在OpenStack之前,这几年被人们谈论最多的开源项目应该是Linux和Hadoop。
当然Linux时间比较长了,对于它一直的茁壮成长,根据我从外界的了解,可能与Linus本人对内核的控制力度强有关,还有最大的商业发行版RedHat(同样开源,包括对应的CentOS)长期处于稳固地位。
至于Hadoop,最早的3篇论文来自Google,也是核心思想。Hadoop项目初期最大的贡献者是Yahoo,而且至少到成熟的1.0稳定版本都是如此。软件方面并非我的长项,后来对Hadoop的关注也减少了。
那么OpenStack呢?最初是Rackspace分享出来,然后有一段RedHat的投入较多,最近基金会里和社区里好像HP的力度最大。尽管众人拾柴,但OpenStack在还没有充分成熟的情况下,主导者就出现了变化。
在OpenStack IceHouse版本中贡献排名前十的公司如上图所示。红帽、IBM、HP、Rackspace以及Mirantis继续领先(引用自:http://www.openstack.cn/p1385.html 2014年4月)
(Juno版本)HP和Redhat是一个级别,Mirantis,Rackspace,IBM是一个级别。后面的差距都已经有点大。(引用自:http://www.chenshake.com/chat-openstack-contribution/ 2014年8月)
而开源组织、行业标准联盟面临的一个问题是:各方面利益的制衡。作为一个存储人,这一点我觉得在SNIA身上就比较明显,OpenStack也有类似的情况。我已经不止一次听到UnitedStack的兄弟说,他们想提交一些代码/patch到主流版本,但阻力较大。
CephFS的现状与未来
就在上周日举行的OpenStack存储技术研讨会上,我一方面看到UnitedStack继续预热宣讲尚未解决元数据集群稳定性(也就是高可用)的CephFS文件系统;另一方面也听到HP内部测试了Ceph分布式块存储之后,认为其尚未达到商业部署要求,而在Helion中推荐自家的软件定义存储VSA。
这里应该不难看出背后的商业驱动因素,我也指出HP StorVirtual(LeftHand)VSA目前存在的一些局限或者说不足,在这里就不展开了。
刚才又听到一位朋友说:“今儿装Ceph 0.9哎,太坑爹了。比Gluster差至少一个数量级啊。”
毕竟Gluster已经3.x版本了,其成熟度不容怀疑。国内著名Gluster专家,目前正在做分布式块存储(Server SAN)创业的@刘爱贵 表示:“Ceph适合用于块存储,文件系统不是它的长项(不如Gluster等),其对象存储功能还不如直接用Swift。”正如有的朋友所说:(块、文件和对象)都擅长也可以理解为都不擅长。
引用自刘爱贵的GlusterFS分布式文件系统分享 http://vdisk.weibo.com/s/HPecIjqX8sc
达沃时代CTO雷迎春则表示:“从体系结构的设计上,Ceph是2004年左右设计的,当时的目的是在千兆环境下充分利用硬盘的I/O,每一个硬盘有一个osd进程。而现在,硬件环境发生天翻地覆的变化,应用的workload大都来自虚拟机。Ceph要适应现在的硬、软环境,需要重新设计。”
“统一存储在功能上实现比较容易,小规模,如盘阵形式,不会有大的问题。但是,在中大规模,性能上和可靠性上很难做到一致。”
“Ceph的优势是Crush,劣势也是Crush。对于同质硬件、单一Workload,Crush会体现它的简单性,但是,实际情况是,我们的硬件是异质的,不仅CPU和Memory不同,存储介质也会不同,更重要的不同是workload的不同,特别是在多租户环境下对不同workload或用户的服务保证。”
注意:这里的11个9指的是数据可靠性而不是可用性(Availability)
由此来看,UnitedStack用全SSD达到单一客户端6000 IOPS,小于2ms延时,提供SLA和QoS(性能隔离)可以说做得不错了。只是还没看到闪存磁盘混合存储,以及混合工作负载下的表现。
众所周知,企业存储最重要的是稳定性;满足这个之后,应该是兼容性;性能可能要排在兼容性后面。用户为虚拟化/云平台后端维护不同后端的多个存储集群,来满足文件/块等访问协议需求,确实会增加复杂度。这时,我觉得Ceph倒是挺符合“中庸”的思路。
Ceph与OpenStack整合的一个好处是:Nova, Glance, Cinder之间没有数据传输,快速创建虚拟机,只需要管理一个统一存储。
再来看看Nutanix、ScaleIO、FusionStorage和VSAN,它们要么性能强大,要么功能丰富,要么和HyperVisor结合紧密,不过都只是块存储。针对VSAN提供文件服务的NexentaConnect,尽管我还没对其仔细研究,但大致理解成在VSAN分布式存储的节点上跑个虚机做ZFS NAS网关,估计差不多吧。
如果说OpenStack还有个CloudStack竞争的话,Ceph的“统一”或者说“通用”目前在流行的竞争产品中是有些独特性。不过我也了解到国内也有人在做类似通吃块、文件和对象三种访问协议的分布式存储;也有要攻关专门面向特定场景优化的Server SAN(可能就是文中出现过的大牛哦),我想这2个方向都是有市场需求的。
未来这里面会不会出现一家分布式软件定义存储(SDS)厂商呢?