Ceph 作为软件定义存储的代表之一,最近几年其发展势头很猛,也出现了不少公司在测试和生产系统中使用 Ceph 的案例,尽管与此同时许多人对它的抱怨也一直存在。本文试着整理作者了解到的一些使用案例。

1. 携程(Ctrip)

携程所使用的各种存储的现状:

  • 商业存储:

    • SAN(HP/ HPS) , 1+ PB, 数据库
    • NAS (HW) , 800+ TB, 文件共享
  • 开源存储
    • GlusterFS, 1+ PB, 数据库备份
    • FastDFS,   1+ PB, 海量照片
    • HDFS,      10+ PB, 大数据

而在不久的将来,随着公司业务的发展,携程需要的存储容量需要扩大到10倍以上。

携程选择Ceph的理由:低成本 + SDS + Scale-out + 统一存储 + 企业特性

 

携程目前的Ceph集群的配置:

  • CephVersion: 0.94.2,H release
  • Object Storage: RGW + Swift API
  • SDK: Python/ Java/ C#/ Ruby
  • OS: Centos 6.4
  • 硬件:CPU(2 channels & 32 Core)、Mem128GB、disk(12*3TB/SATA disk +2*256GB raid1 SSD)、NIC(4*Gigabit LAN, bond 2 in 1 pair)

RGW 使用架构:

携程有在数据中心之间的同步数据的需求。在研究了 CRUSHmap、Radosgw-agent、Federate gateway (不稳定、不灵活(只支持Zone 之间同步)、不易扩展)后,其自研了COS方案,它具有稳定、灵活、扩展性等特点:

 

下一步的计划:

  • Database on Ceph (Dev & QA Farm)
  • Openstack/ DockerIntegrate with Ceph
  • IT “Dropbox”

资料来源:携程在 2015/10/18 SH Ceph Day 上的分享。

楼主点评:

  • 与互联网公司的通常做法一致:慎重选择、细致测试、分布使用(往往从开发测试环境中使用开始)、开源的不够用就自研
  • 希望携程能有更多的分享和回馈社区

2. 联通研究院

中国联通研究院在使用Ceph对象和文件存储:

该集群还比较小,更多的是处于做大规模使用前的准备阶段。其测试环境:

测试结果:

他们认为SSD对性能提升的效果一般:

资料来源:联通研究院在 2015/10/18 SH Ceph Day 上的分享。

楼主点评:

  • 尚处于小规模测试和试用阶段
  • 使用的测试方法或者调优手段可能没到位,不然性能提高不会那么少

3. 宝德云(PLCloud)

宝德云使用Ceph的理由:

  • Pure Software
  • Open Source, Commercial Support
  • Unified Storage: RBD, RGW, CephFS
  • Scale Out
  • Self Healing
  • Replication and Erasure Coding
  • Integrate well with OpenStack

宝德云的用法:OpenStack + Ceph (RDB,CephFS)+ Docker

  • 所有 OpenStack 存储都放在 Ceph 上
  • 18*(5 OSD+1SSD) / CephRBD / CephFS
  • 785VM / 4vCPU32GB per VM
  • Ubuntu14.04 / Docker1.6.1 / 150+ Containers per VM
  • All VM Mount CephFS
  • Mount VM Directory as Container’s Data Volume
  • Boot 1 VM < 5s
  • Boot 1 Container < 1s
  • Boot 150+Containers < 120s
  • Ceph Rados Gateway driver for Docker Registry

  • Map RBD device inside DockerContainer
  • CephFS as Data Volume

  • CephFS as NAS Storage
  • Run Ceph in Containers

使用案例:宝德云上的爱慕流媒体服务

  • Run media web/app/dbvmover OpenStackand CephRBD
  • Use CephRGW as media resource storage
  • Put video TransportStream/jpg file via c-language programme
  • Manage resource via python-swiftclient
  • 400+KB per video tsfile
  • Reserved video ts/jpg file 7 days or 30 days
  • Allow media server temporary access to objects
  • Provide media service for Internet and Intranet User

资料来源:宝德云在 2015/10/18 SH Ceph Day 上的分享。

楼主点评:

  • 够大胆(到目前为止 CephFS 还不稳定呐)、够与时俱进(什么东西新就用什么)
  • 没说清楚怎么支持爱慕的超大流数据

4. CERN (欧洲核子研究委员会)实验室(来源

4.1 测试环境

CERN 的一些实习生搭了一套环境,使用 NetApp Cinder driver 和 Ceph,进行性能比较。

NetApp 环境(适应iSCSI驱动):                               Ceph 集群:

       

FAS2040 Storage Systems

  • Data ONTAP 8
  • 52 Disks

Benchmark 环境:

做法:在两个存储上分别创建100G,200G,400G的卷,分别挂载到三个虚机上,使用 hdparm、Flexible I/O Tester 和 dd命令作为测试工具。

4.2 测试结果

(FIO使用的是 writeback 缓存机制)

结论:

(1)读上,Ceph 比 NetApp 更快;写上,两者差不多。

(2)Ceph 使用缓存的话,对 I/O 性能影响很大。writeback 能较大地提交性能,而writethrough 只能轻微地提交性能。

(3)对单个卷使用不同的条带化参数,能提交其性能。该功能会在 Cinder 中实现。

5. 乐视云(来源

乐视采用了 Ceph RBD 作为 统一存储,OpenStack使用的Cinder,后端接的是Ceph,Glance也是共享Ceph存储。同时还提供了 S3 对象存储,用作于 CND 源站,存储乐视网的视频以及客户需要分发的资源。S3 也是全国分布式部署,用户可以就近上传,再推送到北京。目前乐视云 OpenStack 规模已达 900 个物理节点,对象存储的数据达到数PB。乐视认为,“ceph 数据分布,性能方面都很不错,crush算法是它的亮点“。

6. UnitedStack (来源

国内的 UnitedStack 应该说对 Ceph 做出了很大的贡献,包括很多的 bug fix 和新的功能,同时,也使用 Ceph 搭建了很大规模的云。他们 Ceph 团队的 blog 非常值得关注。下面是他们的测试报告:

IOPS:                                                                                  吞吐率

 

写惩罚:

结论:

我所了解的各公司使用的 Ceph 存储集群 (携程、乐视、有云、宝德云、联通等)的更多相关文章

  1. 公司jar包提交到集群的方法

    yarn -jar xx.jar 此时包会提交到集群上运行 也可以把jar包放到hbase 的lib下面用hbase jar 方式调用

  2. elasticsearch 了解多少,说说你们公司 es 的集群架构,索 引数据大小,分片有多少,以及一些调优手段 ?

    面试官:想了解应聘者之前公司接触的 ES 使用场景.规模,有没有做过比较大 规模的索引设计.规划.调优. 解答: 如实结合自己的实践场景回答即可. 比如:ES 集群架构 13 个节点,索引根据通道不同 ...

  3. elasticsearch 了解多少,说说你们公司 es 的集群架构,索 引数据大小,分片有多少,以及一些调优手段 。

    面试官:想了解应聘者之前公司接触的 ES 使用场景.规模,有没有做过比较大 规模的索引设计.规划.调优. 解答: 如实结合自己的实践场景回答即可. 比如:ES 集群架构 13 个节点,索引根据通道不同 ...

  4. vivo 公司 Kubernetes 集群 Ingress 网关实践

    文章转载自:https://mp.weixin.qq.com/s/qPqrJ3un1peeWgG9xO2m-Q 背景 vivo 人工智能计算平台小组从 2018 年底开始建设 AI 计算平台至今,已经 ...

  5. 大公司的Java面试题集

    找工作要面试,有面试就有对付面试的办法.以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM, E*Trade, Siebel, Motorola, SUN, 以及其它大小公司. 面试 ...

  6. 知名IT公司的年度大会合集

    很多知名的IT公司都有年度大会,比如说谷歌,微软,Adobe,甲骨文,苹果等等.在这些公司的年度大会上,都会展示一些公司比较前沿的产品.看看这些大会的视频(也可以参会,但是门票可是非常贵的),对我们了 ...

  7. hbase 集群搭建(公司内部测试集群)

    我用的是cdh4.5版本:配置文件:$HBASE_HOME/conf/hbase-env.shexport JAVA_HOME=$JAVA_HOMEexport JAVA_HOME=/home/had ...

  8. Ceph 存储集群

    Ceph 存储集群 Ceph 作为软件定义存储的代表之一,最近几年其发展势头很猛,也出现了不少公司在测试和生产系统中使用 Ceph 的案例,尽管与此同时许多人对它的抱怨也一直存在.本文试着整理作者了解 ...

  9. 玩转 Ceph 的正确姿势

    玩转 Ceph 的正确姿势 本文先介绍 Ceph, 然后会聊到一些正确使用 Ceph 的姿势:在集群规模小的时候,Ceph 怎么玩都没问题:但集群大了(到PB级别),这些准则可是保证集群健康运行的不二 ...

随机推荐

  1. python数据类型详解及列表字典集合推导式详解

    一.运算符 Python语言支持以下类型的运算符: 算术运算符 如: #!/usr/bin/env python # -*- coding:utf-8 -*- a = 5 b = 6 print(a ...

  2. Photoshop如何实现UI自动切图?

    切图严格来说并不是UI设计师的工作, 而是前端工程师的工作,指的是将UI设计师的设计(大部分为photoshop创建的PSD文件)转化为界面(网页或窗体等)所需要资源的过程.切图是衔接UI设计和应用程 ...

  3. Slideout.js – 触摸滑出式 Web App 导航菜单

    Slideout.js 是为您的移动 Web 应用开发的触摸滑出式的导航菜单.它没有依赖,自由搭配简单的标记,支持原生的滚动,您可以轻松地定制它.它支持不同的 CSS3 转换和过渡.最重要的是,它只是 ...

  4. 25佳漂亮的结婚邀请 & 婚礼请柬网站设计

    互联网给我们的生活带来了巨大的变化,越来越多的事情可以通过网络完成.下面向大家分享一组结婚邀请网站以及婚礼请柬网站的设计案例,如果你也正想制作这样的网站,相信这些优秀案例能够带给你很大的帮助. 您可能 ...

  5. Angularjs 的 ngInfiniteScroll 的使用方法

    Angularjs 的 ngInfiniteScroll 的使用方法 一.介绍 ngInfiniteScroll 是一个 AngularJS 的扩展指令,实现了网页的无限滚动的功能,也就是相当于页面滚 ...

  6. 从零开始,做一个NodeJS博客(零):整体规(chui)划(niu)

    标签:NodeJS,Heroku 0 搭建一个个人独立博客,这是我好久之前就在计划的一件事了. 这个暑假,我学习了廖雪峰老师的NodeJS教程,又偶然在V2EX上发现了Heroku这个平台,可以免费在 ...

  7. js之如何获取css样式

    js之如何获取css样式   一.获取内联样式 1 <div id ="myDiv" style="width:100px;height:100px; border ...

  8. SharePoint Online 创建门户网站系列之定制栏目

    前 言 SharePoint Online自带的库就带有二级页面和详细页面,也就是Allitems页面和DispForm页面,但是实在不够美观,尤其对于门户网站这一企业门面来说,更是无法接受. 下面, ...

  9. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q95-Q98)

    Question  95  Your development team has asked you to help them determine the cause of an error in a ...

  10. 访问其他程序的SheardPreferents

    程序A: SharedPreferences preferences=getSharedPreferences("myPreferences", Context.MODE_WORL ...