Ceph开源管理监控平台分析

转自:http://www.hl10502.com/2017/03/30/ceph-web-manage/

Ceph的开源管理监控平台有好几个,比如VSM,InkScope,Calamari等。

VSM
VSM(Virtual Storage Manager):Intel的Wang, Yaguang ([email protected])团队开发。

Ceph开源管理监控平台分析_第1张图片
image.png

vsm-team

Roadmap
vsm-roadmap

VSM架构
VSM的设计是完全按照OpenStack的架构设计。遵循一定的原则来设计这个架构:

  • 容易与OpenStack的模块集成
  • 完全与其它的OpenStack模块解耦合
  • 易于合并到其他云平台
  • 具有高可靠性,大规模数据中心的高可用性
  • 易于使用,部署和管理
Ceph开源管理监控平台分析_第2张图片
image.png

从上面VSM的架构图,我们可以看出,VSM分为核心的两个部分,VSM控制节点与VSM存储节点。

  • VSM控制节点
    • WebUI – 通过访问VSM REST API用于集群的管理、监控
    • REST API – 供vsm client访问
    • mariadb, rabbitmq
  • VSM存储节点
    • 使用diamond收集ceph节点的监控信息
    • vsm-agent工具对ceph节点进行管理

组件

  • Dashboard(vsm-dashboard):VSM的webUI界面,用户通过Dashboard来管理与监控ceph集群
  • vsmclient(python-vsmclient):VSM restapi 调用的client
  • API(vsm):VSM的restapi
  • scheduler(vsm):VSM的调度组件
  • conductor(vsm):VSM的数据库操作组件,即所有的数据库操作都是通过conductor来调用mysql
  • RabbitMQ:消息中间件,VSM的各个组件相对独立,都是通过发送消息,通过RPC的方式来相互调用
  • agent(vsm):VSM代理服务

组件特点

  • 分布式:分开独立部署
  • 无状态:各个请求独立,可扩展性强
  • RESTFUL
  • RPC
  • plugin:插件式设计,松耦合

组件代码

  • VSM目前最新的发行版本为2.1,VSM的代码组件分为四个:
    • vsm-dashboard:VSM的管理与监控web界面
    • python-vsmclient:调用restapi的client
    • vsm:VSM的核心组件(包括api、scheduler、conductor、agent等)
    • vsm-deploy:ceph部署工具
    • 代码基于Python语言,使用了wsgi、django等技术框架

GitHub

Git主页:
https://github.com/01org/virtual-storage-manager

releases版本代码下载:
https://github.com/01org/virtual-storage-manager/releases

vsm-dependencies:
https://github.com/01org/vsm-dependencies

支持功能

  • 仪表盘:查看vsm、cluster、storage group、OSD、MON、MDS、PG的状态统计信息
    • 可以判断OSD是否正常运作,空间是否满
    • 查看IOPS、latency、bandwidth、CPU实时监控信息(通过diamond实现数据的收集)
    • 可以用来发现ntp延迟的问题
  • 所有的宿主节点都需要在安装vsm的时候写在配置文件中
  • 添加删除MON/OSD守护进程
  • OSD 增删、重启、恢复(N/A)
  • osd pool的管理 – 支持cache tier的增删、replicated/EC pool的创建
  • StorageGroup的管理 – 添加新的SG,存储资源将以SG为单位进行统计
  • 支持Ceph系统的升级功能,通过github下载源码实现
  • 将通过ssh配置openstack的控制节点把rbd pool present给cinder
  • 管理系统的临界值,将在dashboard中得到体现
  • vsm 账户管理(keystone管理账户)

Inkscope

Inkscope目前最新版为1.40, http://inkscope.blogspot.fr/

Inkscope架构

inkscope-architecture

组件

inkscope-common:包含inkscope的默认配置文件以及其他进程(cephprobe,sysprobe)启动所需的依赖文件,所有相关节点都需要安装。
inkscope-admviz:包含inkscope的web控制台文件,含接口和界面,仅需要安装一个,该节点(管理节点)上同时需要按安装flask和mongodb
inkscope-cephrestapi:用于安装启动 ceph rest api 的脚本,仅需要安装在提供api接口的节点上,即mon节点。
inkscope-cephprobe:用于安装启动 cephprobe 的脚本(整个集群只需一个),安装在mon节点,脚本主要实现:获取Ceph集群的一些信息,并使用端口(5000)提供服务,将数据存入mongodb数据库中。
inkscope-sysprobe:安装用于所有mon和osd的sysprobe 所需要脚本,即所有节点均安装,实现获取节点设备资源信息如:CPU、内存、磁盘等等。

组件代码

inkscopeViz:Web客户端
inkscopeCtrl:inkscope的服务器端,提供了REST API
inkscopeProbe:收集ceph节点的系统信息,收集到的数据将传输到MongoDB
cephprobe:用来或者集群的相关信息和操作的
sysprobe:获取节点的磁盘分区等相关信息的
inkscopeMonitor:对接第三方监控框架
代码基于python语言,使用了wsgi、flask等技术框架

GitHub

Git主页:
https://github.com/inkscope/inkscope

inkscope-packaging:
https://github.com/inkscope/inkscope-packaging

支持功能

仪表盘:查看cluster、OSD、MON、MDS、PG的状态统计信息可以判断OSD是否正常运作,空间是否满
分模块管理OSD、Pool、PG、RBD、RadosGW、MDS
inkscope账户管理
Calamari
暂未研究

管理平台比较
技术上


Ceph开源管理监控平台分析_第3张图片

分析
VSM相对比InkScope的代码复杂
多封装一层restapi
依赖openstack的组件,例如keystone、openstack_auth

功能上


Ceph开源管理监控平台分析_第4张图片

分析
VSM有vsm-deploy工具来创建集群,而InkScope只有使用Ceph CLI来创建
InkScope相对比VSM支持的功能更多
VSM支持openstack,可以跟openstack很好地结合

你可能感兴趣的:(Ceph开源管理监控平台分析)