Ceph Calamari软件包介绍

时间:2022-07-24 12:38:12

      Calamari包含4个主要的软件包,分别在Ceph集群和Calamari服务端。服务端接收Ceph集群端代理的数据,并通过Web加以呈现,具体如下:

      calamari-clients_1.2.1.1-29-g3790c24_all.deb(calamar客户端,WEBUI代码)

      calamari-clients-build-output.tar(同calamari-clients_1.2.1.1-29-g3790c24_all-.deb内容一样,只是它解压后可以在任何平台上使用)

      calamari-repo-precise.tar.gz(安装源,安装calamari过程中依赖的包)

      calamari-server_1.2.1-56-gc09e8ed_amd64.deb(calamari服务端,它提供了calamariREST API,calamari通过salt管理Ceph服务的cthulhu,以及一个calamariweb的一个基本框架)

      diamond_3.4.67_all.deb(calamari监控客户端)

      上述软件包是Calamari自身的软件包,其中还会依赖很多其它的软件包,Calamari的整体架构如下图所示。

在Ceph server node安装的组件有Diamond和Salt-minion。Diamond负责收集监控数据,它支持非常多的数据类型和metrics,通过查看源代码,它支持90多种类型的数据;每一个类型的数据都是图1中的一个collector,它除了收集Ceph本身的状态信息,它还可以收集关键的资源使用情况和性能数据,包括CPU,内存,网络,I / O负载和磁盘指标,而且还能收集很多流行软件的性能指标,包括Hadoop, Mongo, Kafka, MySQL, NetApp, RabbitMQ, Redis, and AWS S3等。Collector都是使用本地的命令行来收集数据,然后报告给Graphite。

      Graphite不仅是一个企业级的监控工具, 还可以实时绘图。carbon-cache是Python实现的高度可扩展的事件驱动的I/O架构的后端进程,它可以有效地跟大量的客户端通信并且以较低的开销处理大量的业务量。

      Whisper跟RRDtool类似,提供数据库开发库给应用程序来操纵和检索存储在特殊格式的文件数据(时间数据点数据),Whisper最基本的操作是创建作出新的Whisper文件,更新写入新的数据点到一个文件中,并获取检索的数据点

      Graphite_web是用户接口,用来生成图片,用户可以直接通过URL的方式访问这些生成的图片。

      Calamari 使用了Saltstack让Calamari Server和Ceph server node通信。Saltstack是一个开源的自动化运维管理工具,与Chef和Puppet功能类似。Salt-master发送指令给指定的Salt-minion来完成对Cpeh Cluster的管理工作;Salt-minion 在Ceph server node安装后都会从master同步并安装一个ceph.py文件,里面包含Ceph操作的API,它会调用librados或命令行来最终和Ceph Cluster通信。

Ceph Calamari软件包介绍



      calamari_rest提供CalamariREST API,详细的接口请大家参照官方文档。Ceph的RESTAPI是一种低层次的接口,其中每个URL直接映射到等效的CEPHCLI;CalamariREST API提供了一个更高层次的接口,API的使用者可以习惯的使用GET/POST/PATCH方法来操作对象,而无需知道底层的Ceph的命令;它们之间的主要区别在于,Ceph的RESTAPI的使用者需要非常了解Ceph本身,而Calamari的RESTAPI更贴近对Ceph资源的描述,所以更加适合给上层的应用程序调用。

      cthulhu可以理解是CalamariServer的Service层,对上为API提供接口,对下调用Salt-master。但是代码美中不足的是calamari_rest有些功能直接调用了Salt-master而没有调用cthulhu。

      calamari_clients是一套用户界面,CalamariServer在安装的过程中会首先创建opt/calamari/webapp目录,并且把webapp/calamari下的manager.py(django配置)文件考进去,calamari_web的所有内容到要放到opt/calamari/webapp下面来提供UI的访问页面。

calamari-web包下面的文件提供所有web相关的配置,calamari_rest和calamari_clients都要用到。