ceph-rest-api 用例
时间:2022-04-25
本文章向大家介绍ceph-rest-api 用例,主要内容包括1.版本问题、2.服务启动、3.pool相关操作、4.用户管理相关操作、5.其他操作、6.其他接口、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
1.版本问题
0.67-10.x版本如果需要集成现有业务可以考虑这个内置的rest接口,从12.x开始这个接口将被内置的mgr模块替代,后期可能会被移除,所以高版本就不要用这个接口了。
2.服务启动
root@demohost:/home/user# ceph-rest-api -c /etc/ceph/ceph.conf -n client.admin --cluster ceph
* Running on http://0.0.0.0:5000/
3.pool相关操作
#获取rbd pool的属性
root@demohost:/usr/lib/python2.7/dist-packages# curl http://0.0.0.0:5000/api/v0.1/osd/pool/get?pool=rbd&var=size
size: 1
#获取支持的属性列表
root@demohost:/usr/lib/python2.7/dist-packages# curl http://0.0.0.0:5000/api/v0.1/osd/pool/get?pool=rbd&var
var not in size|min_size|crash_replay_interval|pg_num|pgp_num|crush_ruleset|hashpspool|nodelete|nopgchange|nosizechange|write_fadvise_dontneed|noscrub|nodeep-scrub|hit_set_type|hit_set_period|hit_set_count|hit_set_fpp|auid|target_max_objects|target_max_bytes|cache_target_dirty_ratio|cache_target_dirty_high_ratio|cache_target_full_ratio|cache_min_flush_age|cache_min_evict_age|erasure_code_profile|min_read_recency_for_promote|all|min_write_recency_for_promote|fast_read|hit_set_grade_decay_rate|hit_set_search_last_n|scrub_min_interval|scrub_max_interval|deep_scrub_interval|recovery_priority|recovery_op_priority|scrub_priority
#新建pool,名称为rbd1,pg和pgp的数量为10
curl http://0.0.0.0:5000/api/v0.1/osd/pool/create?pool=rbd1&pg_num=10&pgp_num=10 -X PUT -v
# 获取rule 列表
curl http://0.0.0.0:5000/api/v0.1/osd/crush/rule/list
# 获取rule详情
curl http://0.0.0.0:5000/api/v0.1/osd/crush/rule/dump
# 修改rbd1 pool的crush ruleset为1
curl http://0.0.0.0:5000/api/v0.1/osd/pool/set?pool=rbd1&var=crush_ruleset&val=1 -X PUT -v
4.用户管理相关操作
新建用户(keyring方式)
第一步,新建用户client.user1的keyring,内容如下
root@demohost:/usr/lib/python2.7/dist-packages# cat /tmp/user1.keyring
[client.user1]
key = AQCtsihaEUozABAAPPDTEhSNJMkj4HOp+nJeaQ==
caps mds = "allow"
caps mon = "allow *"
caps osd = "allow *"
第二步,通过rest-api导入用户
root@demohost:/usr/lib/python2.7/dist-packages# curl http://0.0.0.0:5000/api/v0.1/auth/import -X PUT -T /tmp/user1.keyring
第三步,查看用户信息
root@demohost:/usr/lib/python2.7/dist-packages# curl http://0.0.0.0:5000/api/v0.1/auth/get?entity=client.user1
[client.user1]
key = AQCtsihaEUozABAAPPDTEhSNJMkj4HOp+nJeaQ==
caps mds = "allow"
caps mon = "allow *"
caps osd = "allow *
查看用户列表
root@demohost:/usr/lib/python2.7/dist-packages# curl http://0.0.0.0:5000/api/v0.1/auth/list
osd.0
key: AQDJ0adZpVCPIhAA8z/qYSPEX6Hn699piAS3bQ==
caps: [mon] allow rwx
caps: [osd] allow *
osd.1
key: AQDK0adZNNGUMhAA06qcr+Dq59JmIZs1po/3uA==
caps: [mon] allow rwx
caps: [osd] allow *
osd.2
key: AQDM0adZgcG6BhAA1s4yaZf323uGpuMazV3JXQ==
caps: [mon] allow rwx
caps: [osd] allow *
client.user1
key: AQCtsihaEUozABAAPPDTEhSNJMkj4HOp+nJeaQ==
caps: [mds] allow
caps: [mon] allow *
caps: [osd] allow *
5.其他操作
查看集群状态
root@demohost:/usr/lib/python2.7/dist-packages# curl http://0.0.0.0:5000/api/v0.1/health?detail=detail
HEALTH_OK
查看集群fsid
root@demohost:/usr/lib/python2.7/dist-packages# curl http://0.0.0.0:5000/api/v0.1/fsid
f8c4249f-2b96-43ca-8587-2f4127a252bf
6.其他接口
具体可以参考下面的地址
https://dmsimard.com/2014/01/01/documentation-for-ceph-rest-api/
- Centos 下非 Root 安装 Microsoft R Open
- 下载TCGA所有癌症的maf文件做signature分析
- 比对NR库看看物种分布【直播】我的基因组88
- 探究某个基因的外显子覆盖度情况【直播】我的基因组87
- PHP底层的运行机制与原理
- CHROME开发者工具的小技巧
- 48条高效率的PHP优化写法
- 生信蓝领,一个不舍得分享的高通量数据分析框架
- 为什么in_array(0, ['a', 'b', 'c'])返回true
- Java 10 新特性解密,引入类型推断机制,将于 2018 年 3 月 20 日发布
- 肿瘤全外显子测序数据分析流程大放送
- 数据预处理 | 机器学习之特征工程
- 书写高质量jQuery代码的6条经验
- Thread ThreadLocal,傻傻分不清
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 一文快速上手Rollup,JavaScript类库打包好帮手
- Day67:剪绳子
- Typecho实现微信发消息:Type时光机
- 插入排序
- Typecho1.1仿简书主题小屏幕菜单栏展开优化
- Typecho1.1仿简书主题大小屏适配
- Typecho1.1文章内链接用新窗口打开的办法
- 搭建一个低配版的Mock Server
- Nginx解决跨域资源问题:No 'Access-Control-Allow-Origin' header is present on the requested resource.
- Typecho 仿简书主题 时间轴归档页实现
- Typecho如何添加“编辑”当前文章按钮
- Flutter入门第二讲:项目运行,Hello world
- Flutter入门第一讲:环境搭建(mac os为例)
- 第12天:NLP补充——HMM(隐马尔科夫模型)
- android View事件分发实测