分布式软件定义存储Ceph介绍
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•Xfs
•Btrfs
•Ext4
•新版本中将支持更多的后端形式,如直接管理
块设备
•在一个集群中支持3-10000+的OSD
MON
Mon1
Mon2
Mon3
•Monitoring daemon •维护集群的视图和状态 •OSD和monitor之间相互传输节点状态信息,共同得出系统的总体 工作状态,并形成一个全局系统状态记录数据结构,即所谓的集群 视图(cluster map)
Ceph的历史
•2003年项目成立; •2006年作者将其开源; •2009年Inktank公司成立并发布Ceph的第一个稳定版本”Argonaut” ; •2014年红帽公司收购了Inktank,丰富了自己的软件定义存储的产品 线,此次收购使红帽成为领先的开源存储产品供应商,包括对象存储 、块存储和文件存储。
•通过RESTFUL API管理所有的集群和对象存储功能
特性总结-安全
•访问控制列表
•高细腻度的对象存储用户和用户组的安全控制
•配额
•支持对Cephfs设定使用额度
特性总结-可用性
•在集群节点之间条带和复制数据
•保证数据的持久性、高可用和高性能
•动态块设备大小调整
•扩卷缩卷不会导致宕机
•快速数据定位
•扩展的RADOS •RADOS可以横跨2个异地的数据中心并经过优化设计(低网络延时)
归档/冷 存储
CEPH STORAGE CLUSTER
成本
•支持瘦部署
•支持超量分配(block only)
•支持普通硬件设备
•将廉价PC服务器转换成存储设备满足不同负载和大容量、高可用、可扩展 的需求
•Erasure Coding纠删码
•不需要查找-客户端通过计算就可以快速定位
•自动失效恢复
•可防止影响数据一致性和可用性的故障
特性总结-性能
•支持Copy On Write的克隆 •可以快速的部署虚拟机的块设备(block only)
•客户端内存的缓存 •内核和Hypervisor(block only)
•支持大并发的数据IO •是client/cluster方式而不是client/server
•数据中心复制同步 •可在不同数据中心之间实现部分或者完全备份(Object only)
•读亲和力 •始终为本地用户提供本地数据副本(Object only)
•将快照export给其他的数据中心 •异地灾难恢复(Block only)
•支持增量快照export •降低网络开销,只同步变化部分(block only)
分布式 无中心结构设计,理论上无上限; 可轻松扩展到上千台服务器,PB级容量;
对象存储
RADOS就是一个完整的对象存储系统,所有存储 在Ceph系统中的用户数据事实上最终都是由这一层 来存储的,包括Ceph FS的元数据
RADOS包含2个组件:mon和osd CRUSH算法
RADOS CLUSTER
OSD
•(O)bject (S)torage (D)aemon(Device)
•系统部分
•守护进程部分
•每一个磁盘都会对应一个OSD
•用于与mon和其他osd通讯以及维护更新状
态
•与其他osd完成数据存储和维护
btrfs
•与client端完成对各种数据对象的操作
xfs ext4
•前主要使用文件系统作为其后端,如
•实现零宕机升级
特性总结-API
•互操作性
•API兼容亚马逊S3和Openstack对象存储(Swift) •与Openstack的块存储完全整合(Cinder/Glance)
•多开发语言支持
•librados支持各种k开发语言:PHP、Ruby、JAVA、Python、C&C++
•完整的管理API
•任何一个ceph客户端只是不定期更新少量本地元数据,加以简单的计算, 就可以根据一个数据的ID来定位其存储位置(无单点、高效、无瓶颈、无 限扩展);
如何对对象(Objects)进行寻址
RADOS GW
•RADOS GW是与Amazon S3和Swift兼容的RESTful API的gateway。 •RADOS GW提供的API抽象层次更高,但功能则不如librados强大 •通过RADOS来存储对象 •通过RADOSGW可以实现对象存储的异地容灾
如何定位对象
•RADOS通过CRUSH(Controlled Replication Under Scalable Hashing)算法来定位对象
•不像其他的分布式文件系统,没有单独的元数据服务器用来维护数据和存 储对应关系的数据结构(延时、单点、性能瓶颈、扩展性); •通过纯计算来定位对象;
•无中央元数据服务器
•最有效的数据冗余方式
•目录层次 •文件元数据(属组、权限、时间戳等等)
•元数据存储在RADOS中 •只有Ceph FS才使用MDS
Ceph和Openstack
特性总结-扩展性
•高度可扩展架构
•通过强大的CRUSH算法可以将集群扩展到上千个节点
•自动re-balance
•自动复制数据,可随意扩容或者缩小容量
•在线分阶段升级
Ceph - 分布式软件定义存储介绍
社区最佳开源项目
红帽存储目标工作负载
什么是CEPH
•Ceph是一种基于通用硬件 设计的高可靠性、高可扩展 统一分布式存储软件。 •统一:提供三种存储功能
•文件存储 •块存储 •对象存储
•分布式:
•Ceph可以被部署于上千台服 务器上。
Ceph的优势
•并不是一个新兴的开源项目,经历了十多年的发展,已经相当成 熟; •可靠性高,无单点故障; •在不同场景下都可以达到高性能(并发和吞吐量); •可以轻松扩展到PB级的存储容量; •Ceph客户端早已进入主流内核(2.6.34);
•与openstack集成
•支持cinder与glance
•支持snapshot •支持COW
Ceph FS
•在RADOS之上构建的POSIX兼容的文件系统 •可以通过linux内核native的驱动cephfs.ko或者fuse来直接挂载 •Ceph FS需要元数据服务器(MDS)来定位文件,元数据记录
RBD
•RBD(Reliable Block Device)提供了一个标准的块设备接口,常用于在虚拟化的场景下为虚 拟机创建volume。目前,Red Hat已经将RBD驱动集成在KVM/QEMU中,以提高虚拟机访问性能 •RBD的客户端模块已经包含在RHEL7.1中 •可直接挂接
•rbd map foo --pool rbd •mkfs.xfs /dev/rbd/rbd/foo
•分层缓存 •可将热数据缓存于SSD设备以加速访问
•Flash Journal •以加速写性能
•可定制的条带大小 •针对诸如视频类的大文件或者图片类小文件实现最优化存储
多站点的对象存储
多站点和灾难恢复
•支持Zone和Region •通过全局名字空间来实现和S3类似的部署拓扑(Object only)
CEPH社区目前的活跃情况
•从Ceph项目诞生以来,红帽公司总共贡献了86% 的代码
CEPH的广大用户群
Ceph的设计架构
RADOS(Reliable,Autonomic,Distributed Object Store)
可靠 通过复制来避免数据丢失;
自动 自动检测失效; 自动恢复失效 自动replicate; 自动re-balance;