Ceph 存储集群

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. 002.RHCS-配置Ceph存储集群

    一 前期准备 [kiosk@foundation0 ~]$ ssh ceph@serverc #登录Ceph集群节点 [ceph@serverc ~]$ ceph health #确保集群状态正常 H ...

  2. Ceph 存储集群 - 搭建存储集群

    目录 一.准备机器 二.ceph节点安装 三.搭建集群 四.扩展集群(扩容)   一.准备机器 本文描述如何在 CentOS 7 下搭建 Ceph 存储集群(STORAGE CLUSTER). 一共4 ...

  3. Ceph 存储集群搭建

    前言 Ceph 分布式存储系统,在企业中应用面较广 初步了解并学会使用很有必要 一.简介 Ceph 是一个开源的分布式存储系统,包括对象存储.块设备.文件系统.它具有高可靠性.安装方便.管理简便.能够 ...

  4. Ceph 存储集群5-数据归置

    一.数据归置概览 Ceph 通过 RADOS 集群动态地存储.复制和重新均衡数据对象.很多不同用户因不同目的把对象存储在不同的存储池里,而它们都坐落于无数的 OSD 之上,所以 Ceph 的运营需要些 ...

  5. Ceph 存储集群4-高级运维:

    一.高级运维 高级集群操作主要包括用 ceph 服务管理脚本启动.停止.重启集群,和集群健康状态检查.监控和操作集群. 操纵集群 运行 Ceph 每次用命令启动.重启.停止Ceph 守护进程(或整个集 ...

  6. Ceph 存储集群2-配置:心跳选项、OSD选项、存储池、归置组和 CRUSH 选项

    一.心跳选项 完成基本配置后就可以部署.运行 Ceph 了.执行 ceph health 或 ceph -s 命令时,监视器会报告 Ceph 存储集群的当前状态.监视器通过让各 OSD 自己报告.并接 ...

  7. Ceph 存储集群1-配置:硬盘和文件系统、配置 Ceph、网络选项、认证选项和监控器选项

    所有 Ceph 部署都始于 Ceph 存储集群.基于 RADOS 的 Ceph 对象存储集群包括两类守护进程: 1.对象存储守护进程( OSD )把存储节点上的数据存储为对象: 2.Ceph 监视器( ...

  8. ceph存储集群的应用

    1.ceph存储集群的访问接口   1.1ceph块设备接口(RBD) ceph块设备,也称为RADOS块设备(简称RBD),是一种基于RADOS存储系统支持超配(thin-provisioned). ...

  9. Ceph 存储集群第一部分:配置和部署

    内容来源于官方,经过个人实践操作整理,官方地址:http://docs.ceph.org.cn/rados/ 所有 Ceph 部署都始于 Ceph 存储集群. 基于 RADOS 的 Ceph 对象存储 ...

随机推荐

  1. HDU 4643 GSM 暑期多校联合训练第五场 1001

    点击打开链接 我就不说官方题解有多坑了 V图那么高端的玩意儿 被精度坑粗翔了 AC前 AC后 简直不敢相信 只能怪自己没注意题目For the distance d1 and d2, if fabs( ...

  2. java去全半角空格,trim(), replaceAll(" +",""),replaceAll("\\s*", ""), replaceAll(" | ", "")

    JAVA中去掉空格 . String.trim() trim()是去掉首尾空格 .str.replace(" ", ""); 去掉所有空格,包括首尾.中间 St ...

  3. CSS3影子 box-shadow使用和技巧总结

    text-shadow阴影效果添加到文本,box-shadow块元素被添加到周围的阴影. 随着html5和CSS3声望.越来越普遍的使用特效. 基本语法这是{box-shadow:[inset] x- ...

  4. SDL2源码分析5:更新纹理(SDL_UpdateTexture())

    ===================================================== SDL源码分析系列文章列表: SDL2源码分析1:初始化(SDL_Init()) SDL2源 ...

  5. ASP.NET——验证码的制作

            我们在登陆站点,发表博客或者提交评论的时候,常常会遇到填写验证码这一项,当时感觉挺奇妙的样子,最终在牛腩新闻公布系统里接触到了,在这里小小的总结下.         用到的东东有三个: ...

  6. muduo网络图书馆评测

    上个月看到朋友推荐mudo网络图书馆,该代码是在国内同行中,开源工程后.甚至钦佩.根据mudo手动和035代码的版本看起来正在建设中.感觉是一个比较成熟且易于使用的网络库.我的手也有自己的网络库,虽然 ...

  7. NSOperation 的使用(下载相关) 图片和文件都是能够的 断点续传 图片逐渐显示

    // // ImageDownloader.h // NSOperationTest // // Created by ydc on 11-10-29. // Copyright 2011年 __My ...

  8. Python re正则表达式

    参考: 博客园<Python正則表達式指南> 博客园<Python之re模块> 在此感谢博主的无私奉献,本文主要介绍python中re模块的几个简单使用方法.具体的使用方法请參 ...

  9. SICP 锻炼 (2.15)解决摘要:深入思考间隔误差

    SICP 2.15 是接着 题目 2.14 的, 题目 2.14中提到了Alyssa设计的区间计算模块在并联电阻计算时会出现故障,这个问题是Lem发现的. 接着,一个叫Eva的人也发现了这个问题.同一 ...

  10. zTree市县实现三个梯级数据库映射

    zTree市县实现三个梯级数据库映射 Province.hbm.xml: <?xml version="1.0" encoding="UTF-8"? &g ...