2.1 Ceph集群的组成架构
Ceph集群服务端主要有3种类型的守护进程,每种类型的守护进程最后都被规划到特定服务器节点上。下面对这3种类型的守护进程进行简单描述。
1)Ceph OSD:利用Ceph节点上的CPU、内存和网络进行数据复制、纠错、重新平衡、恢复、监控和报告等。
2)Ceph Monitor:维护Ceph集群的主副本映射、Ceph集群的当前状态以及处理各种与运行控制相关的工作。
3)Ceph Manager:维护Placement Group(放置组)有关的详细信息,代替Ceph Monitor处理元数据和主机元数据,能显著改善大规模集群的访问性能。Ceph Manager处理许多只读Ceph CLI的查询请求,例如放置组统计信息。Ceph Manager还提供了RESTful API。
Ceph客户端接口负责和Ceph集群进行数据交互,包括数据的读写。客户端需要以下数据才能与Ceph集群进行通信。
·Ceph配置文件或集群的名称(通常命名为ceph)、Monitor地址
·存储池名称
·用户名和密钥路径
Ceph客户端维护对象ID和存储对象的存储池名称。为了存储和检索数据,Ceph客户端访问Ceph Monitor并检索最新的Cluster Map副本,然后由Ceph客户端向Librados提供对象名称和存储池名称。Librados会使用CRUSH算法为要存储和检索的数据计算对象的放置组和主OSD。客户端连接到主OSD,并在其中执行读取和写入操作。
图2-1展示了Ceph集群的组成架构。它包含构建一个Ceph集群所需的必要功能节点以及网络关联关系,只有少部分集群的网关节点未在图中显示。
图2-1 Ceph集群的组成架构
图2-1中有两个重要的关注点。
(1)网络
这里有两个万兆网络,集群对外通信网络和集群内部通信网络。我们也可以在该网络中增加一个管理网络,但由于管理数据的流量很小,可将管理网络和公网网络合并。
由于Ceph集群最初的设计是为了提高集群的性能,并且考虑到集群网络的带宽要求,因此将集群内部流量与客户端到集群流量进行隔离,从而设计了两层网络。在较小的集群上,1G网络可能适用于正常操作环境,但不适用于繁重的负载或故障恢复环境。如果驱动器发生故障,则跨1G网络复制1TB数据需要3小时。这对于集群的使用体验来说是不能接受的。而对于10G网络,复制同样的数据时间则在20分钟内。这也是生产环境中一定要使用万兆网络,甚至服务器绑定多万兆网卡的原因。
(2)服务器
这里面的服务器分了几种角色,每种角色都对应集群的一类功能,主要包括MON(Ceph集群的Monitor节点)、OSD(Ceph集群的存储节点)、MGR(Ceph集群的管理节点)、RGW(Ceph集群的对象网关节点)、MDS(CephFS元数据节点)、iSCSI网关、NFS集群网关和Ceph客户端。
接下来,我们对集群中涉及的主要服务器角色进行逐一分析,阐述其具体功能。