Ceph Intro
杨冠军
Ceph Profile
• WebSite: https://ceph.com/

• Github: https://github.com/ceph/

• Language: C++

• Codes:100W+

• Founder: Sage Weil

• Issues: http://tracker.ceph.com/projects/ceph/issues
Ceph Profile Cont.
• Release

• 命名:A — N / 数字

• ⽐比如当前版本:Luminous 12.2.X

• Development: X.0.Z

• Candidate:X.1.Z

• Stable: X.2.Z

• 每个⼤大版本⼀一般维护两年年

• Hammer之前版本是:0.X.Z的格式,⽐比如:Hammer 0.94.8
Ceph Arch
RADOS
• RADOS:Reliable Autonomic Distributed Object Store

• Monitors

• 集群(单数)

• PAXOS:拜占庭将军问题,其他:RAFT,Totem (PaceMaker)

• OSDs

• 很多个

• 存储数据

• Filestore

• Bluestore
Ceph Features
• ⾼高扩展性

• 动态扩容/缩容

• ⾼高可靠性

• 集群可靠性

• 数据可靠性(Replica,EC)

• ⾼高性能(BandWidth,IOPS)

• 数据分⽚片

• 均衡存储

• 统⼀一存储

• block / object / filesystem
Ceph Components
• ceph-mon

• ceph-mgr

• ceph-osd

• ceph-mds

• radosgw

• Clients

• librbd / rbd module

• ceph-fuse / cephfs module

• s3 / swift client
Ceph Comm
• Client <—> Monitor

认证,集群map信息等
• Client <—> OSD

数据IO
• Monitor <—> OSD

⼼心跳,集群map信息等
• Client <—> MDS

元数据操作和Capalities
• Monitor <—> MDS

⼼心跳,集群map信息等
• MDS <—> OSD

元数据IO
Ceph Concept
• Crush:Controlled Replication Under Scalable Hashing

• Crush Rule

• Crush Class

• Pool:存储池

• PG:Placement Group

• Object:存储对象
Ceph Maps
• Monitor Map:Monitor集群,Mon状态:in /out Quorum

• OSD Map:OSD集群,OSD状态:up / down, in / out

• MDS Map:MDS集群,MDS状态:Active / Standby

• Crush Map:集群映射架构

• PG Map:PG映射到OSDs

• 总结:⽆无需查表,算算就好!
How to Map?
• File:任何⼀一种连续的数据存储
• Rados Block Device - 使⽤用最⼴广的功能

• 如何使⽤用?

• librbd - OpenStack

• kernel rbd module - Kubernetes
RBD Intro
• 映射到虚拟机为块设备: /dev/vd<id>

• 格式化为⽂文件系统:mkfs.<ext4/xfs> /dev/vd<id>

• mount后使⽤用:mount /dev/vd<id> /mountpoint/

• 优势1:不不依赖kernel rbd,版本较新,⽀支持feature⽐比较多

• 优势2:client rbd cache,加速访问
RBD - librbd
• RBD Map / Unmap

# rbd map <pool/rbd-image>

# rbd unmap /dev/rbd<id>

• Mkfs (RBD Image在第⼀一次挂载使⽤用时要格式化⽂文件系统) 

# mkfs.<ext4/xfs> /dev/rbd<id>

• Mount / Umount

# mount /dev/rbd<id> /mountpoint-rbd/

# umount /mountpoint-rbd/

• Map /mountpoint-rbd/ to Docker
RBD - Kernel Client
• RBD Provisioner

• https://github.com/kubernetes-incubator/external-storage/tree/
master/ceph/rbd

• 创建ceph admin secret(ceph不不开启认证时忽略略)

• 创建ceph pool和user secret(ceph不不开启认证时忽略略)

• 创建StorageClass

• 创建PVC

• 创建Pod使⽤用PVC
RBD With K8S
RBD Other Features
• Lock

• 仅⽀支持⼀一个客户端写

• 多个客户端可以同时读

• Resize

• resize RBD Image

• 格式化的具体⽂文件系统要⽀支持fs resize

• Snapshot

• 集群内数据保护

• 秒级备份,数据恢复
RBD Other Features cont.
• Mirror

• 跨集群数据保护

• 异步 / 同步

• NBD

• Network Block Device

• RBD 映射为 NBD

• ISCSI

• ISCSI GateWay

• RBD 转换为 ISCSI Target
RadosGW Intro
• Rados GateWay

• 使⽤用较⼴广的功能

• ⽀支持S3,Swift API

• 如何使⽤用?

• 创建使⽤用的pools

• 启动radosgw组件
RadosGW Usage
• RestFul API

• Civetweb

• 多个RadosGW

• Pools:Reps + EC

• Keystone Integration
CephFS Intro
• Ceph FileSystem

• Ceph最晚Production Ready的产品

• 分布式⽂文件系统,兼容POSIX,多客户端数据共享

• 如何使⽤用?

• 启动ceph-mds组件

• 创建⼀一个metadata pool

• 创建⼀一个或多个data pools

• 创建⼀一个CephFS(将来⽀支持⼀一个集群多个CephFS)
CephFS Client
• Kernel Client

• Linux Kernel Module:cephfs

• 性能⾼高,依赖系统内核,代码较⽼老老,升级麻烦

• Ceph Fuse Client

• pkg:ceph-fuse

• 性能低,不不依赖系统内核,代码较新,升级⽅方便便
CephFS Usage
• Mount CephFS到本地

• mount -t ceph <mon-ip:port,…>:/subdir /mountpoint/

• ceph-fuse -t <mon-ip:port,…> /mountpoint/ -r /subdir

• 直接使⽤用

• ⽀支持多客户端mount相同⽬目录来共享数据

• 兼容POSIX,与本地⽂文件系统使⽤用姿势基本⼀一致

• Map⽬目录到Docker
CephFS How?
• Client与MDS交互获取元数据信息

• 元数据的更更新是同步的

• Client与OSD交互获取数据信息

• 数据的更更新可能不不是同步的,FUSE Client可配置
• CephFS Provisioner

• https://github.com/kubernetes-incubator/external-storage/
tree/master/ceph/cephfs

• 创建ceph admin secret(ceph不不开启认证时忽略略)

• 创建StorageClass

• 创建PVC

• 创建Pod使⽤用PVC
CephFS With K8S
CephFS Features
• 数据共享:多客户端同时读写

• 多Active的元数据服务器器:Active MDSs

• ⽬目录分⽚片级别的负载均衡:Fragment, Balance

• ⽀支持Quota:files, bytes

• File / Dir Layout配置

• pool, namespace, stripe_unit, stripe_count

• Authentication: ⽬目录级别
CephFS Experimental
• InLine Data

• ⼩小⽂文件(< 2k)数据存储于inode

• 加速⼩小⽂文件性能

• Snapshots

• ⽂文件系统级的快照

• 数据保护与恢复

• Multi FileSystem

• ⼀一个Ceph集群⽀支持多个FileSystem
Ceph Comparison
分类 RBD CephFS RADOSGW
存储类型 Block File Object
依赖组件 rbd / Librbd MDS RadosGateWay
共享 NO YES NO
速度 最快 较慢 最慢
额外操作 Map,格式化 Mount S3 / Swift Client
常⻅见开源存储系统对⽐比
名称 功能 语⾔言 适⽤用场景
Ceph
Block / Object /
File
C++
社区活跃,云计算场景,统⼀一
存储
HDFS File Java 社区活跃,⼤大数据场景
GlusterFS File / Block C 社区⼀一般活跃,⽂文件共享场景
Lustre File C 社区不不活跃,⽂文件共享场景
SheepDog Block C 简单块存储场景
Q&A

More Related Content

PDF
Ceph perf-tunning
PDF
Ceph monitor-op
PDF
Kubernetes use-ceph
PDF
Cephfs架构解读和测试分析
PDF
Design realization and application of RBD NBD - Wang Li
PPTX
應用Ceph技術打造軟體定義儲存新局
PDF
Hacking Nginx at Taobao
PDF
阿里CDN技术揭秘
Ceph perf-tunning
Ceph monitor-op
Kubernetes use-ceph
Cephfs架构解读和测试分析
Design realization and application of RBD NBD - Wang Li
應用Ceph技術打造軟體定義儲存新局
Hacking Nginx at Taobao
阿里CDN技术揭秘

What's hot (20)

PDF
Ceph in UnitedStack
PPT
Traffic server overview
PDF
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
PDF
Bypat博客出品-服务器运维集群方法总结
PDF
Apache trafficserver
PDF
服务器基准测试-叶金荣@CYOU-20121130
PDF
Bypat博客出品-服务器运维集群方法总结2
PDF
Bypat博客出品-服务器运维集群方法总结3
PDF
课题三:Nginx基础知识
PPTX
MySQL压力测试经验
PDF
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
PPTX
Cgroup lxc在17173 iaas应用池中应用
PDF
Kvmopt osforce
PDF
美团点评技术沙龙010-Redis Cluster运维实践
PDF
Docker初识
PPTX
如何针对业务做DB优化
PDF
一个 Mongodb command 的前世今生
PDF
Ceph Day Beijing - Leverage Ceph for SDS in China Mobile
PDF
美团技术团队 - KVM性能优化
PPTX
Windows Container 101: dotNET, Container, Kubernetes
Ceph in UnitedStack
Traffic server overview
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Bypat博客出品-服务器运维集群方法总结
Apache trafficserver
服务器基准测试-叶金荣@CYOU-20121130
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结3
课题三:Nginx基础知识
MySQL压力测试经验
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
Cgroup lxc在17173 iaas应用池中应用
Kvmopt osforce
美团点评技术沙龙010-Redis Cluster运维实践
Docker初识
如何针对业务做DB优化
一个 Mongodb command 的前世今生
Ceph Day Beijing - Leverage Ceph for SDS in China Mobile
美团技术团队 - KVM性能优化
Windows Container 101: dotNET, Container, Kubernetes
Ad

Similar to Ceph intro (10)

PDF
Ceph customize ap is for programmatic access with python
PDF
Ceph中国社区9.19 Some Ceph Story-朱荣泽03
PDF
Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Deve...
PDF
Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬
PDF
Ceph Day Beijing - Leverage Ceph for SDS in China Mobile
PDF
Operation and Maintenance of Large-Scale All-Flash Memory Ceph Storage Cluste...
DOC
Architect Document
PDF
Divein ceph objectstorage-cephchinacommunity-meetup
PDF
Ceph中国社区9.19 Ceph集群运维及案例分享04-武宇亭
PDF
Ceph Based Large Scale Application Case and Technology in Financial Industry ...
Ceph customize ap is for programmatic access with python
Ceph中国社区9.19 Some Ceph Story-朱荣泽03
Ceph Day Beijing: One Ceph, Two Ways of Thinking - Between Customers and Deve...
Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬
Ceph Day Beijing - Leverage Ceph for SDS in China Mobile
Operation and Maintenance of Large-Scale All-Flash Memory Ceph Storage Cluste...
Architect Document
Divein ceph objectstorage-cephchinacommunity-meetup
Ceph中国社区9.19 Ceph集群运维及案例分享04-武宇亭
Ceph Based Large Scale Application Case and Technology in Financial Industry ...
Ad

Ceph intro

  • 2. Ceph Profile • WebSite: https://ceph.com/ • Github: https://github.com/ceph/ • Language: C++ • Codes:100W+ • Founder: Sage Weil • Issues: http://tracker.ceph.com/projects/ceph/issues
  • 3. Ceph Profile Cont. • Release • 命名:A — N / 数字 • ⽐比如当前版本:Luminous 12.2.X • Development: X.0.Z • Candidate:X.1.Z • Stable: X.2.Z • 每个⼤大版本⼀一般维护两年年 • Hammer之前版本是:0.X.Z的格式,⽐比如:Hammer 0.94.8
  • 5. RADOS • RADOS:Reliable Autonomic Distributed Object Store • Monitors • 集群(单数) • PAXOS:拜占庭将军问题,其他:RAFT,Totem (PaceMaker) • OSDs • 很多个 • 存储数据 • Filestore • Bluestore
  • 6. Ceph Features • ⾼高扩展性 • 动态扩容/缩容 • ⾼高可靠性 • 集群可靠性 • 数据可靠性(Replica,EC) • ⾼高性能(BandWidth,IOPS) • 数据分⽚片 • 均衡存储 • 统⼀一存储 • block / object / filesystem
  • 7. Ceph Components • ceph-mon • ceph-mgr • ceph-osd • ceph-mds • radosgw • Clients • librbd / rbd module • ceph-fuse / cephfs module • s3 / swift client
  • 8. Ceph Comm • Client <—> Monitor 认证,集群map信息等 • Client <—> OSD 数据IO • Monitor <—> OSD ⼼心跳,集群map信息等 • Client <—> MDS 元数据操作和Capalities • Monitor <—> MDS ⼼心跳,集群map信息等 • MDS <—> OSD 元数据IO
  • 9. Ceph Concept • Crush:Controlled Replication Under Scalable Hashing • Crush Rule • Crush Class • Pool:存储池 • PG:Placement Group • Object:存储对象
  • 10. Ceph Maps • Monitor Map:Monitor集群,Mon状态:in /out Quorum • OSD Map:OSD集群,OSD状态:up / down, in / out • MDS Map:MDS集群,MDS状态:Active / Standby • Crush Map:集群映射架构 • PG Map:PG映射到OSDs • 总结:⽆无需查表,算算就好!
  • 11. How to Map? • File:任何⼀一种连续的数据存储
  • 12. • Rados Block Device - 使⽤用最⼴广的功能 • 如何使⽤用? • librbd - OpenStack • kernel rbd module - Kubernetes RBD Intro
  • 13. • 映射到虚拟机为块设备: /dev/vd<id> • 格式化为⽂文件系统:mkfs.<ext4/xfs> /dev/vd<id> • mount后使⽤用:mount /dev/vd<id> /mountpoint/ • 优势1:不不依赖kernel rbd,版本较新,⽀支持feature⽐比较多 • 优势2:client rbd cache,加速访问 RBD - librbd
  • 14. • RBD Map / Unmap # rbd map <pool/rbd-image> # rbd unmap /dev/rbd<id> • Mkfs (RBD Image在第⼀一次挂载使⽤用时要格式化⽂文件系统) # mkfs.<ext4/xfs> /dev/rbd<id> • Mount / Umount # mount /dev/rbd<id> /mountpoint-rbd/ # umount /mountpoint-rbd/ • Map /mountpoint-rbd/ to Docker RBD - Kernel Client
  • 15. • RBD Provisioner • https://github.com/kubernetes-incubator/external-storage/tree/ master/ceph/rbd • 创建ceph admin secret(ceph不不开启认证时忽略略) • 创建ceph pool和user secret(ceph不不开启认证时忽略略) • 创建StorageClass • 创建PVC • 创建Pod使⽤用PVC RBD With K8S
  • 16. RBD Other Features • Lock • 仅⽀支持⼀一个客户端写 • 多个客户端可以同时读 • Resize • resize RBD Image • 格式化的具体⽂文件系统要⽀支持fs resize • Snapshot • 集群内数据保护 • 秒级备份,数据恢复
  • 17. RBD Other Features cont. • Mirror • 跨集群数据保护 • 异步 / 同步 • NBD • Network Block Device • RBD 映射为 NBD • ISCSI • ISCSI GateWay • RBD 转换为 ISCSI Target
  • 18. RadosGW Intro • Rados GateWay • 使⽤用较⼴广的功能 • ⽀支持S3,Swift API • 如何使⽤用? • 创建使⽤用的pools • 启动radosgw组件
  • 19. RadosGW Usage • RestFul API • Civetweb • 多个RadosGW • Pools:Reps + EC • Keystone Integration
  • 20. CephFS Intro • Ceph FileSystem • Ceph最晚Production Ready的产品 • 分布式⽂文件系统,兼容POSIX,多客户端数据共享 • 如何使⽤用? • 启动ceph-mds组件 • 创建⼀一个metadata pool • 创建⼀一个或多个data pools • 创建⼀一个CephFS(将来⽀支持⼀一个集群多个CephFS)
  • 21. CephFS Client • Kernel Client • Linux Kernel Module:cephfs • 性能⾼高,依赖系统内核,代码较⽼老老,升级麻烦 • Ceph Fuse Client • pkg:ceph-fuse • 性能低,不不依赖系统内核,代码较新,升级⽅方便便
  • 22. CephFS Usage • Mount CephFS到本地 • mount -t ceph <mon-ip:port,…>:/subdir /mountpoint/ • ceph-fuse -t <mon-ip:port,…> /mountpoint/ -r /subdir • 直接使⽤用 • ⽀支持多客户端mount相同⽬目录来共享数据 • 兼容POSIX,与本地⽂文件系统使⽤用姿势基本⼀一致 • Map⽬目录到Docker
  • 23. CephFS How? • Client与MDS交互获取元数据信息 • 元数据的更更新是同步的 • Client与OSD交互获取数据信息 • 数据的更更新可能不不是同步的,FUSE Client可配置
  • 24. • CephFS Provisioner • https://github.com/kubernetes-incubator/external-storage/ tree/master/ceph/cephfs • 创建ceph admin secret(ceph不不开启认证时忽略略) • 创建StorageClass • 创建PVC • 创建Pod使⽤用PVC CephFS With K8S
  • 25. CephFS Features • 数据共享:多客户端同时读写 • 多Active的元数据服务器器:Active MDSs • ⽬目录分⽚片级别的负载均衡:Fragment, Balance • ⽀支持Quota:files, bytes • File / Dir Layout配置 • pool, namespace, stripe_unit, stripe_count • Authentication: ⽬目录级别
  • 26. CephFS Experimental • InLine Data • ⼩小⽂文件(< 2k)数据存储于inode • 加速⼩小⽂文件性能 • Snapshots • ⽂文件系统级的快照 • 数据保护与恢复 • Multi FileSystem • ⼀一个Ceph集群⽀支持多个FileSystem
  • 27. Ceph Comparison 分类 RBD CephFS RADOSGW 存储类型 Block File Object 依赖组件 rbd / Librbd MDS RadosGateWay 共享 NO YES NO 速度 最快 较慢 最慢 额外操作 Map,格式化 Mount S3 / Swift Client
  • 28. 常⻅见开源存储系统对⽐比 名称 功能 语⾔言 适⽤用场景 Ceph Block / Object / File C++ 社区活跃,云计算场景,统⼀一 存储 HDFS File Java 社区活跃,⼤大数据场景 GlusterFS File / Block C 社区⼀一般活跃,⽂文件共享场景 Lustre File C 社区不不活跃,⽂文件共享场景 SheepDog Block C 简单块存储场景
  • 29. Q&A