Ceph的系统架构,第1张

Ceph 生态系统架构可以划分为四部分:

1 Clients:客户端数据用户)

2 cmds:Metadata server cluster,元数据服务器(缓存和同步分布式元数据)

3 cosd:Object storage cluster,对象存储集群(将数据和元数据作为对象存储,执行其他关键职能)

4 cmon:Cluster monitors,集群监视器(执行监视功能)

图1。 Ceph的生态系统的概念架构

根据ceph 16版本的changelog,16版本提供了cephfs-top文件系统监控工具。刚好手头最近有个16版本的集群,便体验一下。

文件系统客户端周期性向元数据服务发送各类监控指标(metrics),这部分数据由元数据服务路由到mds为rank 0的节点 。

元数据服务器(多活部署)同样会将自身的指标数据发送至rank 0节点。并由rank 0汇集之后发送给Ceph mgr服务。

工具的使用者可以看到两类和文件系统相关的数据:

1、全局数据。窥探文件系统整体情况,比如客户端延迟。

2、每个MDS服务的数据。比如每个MDS拥有的子树(但是实际体验没看到)。

ceph-mgr作为管理组件,具有集成插件的能力。stats负责统计插件。使用前开启stats插件

由stats插件提供的文件系统性能统计命令

(注:方括号代表可选)

不加mds_rank查看到的是整体文件系统监控指标。利用json形式查看。

输出如下:

尝试之后发现展示的信息还是不够直观。另外,MDS的统计信息都是空的。

其中属于 客户端 几个主要的参数:

几个延迟是总延迟,除以操作量才是平均延迟。

cephfs-top是类似top的形式,依赖组件是mgr中的stats插件。使用python语言实现,展示主要是客户端的统计情况。

cephfs-top源码中,获取数据实现部分。

创建clientfstop用户,该用户为cephfs-top工具默认使用的用户

安装cephfs-top工具

如果出现 “RADOS permission denied”的错误。使用ceph auth get命令获得fstop的keyring至本地ceph默认配置目录。

运行监控命令

选项 -d 可以支持05s以上的展示频率。

可展示信息:

1、客户端数量,统计FUSE、内核、libcephfs使用者。

2、客户端id;

3、客户端对应cephfs挂载目录;

4、客户端本地目录,IP地址;

5、chit cap的命中率。

6、rlat 读操作总延迟(单位s)

7、wlat 写操作总延迟(单位s)。

8、mlat 元数据操作总延迟(单位s)。

9、dlease dentry lease即客户端dentry可用率。

10、oicaps 该客户端持有caps的数量。

11、oinodes 该客户端打开文件持有inode的数量。

在统计插件stats和cephfs-top出现前,ceph支持到各个组件所在节点通过命令查看性能统计。

比如客户端的延迟只能登陆到各个挂载节点查看。MDS的情况也只能在对应的节点通过ceph daemon方式查看。现在做了部分信息的汇总,对于运维和性能优化工作而言非常方便。

但是,统计的信息覆盖面还比较窄,组件的统计信息细节没有完全展示,如果要查看某个客户端或者MDS的统计信息,还是需要到各个节点上查看。cephfs-top还有可完善的空间。

由于实验室的项目需要实现在CephFS之上建立NFS之上,所以记录一下NFS服务器的安装与配置流程。

NFS 服务器可以让客户端将网络远程的 NFS 服务器分享的目录,直接挂载到本地端的机器当中。本地端的机器通过直接读写挂载的目录,就可以同步到NFS服务器之上。

系统平台:Ubuntu 1404

NFS Server IP:19216812

iptables关闭: Firewall is disable(NFS端口使用在默认情况下是不固定,所以若配置NFS服务器需要搭配防火墙使用的话,请配置固定端口)

SELINUX=disabled

NFS的安装只需要安装rpcbind与nfs-server就可以对外提供服务了。

NFS服务器的主要配置文件就是:/etc/exports。不过这个配置文件不一定会存在,可能需要使用 vim 主动新建这个文件。

/etc/exports文件由以下选项构成:

每一行最前面是要分享出来的目录,目录可以依照不同的权限分享给不同的主机。若权限参数不止一个时,则以逗号 (,) 分开。且主机名与小括号是连在一起的喔!其中参数是可选的,当不指定参数时,nfs将使用默认选项。默认的共享选项是 sync,ro,root_squash,no_delay 当主机名或IP地址为空时,则代表共享给任意客户机提供服务。

下面是一些NFS共享的常用参数:

这里我们使用了NFS v3的配置,如下图所示:

配置完/etc/exports之后,接下来就可以启动NFS服务器了。

为了使NFS服务器能正常工作,需要启动rpcbind和nfs-kernel-server两个服务,并且rpcbind一定要先于nfs-kernel-server启动。

若要开机自启动nfs服务,可以通过sysv-rc-conf配置自启动服务。

客户端的挂载很简单,先建立一个挂载目录

之后客户端对应的文件目录便挂载上对应的文件系统了。

客户端可以通过命令配置开机自启动挂载NFS的文件系统。

将对应的命令 mount -t nfs 19216812:/tmp /mnt/nfs

添加至/etc/rcd/local,不要尝试在直接在/etc/fstab/里挂载

小结 :梳理了一下在ubuntu之下NFS服务器的安装与配置。当然RedHat系列的发行版也是大同小异。若有疏漏,望指点斧正。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Ceph的系统架构

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情