Weitere ähnliche Inhalte
Ähnlich wie Ceph intro (20)
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
- 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
• 总结:⽆无需查表,算算就好!
- 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
- 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
- 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 简单块存储场景