新年夜话存储:从调侃OpenStack和Ceph谈起
黄亮 发表于:15年01月04日 00:31 [原创] 存储在线
最近有一段没写东西了,先自我批评一下:)今天在网上看到几位大神的吐槽,感觉有必要跟大家做个分享。在此基础上也谈谈我自己对开源、OpenStack、Ceph和软件定义存储的一些看法。本人水平有限,说的不对之处就当做抛砖引玉了。
F君:“我来介绍一下OpenStack,美国有句名言叫做‘两只火鸡也成不了雄鹰’,OpenStack就是这种指导思想下的产物。”
“为了彻底解决这个历史问题,OpenStack的战略就是引入200只火鸡!”
“你下载完代码后进去一看,里面简直像个屠场,两百只火鸡支离破碎的躺在里面,鸡翅、鸡腿、鸡胸甚至还有鸡脖子。”
“然后你需要自己把它拼接起来,才能飞起来。”
“但是问题是,要飞起来不需要200只翅膀,对吧?”
“所以你挑两个或者四个最好的装上。”
“最可怕的是,当你想检修一下翅膀,升个级的时候,发现新下载的安装包里再也找不到合适的翅膀了,虽然这次有多达300只翅膀。”
“结果你得到的还是两个火鸡翅膀驱动的‘鹰’。”
“然后你开始犯愁是老版本凑合用呢,还是重新在300只翅膀里挑一遍装个新的。”
“今天重感冒发高烧,说的都是胡话,大家见谅,哈哈哈。”
在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.html2014年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。
这里应该不难看出背后的商业驱动因素,我也指出HPStorVirtual(LeftHand)VSA目前存在的一些局限或者说不足,在这里就不展开了。
刚才又听到一位朋友说:“今儿装Ceph 0.9哎,太坑爹了。比Gluster差至少一个数量级啊。”
毕竟Gluster已经3.x版本了,其成熟度不容怀疑。国内著名Gluster专家,目前正在做分布式块存储(ServerSAN)创业的@刘爱贵表示:“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达到单一客户端6000IOPS,小于2ms延时,提供SLA和QoS(性能隔离)可以说做得不错了。只是还没看到闪存磁盘混合存储,以及混合工作负载下的表现。
众所周知,企业存储最重要的是稳定性;满足这个之后,应该是兼容性;性能可能要排在兼容性后面。用户为虚拟化/云平台后端维护不同后端的多个存储集群,来满足文件/块等访问协议需求,确实会增加复杂度。这时,我觉得Ceph倒是挺符合“中庸”的思路。
Ceph与OpenStack整合的一个好处是:Nova,Glance, Cinder之间没有数据传输,快速创建虚拟机,只需要管理一个统一存储。
再来看看Nutanix、ScaleIO、FusionStorage和VSAN,它们要么性能强大,要么功能丰富,要么和HyperVisor结合紧密,不过都只是块存储。针对VSAN提供文件服务的NexentaConnect,尽管我还没对其仔细研究,但大致理解成在VSAN分布式存储的节点上跑个虚机做ZFSNAS网关,估计差不多吧。
如果说OpenStack还有个CloudStack竞争的话,Ceph的“统一”或者说“通用”目前在流行的竞争产品中是有些独特性。不过我也了解到国内也有人在做类似通吃块、文件和对象三种访问协议的分布式存储;也有要攻关专门面向特定场景优化的ServerSAN(可能就是文中出现过的大牛哦),我想这2个方向都是有市场需求的。
未来这里面会不会出现一家分布式软件定义存储(SDS)厂商呢?
2015,新的一年开始了。如果我们在第二季度看到国内厂商(不是热衷跑分的某司哈)用分布式块存储跑出一个理想的SPC-1BenchMark(延伸阅读:SPC-1:闪存vs.磁盘新旧势力的战场)成绩,会作何感想呢?当然,ScaleIO等已经过云和恩墨的验证可以胜任OLTP应用了。如果可以的话,下一步就等着软件定义存储吹响大规模替代传统企业级磁盘阵列的号角了。
已经是元旦了,祝大家新年快乐!