Ceph管理平臺(tái)Calamari的架構(gòu)與功能分析

責(zé)任編輯:editor007

作者:李劍

2015-01-12 20:00:34

摘自:openstack中文社區(qū)

alamari項(xiàng)目開始于2013年夏天,創(chuàng)立它的初衷是開發(fā)一個(gè)Ceph管理平臺(tái), Calamari對(duì)外提供了十分漂亮的web管理和監(jiān)控界面,以及一套改進(jìn)的REST API接口(不同于Ceph自身的REST API)

alamari項(xiàng)目開始于2013年夏天,創(chuàng)立它的初衷是開發(fā)一個(gè)Ceph管理平臺(tái), Calamari對(duì)外提供了十分漂亮的web管理和監(jiān)控界面,以及一套改進(jìn)的REST API接口(不同于Ceph自身的REST API),在一定程度上簡(jiǎn)化了Ceph的管理。最初Calamari是作為Inktank公司的Ceph企業(yè)級(jí)商業(yè)產(chǎn)品來銷售,紅帽今年5月30日收購Inktank后為了更好地推動(dòng)Ceph的發(fā)展,對(duì)外宣布Calamari開源,秉承開源開放精神的紅帽著實(shí)又做了一件非常有意義的事情。本文將簡(jiǎn)單剖析Calamari的架構(gòu)和功能。

安裝

Calamari推薦使用vagrant + virtualbox的方式來build安裝包,然后在對(duì)應(yīng)的操作系統(tǒng)中進(jìn)行安裝,具體的安裝過程請(qǐng)參照Ceph Calamari : step-by-step(http://ceph.com/category/ceph-gui/)里邊有很詳細(xì)的安裝步驟。我使用的是Ubuntu13.10來創(chuàng)建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內(nèi)容一樣,只是它解壓后可以在任何平臺(tái)上使用)calamari-repo-precise.tar.gz(安裝源,安裝calamari過程中依賴的包)calamari-server_1.2.1-56-gc09e8ed_amd64.deb(calamari服務(wù)端,它提供了calamari REST API,calamari 通過salt管理Ceph服務(wù)的cthulhu,以及一個(gè)calamari web的一個(gè)基本框架)diamond_3.4.67_all.deb(calamari監(jiān)控客戶端)

架構(gòu)

下面Calamari的架構(gòu)圖能幫助更好的理解它的組件,其中紅框部分為Calamari代碼實(shí)現(xiàn)的部分,非紅框部分為非Calamari實(shí)現(xiàn)的開源框架。

在Ceph server node安裝的組件有Diamond和Salt-minion。Diamond負(fù)責(zé)收集監(jiān)控?cái)?shù)據(jù),它支持非常多的數(shù)據(jù)類型和metrics,通過查看源代碼,它支持90多種類型的數(shù)據(jù);每一個(gè)類型的數(shù)據(jù)都是上圖中的一個(gè)collector,它除了收集Ceph本身的狀態(tài)信息,它還可以收集關(guān)鍵的資源使用情況和性能數(shù)據(jù),包括CPU,內(nèi)存,網(wǎng)絡(luò),I / O負(fù)載和磁盤指標(biāo),而且還能收集很多流行軟件的性能指標(biāo),包括 Hadoop, Mongo, Kafka, MySQL, NetApp, RabbitMQ, Redis, and AWS S3等。Collector都是使用本地的命令行來收集數(shù)據(jù),然后報(bào)告給Graphite。

Graphite不僅是一個(gè)企業(yè)級(jí)的監(jiān)控工具, 還可以實(shí)時(shí)繪圖。carbon-cache是Python實(shí)現(xiàn)的高度可擴(kuò)展的事件驅(qū)動(dòng)的I/O架構(gòu)的后端進(jìn)程,它可以有效地跟大量的客戶端通信并且以較低的開銷處理大量的業(yè)務(wù)量。

Whisper跟RRDtool類似,提供數(shù)據(jù)庫開發(fā)庫給應(yīng)用程序來操縱和檢索存儲(chǔ)在特殊格式的文件數(shù)據(jù)(時(shí)間數(shù)據(jù)點(diǎn)數(shù)據(jù)),Whisper最基本的操作是創(chuàng)建作出新的Whisper文件,更新寫入新的數(shù)據(jù)點(diǎn)到一個(gè)文件中,并獲取檢索的數(shù)據(jù)點(diǎn)

Graphite_web是用戶接口,用來生成圖片,用戶可以直接通過URL的方式訪問這些生成的圖片。

Calamari 使用了Saltstack讓Calamari Server和Ceph server node通信。Saltstack是一個(gè)開源的自動(dòng)化運(yùn)維管理工具,與Chef和Puppet功能類似。Salt-master發(fā)送指令給指定的Salt-minion來完成對(duì)Cpeh Cluster的管理工作;Salt-minion 在Ceph server node安裝后都會(huì)從master同步并安裝一個(gè)ceph.py文件,里面包含Ceph操作的API,它會(huì)調(diào)用librados或命令行來最終和Ceph Cluster通信。

calamari_rest提供Calamari REST API,詳細(xì)的接口請(qǐng)大家參照官方文檔。Ceph的REST API是一種低層次的接口,其中每個(gè)URL直接映射到等效的CEPH CLI;Calamari REST API提供了一個(gè)更高層次的接口,API的使用者可以習(xí)慣的使用GET/POST/PATCH方法來操作對(duì)象,而無需知道底層的Ceph的命令;它們之間的主要區(qū)別在于,Ceph的REST API的使用者需要非常了解Ceph本身,而Calamari 的REST API更貼近對(duì)Ceph資源的描述,所以更加適合給上層的應(yīng)用程序調(diào)用。
cthulhu可以理解是Calamari Server的Service層,對(duì)上為API提供接口,對(duì)下調(diào)用Salt-master。但是代碼美中不足的是calamari_rest有些功能直接調(diào)用了Salt-master而沒有調(diào)用cthulhu。
calamari_clients是一套用戶界面,Calamari Server在安裝的過程中會(huì)首先創(chuàng)建opt/calamari/webapp目錄,并且把webapp/calamari下的manager.py(django 配置)文件考進(jìn)去, calamari_web的所有內(nèi)容到要放到opt/calamari/webapp下面來提供UI的訪問頁面。
calamari-web包下面的文件提供所有web相關(guān)的配置,calamari_rest和calamari_clients都要用到。

功能

Calamari的最強(qiáng)的就是監(jiān)控功能,在頁面上可以瀏覽整個(gè)Ceph Cluster的使用狀況,OSD狀態(tài),磁盤的IOPS,Ceph Server的系統(tǒng)資源使用情況等。

 

監(jiān)控概要

 

 

OSD狀態(tài)

 

Calamari 提供的管理功能非常的有限,用戶只可以配置cluster的一些基本參數(shù)和添加修改pool

 

Cluster 配置

 

 

添加修改pool

 

總結(jié):

Calamari為Ceph的運(yùn)維和管理提供了一個(gè)統(tǒng)一的平臺(tái),而且用戶還可以基于這個(gè)平臺(tái)擴(kuò)展自己的存儲(chǔ)管理產(chǎn)品,但同時(shí)也存在著不足和需要改進(jìn)的地方。

首先,Calamari還不能完成Ceph deploy所實(shí)現(xiàn)的部署功能,這是它最大一個(gè)不足;Fuel可以完成部署功能,并且可以選擇Ceph server的數(shù)據(jù)盤和日志盤以及定制默認(rèn)的備份數(shù)等,所以Calamari + Fuel可以來實(shí)現(xiàn)一個(gè)完成的基于Ceph的部署和管理工具。其次,Calamari提供的管理功能太少,用戶無法只使用它來運(yùn)維一個(gè)Ceph環(huán)境。最后,用戶可以基于Calamari開發(fā)自己的Ceph管理軟件,UI部分可以修改calamari_clients的頁面,也可也單獨(dú)實(shí)現(xiàn)一套自己的UI基于calamari_rest和Graphite_web,后端的功能的監(jiān)控部分可以擴(kuò)展diamond的collector實(shí)現(xiàn),管理Ceph的功能可以擴(kuò)展rest api,cthulhu,salt等來實(shí)現(xiàn)。

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

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)