标签:ceph
Ceph在KVM虚拟化中的应用与故障处理
在一个分布式集群上,同时为用户提供对象存储,块存储及文件存储
优点: 统一存储
无任何单点故障
数据多分冗余
存储容量可扩展
自动容错及故障自愈
Ceph的三大角色组件及其作用
表现为3个守护进程
Ceph OSD
Monitor
MDS
还有其他的一些功能组件 RADOS Getaway
Ceph OSD:Ceph Object Storage Device 主要功能包括:存储数据,副本数据处理,数据恢复,数据回补,平衡数据分布,并将数据相关的一些儿监控信息提供给至少2个Ceph OSD,才能有效保存两份数据.
Monitor:主要功能是维护集群状态的表组, Monitor Map,OSD Map,PG(Placement Group) map,CRUSH map
MDS:Ceph的MDS(Metadata Server)守护进程,主要保存的是Ceph文件系统的元数据. 对于Ceph的块设备和Ceph对象存储都不需要Ceph MDS守护进程.
Ceph的架构及应用场景
ceph的架构主要分成底层数据分布及上层应用接口
Ceph的底层核心是RADOS(reliable,autonomous,Distributed,Object,Storage)
Ceph的本质是一个对象存储.RADOS由两个组件组成:OSD和Monitor
OSD主要提供存储资源,每一个disk,SSD,RAID GROUP或者一个分区都可以成为一个OSD,而每个OSD还将负责向该对象的负载节点分发和恢复,Monitor维护Ceph集群并监控Ceph集群的全局状态,提供一致性的策略
RADOS分发策略依赖于一个名为CRUSH(Controlled Replication Under Scalable Hashing 基于可扩展哈希算法的可控复制)的算法
Ceph的应用场景主要由它的架构确定.ceph提供对象存储.块存储和文件存储.主要有4中应用
第一类:Librados应用.通俗地说,Librados提供应用程序对RADOS的直接访问,目前Librados已经提供了对C,C++,Java,Python,Ruby和PHP的支持,它支持单个单项的原子操作,如同时更新数据和属性,CAS操作,同时有对象粒度的快照操作,它的实现是基于RADOS的插件API,其实际上就是在RADOS上运行的封装库.
第二类:RADOSGW(Reliable Autonomic Distributed Object Storage)应用,这类应用基于Librados之上,增加了HTTP协议,提供RESTful接口并且兼容S3,Swift接口
第三类:RBD(RADOS BLOCK DEVICE)应用,这类应用也是基于librados之上的,细分为两种应用场景
1.为虚拟机提供块设备,通过Librbd可以创建一个块设备(Container),然后通过QEMU/KVM附加到VM上,通过Container和VM的解耦,使得块设备可以被绑定到不通的VM上
2.为主机提供块设备.
以上两种方式都是将一个虚拟的块设备分片存储在RADOS中,都会利用数据条带化提高数据并行传输,都支持块设备的快照.COW(Copy-ON-Write)克隆.最重要的是RBD还支持Live migration.
第四类:CephFS(Ceph文件系统)应用,这类应用是基于RADOS实现的PB级别分布式文件系统,其中引入了MDS(Meta Data Server),它主要为兼容POSIX文件系统提供元数据,比如文件目录和文件元数据,同时MDS会将元数据存储在RADOS中,这样元数据本身也达到了并行化,可以大大加快文件操作的速度.
MDS本身不为Client提供数据文件,只为Client提供对元数据的操作,当Client打开一个文件时,会查询并更新MDS响应的元数据,然后根据提供的对象信息直接从RADOS中得到文件信息.
本文出自 “lionel” 博客,请务必保留此出处http://reliable.blog.51cto.com/10292844/1785966
标签:ceph
原文地址:http://reliable.blog.51cto.com/10292844/1785966