SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结
redhat9
 
Apache trafficserver
Apache trafficserverApache trafficserver
Apache trafficserver
Din Dindin
 
Bypat博客出品-服务器运维集群方法总结3
Bypat博客出品-服务器运维集群方法总结3Bypat博客出品-服务器运维集群方法总结3
Bypat博客出品-服务器运维集群方法总结3
redhat9
 
课题三:Nginx基础知识
课题三:Nginx基础知识课题三:Nginx基础知识
课题三:Nginx基础知识
Liu Allen
 
Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用
Jinrong Ye
 
Kvmopt osforce
Kvmopt osforceKvmopt osforce
Kvmopt osforce
meecheng
 

Was ist angesagt? (20)

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

Ähnlich wie Ceph intro

開放原始碼 Ch2.1 app - oss - oss ide (ver1.2)
開放原始碼 Ch2.1   app - oss - oss ide (ver1.2)開放原始碼 Ch2.1   app - oss - oss ide (ver1.2)
開放原始碼 Ch2.1 app - oss - oss ide (ver1.2)
My own sweet home!
 
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
Wen-Tien Chang
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAE
q3boy
 
大规模网站架构
大规模网站架构大规模网站架构
大规模网站架构
drewz lin
 

Ähnlich wie Ceph intro (20)

云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路
 
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
 
開放原始碼 Ch2.1 app - oss - oss ide (ver1.2)
開放原始碼 Ch2.1   app - oss - oss ide (ver1.2)開放原始碼 Ch2.1   app - oss - oss ide (ver1.2)
開放原始碼 Ch2.1 app - oss - oss ide (ver1.2)
 
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
 
Cloudstack dev/user sharing
Cloudstack dev/user sharingCloudstack dev/user sharing
Cloudstack dev/user sharing
 
Docker一期培训
Docker一期培训Docker一期培训
Docker一期培训
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
 
Full stack-development with node js
Full stack-development with node jsFull stack-development with node js
Full stack-development with node js
 
Comment System of 56.com
Comment System of 56.comComment System of 56.com
Comment System of 56.com
 
课题二:Node.js那些事儿
课题二:Node.js那些事儿课题二:Node.js那些事儿
课题二:Node.js那些事儿
 
DAE 新变化介绍
DAE 新变化介绍DAE 新变化介绍
DAE 新变化介绍
 
.NET Conf Taiwan 2022 - Tauri - 前端人員也能打造小巧快速的 Windows 應用程式
.NET Conf Taiwan 2022 - Tauri -前端人員也能打造小巧快速的 Windows 應用程式.NET Conf Taiwan 2022 - Tauri -前端人員也能打造小巧快速的 Windows 應用程式
.NET Conf Taiwan 2022 - Tauri - 前端人員也能打造小巧快速的 Windows 應用程式
 
Mesos intro
Mesos introMesos intro
Mesos intro
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAE
 
大规模网站架构
大规模网站架构大规模网站架构
大规模网站架构
 
深入淺出Node.JS
深入淺出Node.JS深入淺出Node.JS
深入淺出Node.JS
 
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
 
Docker 101
Docker 101Docker 101
Docker 101
 
Hyper: 让Pod以VM为边界
Hyper: 让Pod以VM为边界Hyper: 让Pod以VM为边界
Hyper: 让Pod以VM为边界
 
前端自動化工具
前端自動化工具前端自動化工具
前端自動化工具
 

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