Ceph API微服務開發--RBD塊存儲創建與刪除

目標:完成Ceph塊存儲創建與刪除功能的開發

環境:CentOS7 / IntelliJ IDEA

步驟:librbd簡介->項目gradle改造->ceph塊存儲功能開發->運行測試

1.librbd簡介

librbd是Ceph的塊存儲庫,其利用Rados提供的API實現對卷的管理和操作。


2.項目gradle改造

原有項目爲maven項目,需要修改爲gradle項目。

(1)Linux下gradle配置

gradle下載:https://gradle.org/releases

解壓至/opt/gradle目錄

mkdir /opt/gradle

unzip -d /opt/gradle gradle-4.7-all.zip

配置環境變量:

vim /etc/profile

添加export GRADLE_HOME=/opt/gradle/gradle-4.7,並將變量加至PATH中


source /etc/profile 

gradle -v


(2)IDEA導入gradle項目

使用start.spring.io新建gradle項目,並導入IDEA


導入IDEA-目錄結構:


3.ceph塊存儲功能開發

ceph api service使用web方式訪問,且需要導入rados依賴,因此定義配置文件build.gradle:


其中rados與jna爲本地編譯生成的依賴包,需按本地路徑導入。

swagger爲RESTful API在線文檔,方便進行API測試。

RBD存儲功能開發代碼:

(1)主程序-CaasCephapiApplication.java

SpringBoot核心程序,內置tomcat容器服務


(2)控制器-CaasCephapiController.java

處理外部http請求,調用內部服務並返回處理結果:


其中@ApiOperation爲swagger映射,可通過界面調用測試api接口。

(3)ceph api接口服務-CaasCephapiService.java/CaasCephapiImageInfo.java

a.CaasCephapiService.java包括接口對象的創建、調用等功能

api接口對象創建:


連接ceph集羣:


列出當前塊存儲:


指定塊存儲詳細信息:


創建新的塊存儲:


刪除指定塊存儲:


b.CaasCephapiImageInfo.java以json格式返回塊存儲信息


(4)RestfulAPI在線文檔-Swagger.java

設置界面顯示信息,與調用的api路徑


4.運行測試

gradle build後進入build/libs目錄查找可執行jar包,然後java -jar xxx.jar運行。

訪問 http://IP:port/swagger-ui.html


API測試:

(1)連接ceph集羣


(2)列出當前塊存儲


(3)創建塊存儲

POST方法,填入參數,即塊存儲名稱與大小



(4)刪除塊存儲

填寫要刪除的image名稱



以上,塊存儲創建及刪除功能開發完成。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章