Copyright © 2015 Mirantis, Inc. All rights reservedwww.mirantis.com
Ceph 一千零一夜
@朱荣泽
zrzhit@gmail.com
2015-09-19
Copyright © 2015 Mirantis, Inc. All rights reserved Page 2
个人简介:
目前是Mirantis云存储架构师,之前在UnitedStack和SINA。2012年初接触Ceph、OpenStack。
做过Ceph的调研、选型、与OpenStack整合、自动化部署、架构设计、优化、监控与运维、故障排查、扩容等工
作,同时管理过十几个Ceph生产集群。
Copyright © 2015 Mirantis, Inc. All rights reserved Page 3
Agenda
● Ceph基本介绍
● Ceph的发展
● Ceph的优缺点
● Ceph架构设计
○ 云硬盘架构设计
○ 集群性能规划
● Ceph的产品化
○ 自动化部署
○ 优化
○ 监控
○ 诊断
● Ceph的运维
○ 扩容
○ 故障排查
○ 日常问题
● Ceph总结
● 提问与回答
Copyright © 2014 Mirantis, Inc. All rights reserved Page 4
Ceph的基本介绍
Copyright © 2015 Mirantis, Inc. All rights reserved Page 5
Ceph基本介绍
Ceph = 提供Block、File、Object接口的统一存储系统
Copyright © 2015 Mirantis, Inc. All rights reserved Page 6
Ceph基本介绍
Copyright © 2015 Mirantis, Inc. All rights reserved Page 7
Ceph基本介绍
Copyright © 2015 Mirantis, Inc. All rights reserved Page 8
Ceph基本介绍
Copyright © 2014 Mirantis, Inc. All rights reserved Page 9
Ceph的发展
Copyright © 2015 Mirantis, Inc. All rights reserved Page 10
Ceph的发展
● 2004年06月:第一个commit 48cdbbf011f840ba4ce2f925f7aff2dcb1bcd6c4
● 2006年11月:CRUSH 论文
● 2008年01月: v0.1版本
● 2010年12月:Qemu Block Device Driver for RBD
● 2012年02月:v0.42版本
● 2012年05月:Inktank成立
● 2012年12月:支持RBD Clone (format v2)
● 2013年03月:v0.58版本,Ceph Monitor的架构被重写
● 2013年05月:v0.61版本
● 2014年04月:Inktank被RedHat收购
● 2014年05月:v0.80版本
Copyright © 2015 Mirantis, Inc. All rights reserved Page 11
Ceph的发展
● AWS
● OpenStack
● Key Features
○ Scalability
○ Cloning
Copyright © 2014 Mirantis, Inc. All rights reserved Page 12
Ceph的优缺点
Copyright © 2015 Mirantis, Inc. All rights reserved Page 13
Ceph的优缺点
特性 优点 缺点 避免
开源 免费 不是产品
多功能 统一 复杂,性能不高
扩展性 通过堆硬件,线性提高容量
和性能
故障域扩大
可靠性 高可用,数据安全 牺牲性能、容量
Copyright © 2014 Mirantis, Inc. All rights reserved Page 14
Ceph的架构设计
Copyright © 2015 Mirantis, Inc. All rights reserved Page 15
云硬盘架构设计
• 架构设计原则
• 物理架构设计
• 硬件选型
Copyright © 2015 Mirantis, Inc. All rights reserved Page 16
架构设计原则
原则
扩展性
• Scale-Out,无缝扩容,减少前期公有云/托管云的硬件投入
• 方便运维
可用性
• 三副本分布在三个机架上,提高可用性。
• 提高osd-domain中osd的个数,加快recovery速度。
• 可停机运维。
可靠性 • 通过设置replica-domain和osd-domain上,减少故障域。
高性能 • 性能线性扩展。
Copyright © 2015 Mirantis, Inc. All rights reserved Page 17
物理架构设计
Copyright © 2015 Mirantis, Inc. All rights reserved Page 18
物理架构设计
底层存储基础架构(统一存储)
物理和逻辑网络拓扑
Copyright © 2015 Mirantis, Inc. All rights reserved Page 19
硬件选型
• 存储网络10Gb
• Public network 和 Cluster network
• 企业级SSD硬盘 & 消费级SSD硬盘
• SSD和SATA的配比
• RAID卡设置
• OSD个数与网卡的关系
Copyright © 2015 Mirantis, Inc. All rights reserved Page 20
集群规模规划 -> 容量规划
假设在三副本情况下,使用率75%的情
况下,我们需要200TB用户可用空间,假设每个硬盘大小是
4TB,我们需要多少块硬盘
(200/0.75)*3/4 = 200
每个存储服务器上可以插多少块硬盘?
假设在三副本情况下,使用率 75%的情况下,我们需要200TB用户可用空间,假设每
个硬盘大小是4TB,我们需要多少块硬盘?
(200/0.75)*3/4 = 200
每个存储服务器上可以插多少块硬盘?
Copyright © 2015 Mirantis, Inc. All rights reserved Page 21
集群规模规划 -> 性能规划
假设在三副本情况下,使用率75%的情
况下,我们需要200TB用户可用空间,假设每个硬盘大小是
4TB,我们需要多少块硬盘
(200/0.75)*3/4 = 200
每个存储服务器上可以插多少块硬盘?
每个HDD的IOPS和吞吐率?
每个SSD的IOPS和吞吐率?
在Ceph三个副本的情况下,每个 HDD的性能贡献?每个SSD的性能贡献?
假设我们要跑N个虚拟机,每个虚拟机需要IOPS是M,我们需要多少块HDD?多少块
SSD?
Copyright © 2014 Mirantis, Inc. All rights reserved Page 22
Ceph的产品化
Copyright © 2015 Mirantis, Inc. All rights reserved Page 23
自动化部署
• 软件打包
• 自动化部署工具
• 硬盘初始化
• OSD部署
• MON部署
• 测试
Copyright © 2015 Mirantis, Inc. All rights reserved Page 24
软件打包
• 假如需要自己维护Ceph版本,需要自己打包
Copyright © 2015 Mirantis, Inc. All rights reserved Page 25
自动化部署工具
• ceph-deploy
• puppet
• chef
• ansible
Copyright © 2015 Mirantis, Inc. All rights reserved Page 26
硬盘初始化
• 单SSD: 如何分区
• 单HDD: 如何分区
• SSD Journal + HDD: SSD与HDD的配比关系
Copyright © 2015 Mirantis, Inc. All rights reserved Page 27
OSD部署
• 自动对硬盘分区
• 自动格式化XFS,格式化参数设置
• 自动挂载,挂载参数的设置
• 使用WWN号作为唯一标识
• 用FS UUID注册OSD ID
• 设置osd_crush_update_on_start = False,防止遇到BUG,导致数据迁移
Copyright © 2015 Mirantis, Inc. All rights reserved Page 28
MON部署
•
Copyright © 2015 Mirantis, Inc. All rights reserved Page 29
测试
https://github.com/Mirantis/disk_perf_test_tool
Copyright © 2015 Mirantis, Inc. All rights reserved Page 30
优化
• 性能优化
• 可用性调优
• 持久性调优(CRUSH设计)
Copyright © 2015 Mirantis, Inc. All rights reserved Page 31
性能调优
• 硬件调优
• 操作系统调优
• 参数调优
• 代码调优
Copyright © 2015 Mirantis, Inc. All rights reserved Page 32
性能调优
• 检查负载类型
• 检查ceph.conf
• 检查网络
• 检查硬盘
• 检查CPU
• 检查Cache Tier参数
• 检查Perf Dump
CheckList
Copyright © 2015 Mirantis, Inc. All rights reserved Page 33
性能调优
Copyright © 2015 Mirantis, Inc. All rights reserved Page 34
性能调优
• 直接阻塞
• 相关性阻塞
• 延迟
• 网络msg cap
• journal
• WBThrottle
• Cache
• CPU
• IOPS
• queue
• op threads
• 网络msg
Copyright © 2015 Mirantis, Inc. All rights reserved Page 35
可用性调优
• 设置recovery参数
• ceph osd set noout
• ceph osd set nodeep-scrub
Copyright © 2015 Mirantis, Inc. All rights reserved Page 36
持久性调优
• CRUSHMAP的设计
• 持久性算法
• 提高持久性
• 在可用性和持久性中做权衡
• CRUSHMAP初始化
• 物理拓扑CRUSHMAP
• 逻辑拓扑CRUSHMAP
• 计算好osd weight,保证bucket的weight一样,保证不会变化
• 手动触发数据迁移,可控
Copyright © 2014 Mirantis, Inc. All rights reserved Page 37
Ceph的运维
Copyright © 2015 Mirantis, Inc. All rights reserved Page 38
监控
• 基本指标
• 详细指标
• 报警
Copyright © 2015 Mirantis, Inc. All rights reserved Page 39
扩容
• Scale-out & Scale-up
• 扩容的方式
• 增加OSD
• 增加存储服务器节点
• 增加failure-domain
• 原则
• 计划
• 可用性
• 可控性
• recovery速度
• 流程
• 增加monitor节点
Copyright © 2015 Mirantis, Inc. All rights reserved Page 40
故障排查
• 问题类型
• SSD GC
• 网络故障
• 网络配置错误
• Ceph BUG
• XFS BUG
• 硬盘故障
• XFS故障
• 硬盘性能下降
• PG inconsistent
• Ceph Recovery缓慢
• Ceph Recovery占满网络
• Ceph软件包版本不一致
• NTP时间漂移
• 网络包流量过大影响OSD性能
• Monitor无法正确协商
• Cgroup设置过小影响OSD性能
• Pool被写满
•
• 故障历史
• 呵呵
Copyright © 2015 Mirantis, Inc. All rights reserved Page 41
日常运维
• 停机维护
• 升级OSD
• 升级MON
• 重启所有OSD
• 硬盘换盘
• 硬盘下线
• monitor迁移
Copyright © 2014 Mirantis, Inc. All rights reserved Page 42
Ceph总结
Copyright © 2015 Mirantis, Inc. All rights reserved Page 43
Ceph总结
• 存储性能靠硬件堆出来,但是要合理的规划
• 能够用SSD就不要用SATA/SAS,SSD提供的不仅是性能
• 敬畏运维工作,保证数据的安全和可用性
• 尽量购买产品和服务,开源可以免费使用,但是技术和服务不是免费,降
低时间成本和风险
Copyright © 2014 Mirantis, Inc. All rights reserved Page 44
问题解答

Ceph中国社区9.19 Some Ceph Story-朱荣泽03

  • 1.
    Copyright © 2015Mirantis, Inc. All rights reservedwww.mirantis.com Ceph 一千零一夜 @朱荣泽 zrzhit@gmail.com 2015-09-19
  • 2.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 2 个人简介: 目前是Mirantis云存储架构师,之前在UnitedStack和SINA。2012年初接触Ceph、OpenStack。 做过Ceph的调研、选型、与OpenStack整合、自动化部署、架构设计、优化、监控与运维、故障排查、扩容等工 作,同时管理过十几个Ceph生产集群。
  • 3.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 3 Agenda ● Ceph基本介绍 ● Ceph的发展 ● Ceph的优缺点 ● Ceph架构设计 ○ 云硬盘架构设计 ○ 集群性能规划 ● Ceph的产品化 ○ 自动化部署 ○ 优化 ○ 监控 ○ 诊断 ● Ceph的运维 ○ 扩容 ○ 故障排查 ○ 日常问题 ● Ceph总结 ● 提问与回答
  • 4.
    Copyright © 2014Mirantis, Inc. All rights reserved Page 4 Ceph的基本介绍
  • 5.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 5 Ceph基本介绍 Ceph = 提供Block、File、Object接口的统一存储系统
  • 6.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 6 Ceph基本介绍
  • 7.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 7 Ceph基本介绍
  • 8.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 8 Ceph基本介绍
  • 9.
    Copyright © 2014Mirantis, Inc. All rights reserved Page 9 Ceph的发展
  • 10.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 10 Ceph的发展 ● 2004年06月:第一个commit 48cdbbf011f840ba4ce2f925f7aff2dcb1bcd6c4 ● 2006年11月:CRUSH 论文 ● 2008年01月: v0.1版本 ● 2010年12月:Qemu Block Device Driver for RBD ● 2012年02月:v0.42版本 ● 2012年05月:Inktank成立 ● 2012年12月:支持RBD Clone (format v2) ● 2013年03月:v0.58版本,Ceph Monitor的架构被重写 ● 2013年05月:v0.61版本 ● 2014年04月:Inktank被RedHat收购 ● 2014年05月:v0.80版本
  • 11.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 11 Ceph的发展 ● AWS ● OpenStack ● Key Features ○ Scalability ○ Cloning
  • 12.
    Copyright © 2014Mirantis, Inc. All rights reserved Page 12 Ceph的优缺点
  • 13.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 13 Ceph的优缺点 特性 优点 缺点 避免 开源 免费 不是产品 多功能 统一 复杂,性能不高 扩展性 通过堆硬件,线性提高容量 和性能 故障域扩大 可靠性 高可用,数据安全 牺牲性能、容量
  • 14.
    Copyright © 2014Mirantis, Inc. All rights reserved Page 14 Ceph的架构设计
  • 15.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 15 云硬盘架构设计 • 架构设计原则 • 物理架构设计 • 硬件选型
  • 16.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 16 架构设计原则 原则 扩展性 • Scale-Out,无缝扩容,减少前期公有云/托管云的硬件投入 • 方便运维 可用性 • 三副本分布在三个机架上,提高可用性。 • 提高osd-domain中osd的个数,加快recovery速度。 • 可停机运维。 可靠性 • 通过设置replica-domain和osd-domain上,减少故障域。 高性能 • 性能线性扩展。
  • 17.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 17 物理架构设计
  • 18.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 18 物理架构设计 底层存储基础架构(统一存储) 物理和逻辑网络拓扑
  • 19.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 19 硬件选型 • 存储网络10Gb • Public network 和 Cluster network • 企业级SSD硬盘 & 消费级SSD硬盘 • SSD和SATA的配比 • RAID卡设置 • OSD个数与网卡的关系
  • 20.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 20 集群规模规划 -> 容量规划 假设在三副本情况下,使用率75%的情 况下,我们需要200TB用户可用空间,假设每个硬盘大小是 4TB,我们需要多少块硬盘 (200/0.75)*3/4 = 200 每个存储服务器上可以插多少块硬盘? 假设在三副本情况下,使用率 75%的情况下,我们需要200TB用户可用空间,假设每 个硬盘大小是4TB,我们需要多少块硬盘? (200/0.75)*3/4 = 200 每个存储服务器上可以插多少块硬盘?
  • 21.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 21 集群规模规划 -> 性能规划 假设在三副本情况下,使用率75%的情 况下,我们需要200TB用户可用空间,假设每个硬盘大小是 4TB,我们需要多少块硬盘 (200/0.75)*3/4 = 200 每个存储服务器上可以插多少块硬盘? 每个HDD的IOPS和吞吐率? 每个SSD的IOPS和吞吐率? 在Ceph三个副本的情况下,每个 HDD的性能贡献?每个SSD的性能贡献? 假设我们要跑N个虚拟机,每个虚拟机需要IOPS是M,我们需要多少块HDD?多少块 SSD?
  • 22.
    Copyright © 2014Mirantis, Inc. All rights reserved Page 22 Ceph的产品化
  • 23.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 23 自动化部署 • 软件打包 • 自动化部署工具 • 硬盘初始化 • OSD部署 • MON部署 • 测试
  • 24.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 24 软件打包 • 假如需要自己维护Ceph版本,需要自己打包
  • 25.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 25 自动化部署工具 • ceph-deploy • puppet • chef • ansible
  • 26.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 26 硬盘初始化 • 单SSD: 如何分区 • 单HDD: 如何分区 • SSD Journal + HDD: SSD与HDD的配比关系
  • 27.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 27 OSD部署 • 自动对硬盘分区 • 自动格式化XFS,格式化参数设置 • 自动挂载,挂载参数的设置 • 使用WWN号作为唯一标识 • 用FS UUID注册OSD ID • 设置osd_crush_update_on_start = False,防止遇到BUG,导致数据迁移
  • 28.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 28 MON部署 •
  • 29.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 29 测试 https://github.com/Mirantis/disk_perf_test_tool
  • 30.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 30 优化 • 性能优化 • 可用性调优 • 持久性调优(CRUSH设计)
  • 31.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 31 性能调优 • 硬件调优 • 操作系统调优 • 参数调优 • 代码调优
  • 32.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 32 性能调优 • 检查负载类型 • 检查ceph.conf • 检查网络 • 检查硬盘 • 检查CPU • 检查Cache Tier参数 • 检查Perf Dump CheckList
  • 33.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 33 性能调优
  • 34.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 34 性能调优 • 直接阻塞 • 相关性阻塞 • 延迟 • 网络msg cap • journal • WBThrottle • Cache • CPU • IOPS • queue • op threads • 网络msg
  • 35.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 35 可用性调优 • 设置recovery参数 • ceph osd set noout • ceph osd set nodeep-scrub
  • 36.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 36 持久性调优 • CRUSHMAP的设计 • 持久性算法 • 提高持久性 • 在可用性和持久性中做权衡 • CRUSHMAP初始化 • 物理拓扑CRUSHMAP • 逻辑拓扑CRUSHMAP • 计算好osd weight,保证bucket的weight一样,保证不会变化 • 手动触发数据迁移,可控
  • 37.
    Copyright © 2014Mirantis, Inc. All rights reserved Page 37 Ceph的运维
  • 38.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 38 监控 • 基本指标 • 详细指标 • 报警
  • 39.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 39 扩容 • Scale-out & Scale-up • 扩容的方式 • 增加OSD • 增加存储服务器节点 • 增加failure-domain • 原则 • 计划 • 可用性 • 可控性 • recovery速度 • 流程 • 增加monitor节点
  • 40.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 40 故障排查 • 问题类型 • SSD GC • 网络故障 • 网络配置错误 • Ceph BUG • XFS BUG • 硬盘故障 • XFS故障 • 硬盘性能下降 • PG inconsistent • Ceph Recovery缓慢 • Ceph Recovery占满网络 • Ceph软件包版本不一致 • NTP时间漂移 • 网络包流量过大影响OSD性能 • Monitor无法正确协商 • Cgroup设置过小影响OSD性能 • Pool被写满 • • 故障历史 • 呵呵
  • 41.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 41 日常运维 • 停机维护 • 升级OSD • 升级MON • 重启所有OSD • 硬盘换盘 • 硬盘下线 • monitor迁移
  • 42.
    Copyright © 2014Mirantis, Inc. All rights reserved Page 42 Ceph总结
  • 43.
    Copyright © 2015Mirantis, Inc. All rights reserved Page 43 Ceph总结 • 存储性能靠硬件堆出来,但是要合理的规划 • 能够用SSD就不要用SATA/SAS,SSD提供的不仅是性能 • 敬畏运维工作,保证数据的安全和可用性 • 尽量购买产品和服务,开源可以免费使用,但是技术和服务不是免费,降 低时间成本和风险
  • 44.
    Copyright © 2014Mirantis, Inc. All rights reserved Page 44 问题解答