ceph day beijing: one ceph, two ways of thinking - between customers and developers

20
Perfect World Software (Beijing ) Co., Ltd. 完美世界软件(北京)有限公司 Zhang Xiaoyi 张晓宜 One Ceph , Two ways of thinking - between customers and developer s

Upload: ceph-community

Post on 05-Aug-2015

502 views

Category:

Technology


10 download

TRANSCRIPT

Page 1: Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Developers

Perfect World Software (Beijing) Co., Ltd.完美世界软件(北京)有限公司

Zhang Xiaoyi张晓宜

One Ceph, Two ways of thinking- between customers and developers

Page 2: Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Developers

完美世界Ceph的使⽤用情况

• 从2013年初开始研究Ceph

• 从2013年底将Ceph⽤用于研发和测试环境

• 从2014年5⽉月将Ceph正式使⽤用到⽣生产环境

Page 3: Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Developers

完美世界Ceph的使⽤用情况

• 现在,⽣生产环境使⽤用19台服务器,66个osd,裸容量145T,其中23T为PCIe SSD,构成三个Ceph集群,⽤用于KVM虚拟化,运⾏行⺴⽹网络游戏、⺴⽹网站、log收集及分析以及数据库备份等多种应⽤用

• 研发及测试环境使⽤用22台服务器,104个osd,裸容量160T,其中12T为SATA SSD,构成三个Ceph集群,全部⽤用于KVM虚拟化,运⾏行⺴⽹网络游戏开发和测试

Page 4: Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Developers

我们⽤用户是怎么看待Ceph的• ⾼高可⽤用

• 数据可靠性和持久性

• ⽤用很低成本就能达到的⾼高性能

• ⼏几乎⽆无限的容量扩展

• 有很强的⾃自维护和⾃自修复能⼒力

Page 5: Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Developers

我们的遭遇• 第⼀一个应⽤用场景:数据库备份和备份恢复测试

• 使⽤用两台DELL的R720xd,每台12块4T硬盘,96G内存,万兆互联

• ceph配置成拷⻉贝数是2

• 备份速度很好,240M/s,但是备份恢复速度奇慢,30M/s

Page 6: Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Developers

我们的遭遇• 第⼀一个应⽤用场景:数据库备份和备份恢复测试

• 解决⽅方案⼀一:12块硬盘的RAID6,每服务器1个osd

12块独⽴立硬盘,每服务器12个osd

• 结果:在运⾏行着虚拟机的情况下,直接使⽤用命令修改pg_num和pgp_num导致所有虚拟机宕机,osd/osd_types.cc: 411: FAILED assert(m_seed < old_pg_num)

备份速度400M/s,备份恢复速度40M/s

Page 7: Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Developers

• 第⼀一个应⽤用场景:数据库备份和备份恢复测试

• 解决⽅方案⼆二:加⼤大ceph服务器上块设备的read_ahead_kb

加⼤大KVM虚拟机中的块设备的read_ahead_kb

打开rbd_cache

• 结果:备份速度450M/s,备份恢复速度600M/s,顺便证明了rbd_cache在这个场景中是没有⽤用处的

我们的遭遇

Page 8: Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Developers

我们的遭遇• 第⼆二个应⽤用场景:⾼高可⽤用

• 使⽤用两台DELL的720xd,每台配12块4T硬盘,96G内存,万兆互联

• 天真地配置了两个mon

• 结果:⽆无论如何,任意宕掉⼀一台机器这个集群都是⽆无法⼯工作的

Page 9: Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Developers

我们的遭遇• 第⼆二个应⽤用场景:⾼高可⽤用

• 解决⽅方案⼀一:⽼老板⽼老板,我需要第三台同样的机器,同样的数据我

存三份啦,坏两台机器都还能提供服务的!

• 结果:⽆无论如何,只剩⼀一台机器这个集群都是⽆无法⼯工作的

Page 10: Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Developers

我们的遭遇• 第⼆二个应⽤用场景:⾼高可⽤用

• 解决⽅方案⼆二:IT的同事们,你们有淘汰的⽼老机器吗,随便给我⼀一两

台啦,配置最差的就⾏行……

数据我还是存三份啦,坏两台机器还能提供服务的!

• 结果:满⾜足⾼高可⽤用了,但是结构⾮非常不美

Page 11: Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Developers

我们的遭遇• 第三个应⽤用场景:使⽤用⽐比较⽼老的服务器来搭建Ceph集群,运⾏行KVM

• 使⽤用20台DELL的R610,每台配5块1TSAS硬盘,1块600G SATA SSD,96G内存,四个千兆⺴⽹网⼝口,千兆交换机带万兆上⾏行

• ceph配置成拷⻉贝数是3

• 结果:很慢,⾮非常慢

Page 12: Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Developers

我们的遭遇• 第三个应⽤用场景:使⽤用⽐比较⽼老的服务器来搭建Ceph集群,运⾏行KVM

• 解决⽅方案⼀一:将4个千兆⺴⽹网⼝口使⽤用⺴⽹网卡bonding,捆绑成⼀一个⺴⽹网卡

将所有的SSD组成Cache Tiering

• 结果:很慢,⾮非常慢

Page 13: Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Developers

我们的遭遇• 第三个应⽤用场景:使⽤用⽐比较⽼老的服务器来搭建Ceph集群,运⾏行KVM

• 解决⽅方案⼆二:将1块SSD作为5块SAS硬盘的BCache(Flashcache)

将⼀一块⺴⽹网卡作为对外提供服务的⺴⽹网卡,另外三块⺴⽹网卡

分别配上独⽴立的IP,5个osd分别LISTEN在这三个IP上

• 结果:性能有提⾼高,但是依然不够快

Page 14: Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Developers

我们的遭遇• 第三个应⽤用场景:使⽤用⽐比较⽼老的服务器来搭建Ceph集群,运⾏行KVM

• 解决⽅方案三:⽼老板⽼老板,其实Intel的万兆⺴⽹网卡也不是很贵啦

呃,H3C的全万兆交换机也有4万元⼀一台的啦

结果:性能OK了

⽼老板不⾼高兴,说好的只加点内存的

Page 15: Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Developers

我们的遭遇• 第四个应⽤用场景:全SSD的Ceph集群

• 使⽤用12台DELL的R620,每台配1.2T PCIe SSD,192G内存,万兆互联,利⽤用Ceph的Thin Provisioning节约存储

• ceph配置成拷⻉贝数是3,每个SSD配成1个osd,XFS使⽤用discard

• 结果:在虚拟机数量很少的情况下,性能不错,虚拟机数量达到40台以上,⽽而且有删除⼤大型⽂文件的情况出现的时候,IO性能下降,可能会有秒级的延时

Page 16: Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Developers

我们的遭遇• 第四个应⽤用场景:全SSD的Ceph集群

• 解决⽅方案⼀一:将1.2T PCIe SSD划分成三个块设备,每个400G,成为⼀一个独⽴立的osd

• 结果:虚拟机数量达到100台以上,仍然有很好的性能

由于crush算法分配的不均匀性,浪费了空间

删除⼤大型⽂文件IO性能下降的问题没有解决

Page 17: Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Developers

我们的遭遇• 第四个应⽤用场景:全SSD的Ceph集群

• 解决⽅方案⼆二:将1.2T PCIe SSD仍然作为⼀一个块设备,在上⾯面划分三个⺫⽬目录,每个⺫⽬目录作为⼀一个独⽴立的osd的存储空间,XFS不使⽤用discard,⽽而是将频繁删除的⺫⽬目录划分为⼀一个独⽴立的,空间很⼩小的块设备来mount

• 结果:虚拟机数量达到120台以上,仍然有很好的性能

部分解决浪费空间的问题,删除⼤大型⽂文件IO性能下降问题解决

Page 18: Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Developers

我们的愿望

• Ceph应该维护起来更加简单,⽐比如仅仅更换坏了的硬盘和增加存储节点就能够让它很好地运⾏行

• 性能更好⼀一些,最好传统的关系型数据库都可以在上⾯面运⾏行

• Ceph不应该是只有⼤大型互联⺴⽹网企业才能使⽤用的⾼高⼤大上产品,只有中⼩小型企业,甚⾄至是初创的⼯工作室都开始使⽤用Ceph,Ceph才能获得真正的⽣生命⼒力

Page 19: Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Developers

Q & A

Page 20: Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Developers

Thank You! 谢谢⼤大家!