Ceph管理平台Calamari的架構與功能分析

2021-07-10 03:09:07 字數 2831 閱讀 7225

calamari專案開始於2023年夏天,創立它的初衷是開發乙個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(裡邊有很詳細的安裝步驟。我使用的是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實現的開源框架。

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-web包下面的檔案提供所有web相關的配置,calamari_rest和calamari_clients都要用到。

功能

calamari的最強的就是監控功能,在頁面上可以瀏覽整個ceph cluster的使用狀況,osd狀態,磁碟的iops,ceph server的系統資源使用情況等。

監控概要

osd狀態

calamari 提供的管理功能非常的有限,使用者只可以配置cluster的一些基本引數和新增修改pool

cluster 配置

新增修改pool

總結:

calamari為ceph的運維和管理提供了乙個統一的平台,而且使用者還可以基於這個平台擴充套件自己的儲存管理產品,但同時也存在著不足和需要改進的地方。

首先,calamari還不能完成ceph deploy所實現的部署功能,這是它最大乙個不足;fuel可以完成部署功能,並且可以選擇ceph server的資料盤和日誌盤以及定製預設的備份數等,所以calamari + fuel可以來實現乙個完成的基於ceph的部署和管理工具。

其次,calamari提供的管理功能太少,使用者無法只使用它來運維乙個ceph環境。

最後,使用者可以基於calamari開發自己的ceph管理軟體,ui部分可以修改calamari_clients的頁面,也可也單獨實現一套自己的ui基於calamari_rest和graphite_web,後端的功能的監控部分可以擴充套件diamond的collector實現,管理ceph的功能可以擴充套件rest api,cthulhu,salt等來實現。

管理ceph快取池

目錄配置快取池 刪除快取池 ceph的快取分層特性是在ceph的f版當中正式發布的。所謂的快取分層其實就是在更快的磁碟 通常是ssd 上建立乙個儲存池。然後將這個儲存池放置在常規的複製池或者糾刪碼池的前端充當快取。這樣所有的客戶端i o操作都首先由快取池處理,之後再將資料寫回到現有的資料儲存池中,使...

megacli 管理 ceph 儲存常用指令碼

只適用於可用使用 megacli 支援的 raid controller 只適用於手動進行 ceph 管理的集群,不支援 ceph deploy 建立的集群 需修改對應磁碟裝置命名 bin bash 使用說明 指令碼用於停止 osd,umount osd,標註對應 raid 裝置為離線狀態 stop...

Ceph 服務管理之服務狀態

要檢視 ceph 集群中執行的服務之一的狀態,請執行以下操作 使用命令列列印服務列表。找到您要檢查其狀態的服務。列印服務的狀態。以下命令列印編排器已知的服務列表。要將輸出限制為僅指定主機上的服務,請使用可選 host引數。要將輸出限制為僅特定型別的服務,請使用可選 type引數 mon osd mg...