<b>1.2 ceph的功能组件</b>
ceph提供了rados、osd、mon、librados、rbd、rgw和ceph fs等功能组件,但其底层仍然使用rados存储来支撑上层的那些组件,如图1-2所示。
图1-2 ceph功能组件的整体架构
下面分为两部分来讲述ceph的功能组件。
(1)ceph核心组件
在ceph存储中,包含了几个重要的核心组件,分别是ceph osd、ceph monitor和ceph mds。一个ceph的存储集群至少需要一个ceph monitor和至少两个ceph的osd。运行ceph文件系统的客户端时,ceph的元数据服务器(mds)是必不可少的。下面来详细介绍一下各个核心组件。
ceph osd:全称是object storage device,主要功能包括存储数据,处理数据的复制、恢复、回补、平衡数据分布,并将一些相关数据提供给ceph monitor,例如ceph osd心跳等。一个ceph的存储集群,至少需要两个ceph osd来实现active + clean健康状态和有效的保存数据的双副本(默认情况下是双副本,可以调整)。注意:每一个disk、分区都可以成为一个osd。
ceph monitor:ceph的监控器,主要功能是维护整个集群健康状态,提供一致性的决策,包含了monitor map、osd map、pg(placement group)map和crush map。
ceph mds:全称是ceph metadata server,主要保存的是ceph文件系统(file system)的元数据(metadata)。温馨提示:ceph的块存储和ceph的对象存储都不需要ceph mds。ceph mds为基于posix文件系统的用户提供了一些基础命令,例如ls、find等命令。
(2)ceph功能特性
ceph可以同时提供对象存储radosgw(reliable、autonomic、distributed、object storage gateway)、块存储rbd(rados block device)、文件系统存储ceph fs(ceph file system)3种功能,由此产生了对应的实际场景,本节简单介绍如下。
radosgw功能特性基于librados之上,提供当前流行的restful协议的网关,并且兼容s3和swift接口,作为对象存储,可以对接网盘类应用以及hls流媒体应用等。
rbd(rados block device)功能特性也是基于librados之上,通过librbd创建一个块设备,通过qemu/kvm附加到vm上,作为传统的块设备来用。目前openstack、cloudstack等都是采用这种方式来为vm提供块设备,同时也支持快照、cow(copy on write)等功能。
ceph fs(ceph file system)功能特性是基于rados来实现分布式的文件系统,引入了mds(metadata server),主要为兼容posix文件系统提供元数据。一般都是当做文件系统来挂载。
后面章节会对这几种特性以及对应的实际场景做详细的介绍和分析.