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名称



以上,块存储创建及删除功能开发完成。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值