目標:完成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名稱
以上,塊存儲創建及刪除功能開發完成。