聚合国内IT技术精华文章,分享IT技术精华,帮助IT从业人士成长

IDF15:Ceph性能测试及优化浅析

2015-04-10 17:45 浏览: 2231849 次 我要评论(0 条) 字号:

在昨天写了《IDF15Xeon D被阉割?SSD性能的“色子效应”》一文之后,有位业内专家提出了批评,我先虚心接受。

 

“那是20123500刚出来的东西,现在的SSD,特别是3D的出现,已经把并发度的问题直接ko了。”

 

“现在SSD的应用,特别是用在云计算和RDS,队列深度肯定不止64了。有一家的RDS直接是64个实例。”

 

和专业人士比起来,我确实有些班门弄斧。不过,写东西出来也只是希望帮大家开阔一下思路,今天我再写点偏软件的,不算自己太擅长的领域吧:)

 

三种数据副本一致性模型




首先我们看下Ceph的读/写流程。以3副本为例,写入操作会先到主副本所在的服务器,然后复制到另外2个副本的服务器并全部返回ok,才向客户端确认。这属于主从副本强一致性的模型。而读取操作只针对主副本,在访问并发度足够的情况下,读请求会被打散到足够多的驱动器以消除热点。

 

 


上图来自我的朋友@刘爱 的演讲资料,他是国内知名分布式文件系统专家,特别擅长Gluster,目前在Server SAN领域创业。

 

我们看到除了CephMaster-slave replication之外,还有另外两种强一致性模型——Chain replication(链式复制)和Direct replication(直接复制),Gluster采用的应该是直接复制。

 

Gluster这种方式的好处,就是存储节点之间没有数据流量,但客户端写入时直接就要3份(以3副本为例),那么网卡的带宽利用率只有1/3Ceph的网络开销则增加在OSD存储节点之间的互连上面,1个万兆客户端接口要对应2OSD集群连接才能充分发挥带宽,当然如果利用上全双工,3副本至少要用2个网口才算优化吧?

 

Ceph块存储性能预估与测试

 



Intel资料里的测试环境,3台客户机配置不同,每台上面跑40个运行fio负载的虚拟机。4个存储节点配置相同,每台107200转硬盘,2400GB DC S3700 SSD放的是Journal日志。

 

 



测量原始性能——也就是单个HDD的性能,单盘的4KB随机写比读还快是缓存的因素。这里在OSD上用随机512KB替代客户端64KB顺序负载的原因应该是:后者的连续存储目标会被HashCrash)算法打散在集群中的不同位置。我记得UnitedStack曾经在一个活动上用随机读来展示Ceph的性能(接近万兆网卡瓶颈),当时有人说是针对Ceph特点来设计的,我关键还在于提高并发度吧?

 

预计集群性能——这里是按照2副本来配置,所以理想状态下可以达到40块硬盘的读取性能,和20块硬盘的写入性能。

 

 



实测结果如上表,我就不过多解释了。

 

Ceph对象性能测试、瓶颈分析

 



Ceph的对象存储需要增加Rados网关,这方面显然没有Swift这样原生来的理想,价值在哪里呢?下面我给出UnitedStack @朱荣泽 兄弟的2ppt来解释一下,有些朋友应该看到过了:)

 






 

 



这里的测试方法与前面针对Ceph块设备的就不同了。首先128KB读取的“平均闲置时间”(翻译成平均访问时间应该更准确)可能是被缓存命中了?读IOPS和带宽基本上达到了写的3倍(因为是3副本),而10MB的读/写的平均访问时间基本上也是3倍的关系。不知道Gluster文件系统用类似的方法测试结果会如何?

 

最右边一列出的“瓶颈”分析也挺有价值的。其中10MB/写带宽分别达到了RGWOSD网卡的瓶颈,这里可以看出3副本的OSD节点用一个网口不够了吧?

 

SSD Cache分层和纠删码优化

 



之前我们知道像UnitedStack托管云这样的配置了全SSD Ceph集群。对于冷数据比例较大的应用,可能对容量有更多需求,这时混合存储可能是个更好的方式,而CephCache分层的支持也在不断成熟。

 

如上图,SSD Cache层用副本保护模式,HDD支持层用纠删码进一步降低成本。这让我想起以前听过淘宝的TFS也有3副本和纠删码两个分层,不过都是在硬盘之间按数据冷热度迁移。

 

 



采用“代理读写”的方式优化,针对Cache层的IO路径变得更加直接。我联想到Dell Compellent阵列的自动分层存储也是数据先进到高速SSD层再“下沉”,不过这类技术的数据块定位有元数据来跟踪,而不是读/写都永远经过“代理”。

 

 



关于纠删码(擦除编码)和多副本的对比,我在去年的《IDF14:软硬兼施冷存储 Atom C2000打倒ARM》一文中提到过。据了解Swift对象存储对它的支持还不成熟,不知道主要针对块存储(高性能)应用的Ceph进展如何?

 

 



一看到纠删码性能的优化,Intel又高兴了——这里再次出现ISA-L的身影。干用计算来换时间的事情,CPU强大的能力就不用担心被浪费,跑ZFS文件系统等也是如此。

 

 



最后列出Ceph的最佳部署实践,仅供参考。

 

今天就写到这里吧,明天一早还要出差。也不知道我学习的这点东西有没有理解错误的地方,还是欢迎大家多批评指正:)

 

参考资料《Ceph:针对云工作负载在英特尔架构上优化开源存储软件》可以访问 http://pan.baidu.com/s/1pJoOO4N 下载。

 


感谢您的阅读和支持!《企业存储技术》微信公众号:huangliang_storage 

IDF15:Xeon <wbr>D被阉割?SSD性能的“色子效应”

历史文章汇总:http://blog.sina.com.cn/firegl


 青春就应该这样绽放  游戏测试:三国时期谁是你最好的兄弟!!  你不得不信的星座秘密


网友评论已有0条评论, 我也要评论

发表评论

*

* (保密)

Ctrl+Enter 快捷回复