Ceph:针对云工作负载性能测试及优化浅析

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

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

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

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

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

三种数据副本一致性模型

 

 

Ceph性能测试及优化浅析

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

 

Ceph性能测试及优化浅析

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

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

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

#p#

Ceph块存储性能预估与测试

Ceph性能测试及优化浅析

 

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

 

Ceph性能测试及优化浅析

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

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

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

#p#

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

 

Ceph性能测试及优化浅析

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

Ceph性能测试及优化浅析

Ceph性能测试及优化浅析

Ceph性能测试及优化浅析

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

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

#p#

SSD Cache分层和纠删码优化

Ceph性能测试及优化浅析

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

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

 

Ceph性能测试及优化浅析

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

 

Ceph性能测试及优化浅析

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

 

Ceph性能测试及优化浅析

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

 

Ceph性能测试及优化浅析

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

博文出处:http://blog.sina.com.cn/s/blog_69406f8d0102vhdo.html

 

责任编辑:Ophira 来源: 个人博客
相关推荐

2010-06-12 14:59:34

IBM工作负载

2023-10-25 22:23:35

Dubbo路由

2022-11-02 08:05:09

2023-04-17 16:33:27

云计算工具云性能测试

2013-07-12 15:17:22

BGP组网BGP协议

2023-09-12 08:00:00

大数据数据管理Snowflake

2023-12-12 17:12:01

AI数据中心

2020-05-18 07:00:00

性能测试压力测试负载测试

2011-06-08 16:59:04

性能测试载测试压力测试

2023-02-02 08:04:15

Ceph数据CPU

2015-07-09 13:19:17

Ceph分布式存储性能调优

2022-08-23 08:00:59

磁盘性能网络

2011-07-04 17:38:47

性能测试

2011-10-17 09:47:53

应用性能工作负载服务器

2021-09-03 09:21:46

云计算工作负载云平台

2009-07-07 09:22:27

Servlet性能测试

2015-02-03 11:18:45

戴尔任意云云计算

2015-02-03 10:23:03

戴尔云计算戴尔任意云

2021-10-26 11:21:50

WindowsCeph性能

2018-07-25 19:44:27

数据库MySQL中间件
点赞
收藏

51CTO技术栈公众号