Ceph管理平台Calamari的架构与功能分析
创始人
2025-01-09 10:13:30
0

alamari项目开始于2013年夏天,创立它的初衷是开发一个Ceph管理平台, Calamari对外提供了十分漂亮的web管理和监控界面,以及一套改进的REST API接口(不同于Ceph自身的REST API),在一定程度上简化了Ceph的管理。最初Calamari是作为Inktank公司的Ceph企业级商业产品来销售,红帽今年5月30日收购Inktank后为了更好地推动Ceph的发展,对外宣布Calamari开源,秉承开源开放精神的红帽着实又做了一件非常有意义的事情。本文将简单剖析Calamari的架构和功能。

安装

Calamari推荐使用vagrant + virtualbox的方式来build安装包,然后在对应的操作系统中进行安装,具体的安装过程请参照Ceph Calamari : step-by-step(http://ceph.com/category/ceph-gui/)里边有很详细的安装步骤。我使用的是Ubuntu13.10来创建Calamari的安装包,build后的安装包列表是:

  • calamari-clients_1.2.1.1-29-g3790c24_all.deb (calamar客户端,WEB UI代码)
  • 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服务端,它提供了calamari REST API,calamari 通过salt管理Ceph服务的cthulhu,以及一个calamari web的一个基本框架)
  • diamond_3.4.67_all.deb(calamari监控客户端)

架构

下面Calamari的架构图能帮助更好的理解它的组件,其中红框部分为Calamari代码实现的部分,非红框部分为非Calamari实现的开源框架。

 

在Ceph server node安装的组件有Diamond和Salt-minion。Diamond负责收集监控数据,它支持非常多的数据类型和metrics,通过查看源代码,它支持90多种类型的数据;每一个类型的数据都是上图中的一个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通信。

calamari_rest提供Calamari REST API,详细的接口请大家参照官方文档。Ceph的REST API是一种低层次的接口,其中每个URL直接映射到等效的CEPH CLI;Calamari REST API提供了一个更高层次的接口,API的使用者可以习惯的使用GET/POST/PATCH方法来操作对象,而无需知道底层的Ceph的命令;它们之间的主要区别在于,Ceph的REST API的使用者需要非常了解Ceph本身,而Calamari 的REST API更贴近对Ceph资源的描述,所以更加适合给上层的应用程序调用。
cthulhu可以理解是Calamari Server的Service层,对上为API提供接口,对下调用Salt-master。但是代码美中不足的是calamari_rest有些功能直接调用了Salt-master而没有调用cthulhu。
calamari_clients是一套用户界面,Calamari Server在安装的过程中会首先创建opt/calamari/webapp目录,并且把webapp/calamari下的manager.py(django 配置)文件考进去, calamari_web的所有内容到要放到opt/calamari/webapp下面来提供UI的访问页面。
calamari-web包下面的文件提供所有web相关的配置,calamari_rest和calamari_clients都要用到。

功能

Calamari的***的就是监控功能,在页面上可以浏览整个Ceph Cluster的使用状况,OSD状态,磁盘的IOPS,Ceph Server的系统资源使用情况等。

 

监控概要

 

OSD状态

Calamari 提供的管理功能非常的有限,用户只可以配置cluster的一些基本参数和添加修改pool

Cluster 配置

 

 

添加修改pool

总结:

Calamari为Ceph的运维和管理提供了一个统一的平台,而且用户还可以基于这个平台扩展自己的存储管理产品,但同时也存在着不足和需要改进的地方。

  1. 首先,Calamari还不能完成Ceph deploy所实现的部署功能,这是它***一个不足;Fuel可以完成部署功能,并且可以选择Ceph server的数据盘和日志盘以及定制默认的备份数等,所以Calamari + Fuel可以来实现一个完成的基于Ceph的部署和管理工具。
  2. 其次,Calamari提供的管理功能太少,用户无法只使用它来运维一个Ceph环境。
  3. ***,用户可以基于Calamari开发自己的Ceph管理软件,UI部分可以修改calamari_clients的页面,也可也单独实现一套自己的UI基于calamari_rest和Graphite_web,后端的功能的监控部分可以扩展diamond的collector实现,管理Ceph的功能可以扩展rest api,cthulhu,salt等来实现。

原文链接:http://www.openstack.cn/pauthor/blacker

 

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...