ceph-rest-api 的文档

dmsimard

我了解到 Ceph 有一个 REST API,并且我 尝试 使用它。

我说文档不足,现在我收回这句话,我没有注意到 API 文档已经内置在应用程序中。我提交了一个拉取请求,让文档对此更明确一些:https://github.com/ceph/ceph/pull/1026

这是目前 API 文档的样子

可能的命令方法描述
auth/add?entity=entity()&caps={c
aps() [...]}PUT添加 auth 信息,用于从输入文件或随机密钥(如果未提供输入)以及命令中指定的任何权限
auth/caps?entity=entity()&caps=c
aps() [...]PUT更新权限,用于从命令中指定的权限
auth/del?entity=entity()PUT删除所有权限,用于
auth/export?entity={entity()}GET为请求的实体写入密钥环,如果未给定实体则写入主密钥环
auth/get?entity=entity()GET写入包含请求密钥的密钥环文件
auth/get-key?entity=entity()GET显示请求的密钥
auth/get-or-create?entity=entity(<string
>)&caps={caps() [...]}PUT添加 auth 信息,用于从输入文件或随机密钥(如果未提供输入)以及命令中指定的任何权限
auth/get-or-create-key?entity=entity(<st
ring>)&caps={caps()
[...]}PUT获取或添加密钥,用于从命令中指定的系统/权限对。如果密钥已存在,则任何给定的权限必须与该密钥的现有权限匹配。
auth/importPUTauth 导入:从 -i 读取密钥环文件
auth/listGET列出认证状态
auth/print-key?entity=entity()GET显示请求的密钥
auth/print_key?entity=entity()GET显示请求的密钥
tell//bench?count={count(
)}&size={size()}PUTOSD 基准测试:写入字节对象(默认 1G 大小 4MB)。结果在日志中。
compactPUT导致监视器的 leveldb 存储进行压缩
config-key/del?key=key()PUT删除
config-key/exists?key=key()GET检查是否存在
config-key/get?key=key()GET获取
config-key/listGET列出密钥
config-key/put?key=key()&val={va
l()}PUT放入,值
tell/<osdid-or-
pgid>/cpu_profiler?arg=arg(statusflush)PUT
tell//debug/kick_recovery
_wq?delay=delay(<int[0-]>)PUT将 osd_recovery_delay_start 设置为
tell//debug_dump_missing?
filename=filename()GET将缺失对象转储到指定文件
df?detail={detail}GET显示集群可用空间统计信息
tell/<osdid-or-
pgid>/dump_pg_recovery_statsGET转储 pg 恢复统计信息
tell//flush_pg_statsPUT刷新 pg 统计信息
fsidGET显示集群 FSID/UUID
health?detail={detail}GET显示集群健康状况
tell//heap?heapcmd=heapcm
d(dumpstart_profilerstop_profiler
asestats)PUT
heap?heapcmd=heapcmd(dumpstart_profiler
stop_profiler发布stats)
tell//injectargs?injected
_args=injected_args()
[...]PUT将配置参数注入正在运行的 OSD
injectargs?injected_args=injected_args(<
string>) [...]PUT将配置参数注入监视器
tell//list_missing?offset
={offset()}GET列出此 pg 上缺失的对象,可能从 JSON 中给定的偏移量开始
tell//list_missing?offset
={offset()}PUT列出此 pg 上缺失的对象,可能从 JSON 中给定的偏移量开始
log?logtext=logtext()
[...]PUT将提供的文本记录到监视器日志中
tell/<osdid-or-
pgid>/mark_unfound_lost?mulcmd=revertPUT将此 pg 中所有未找到的对象标记为丢失,如果存在先前版本则删除或还原到该版本
tell//mark_unfound_lost/r
evert?mulcmd=revertPUT将此 pg 中所有未找到的对象标记为丢失,如果存在先前版本则删除或还原到该版本
mds/add_data_pool?pool=pool()PUT添加数据池
mds/cluster_downPUT关闭 MDS 集群
mds/cluster_upPUT启动 MDS 集群
mds/compat/rm_compat?feature=feature(<in
t[0-]>)PUT删除兼容功能
mds/compat/rm_incompat?feature=feature(<
int[0-]>)PUT删除不兼容功能
mds/compat/showGET显示 mds 兼容性设置
mds/deactivate?who=who()PUT停止 mds
mds/dump?epoch={epoch(<int[0-]>)}GET转储信息,可选地从 epoch
mds/fail?who=who()PUT强制 mds 进入失败状态
mds/getmap?epoch={epoch(<int[0-]>)}GET获取 MDS 映射,可选地从 epoch
mds/newfs?metadata=metadata(<int[0-]>)&d
ata=data(<int[0-]>)&sure={--yes-i
-really-mean-it}PUT使用池创建新文件系统
mds/remove_data_pool?pool=pool()PUT移除数据池
mds/rm?gid=gid(<int[0-]>)&who=who(<name
(type.id)>)PUT移除非活跃 mds
mds/rmfailed?who=who(<int[0-]>)PUT移除失败的 mds
mds/set?key=allow_new_snaps&sure={sure(<
string>)}未知设置
mds/set_max_mds?maxmds=maxmds(<int[0-]>)PUT设置最大 MDS 索引
mds/set_state?gid=gid(<int[0-]>)&state=s
tate(<int[0-20]>)PUT设置 mds 状态,用于改为
mds/setmap?epoch=epoch(<int[0-]>)PUT设置 mds 映射;必须提供正确的 epoch 号
mds/statGET显示 MDS 状态
mds/stop?who=who()PUT停止 mds
mds/tell?who=who()&args=args(<st
ring>) [...]PUT向特定的 mds 发送命令
mds/unset?key=allow_new_snaps&sure={sure
()}未知取消设置
mon/add?name=name()&addr=addr(<I
Paddr[:port]>)PUT添加名为的监视器,地址为
mon/dump?epoch={epoch(<int[0-]>)}GET转储格式化的 monmap(可选地从 epoch)
mon/getmap?epoch={epoch(<int[0-]>)}GET获取 monmap
mon/remove?name=name()PUT移除名为
的监视器GETmon/stat
总结监视器状态GETmon_status
报告监视器仲裁状态
dosd/blacklist?blacklistop=blacklistop(adrm)&addr=addr(
)&expire={exPUTpire(<float[0.0-]>)}添加(可选地直到秒后)或移除
从黑名单中GETosd/blacklist/ls
显示黑名单客户端)}PUTosd/create?uuid={uuid(
创建新 osd(带可选 UUID)osd/crush/add?id=id(<osdname (id)
osd.id
>)&weight=weight(<float[0.0-]>)&args=arg
s(<string(goodchars [A-Za-z0-9-_.=])>)PUT[<string(goodchars [A-Za-z0-9-_.=])>...]添加或更新 crushmap 位置和权重,用于,带
和位置
osd/crush/add-
bucket?name=name(<string(goodchars)PUT[A-Za-z0-9-_.])>)&type=type(添加无父(可能为根)crush 桶
类型为
osd/crush/create-or-move?id=id(<osdname(id
osd.id)>)&weight=weight(<float[0.0-]
>)&args=args(<string(goodchars
[A-Za-z0-9-_.=])>) [<string(goodcharsPUT[A-Za-z0-9-_.=])>...]
在/到位置创建或移动现有条目GETosd/crush/dump
转储 crush 映射osd/crush/link?name=name(
)&args=
>)&args=args(<string(goodchars
[A-Za-z0-9-_.=])>) [<string(goodcharsPUTargs(<string(goodchars链接现有条目,用于
在位置下
osd/crush/move?name=name(<string(goodcha
rs [A-Za-z0-9-_.])>)&args=args(<string(g
s(<string(goodchars [A-Za-z0-9-_.=])>)PUToodchars [A-Za-z0-9-_.=])>)移动现有条目,用于
到位置
osd/crush/remove?name=name(<string(goodc
hars [A-Za-z0-9-_.])>)&ancestor={ancestoPUTr(<string(goodchars [A-Za-z0-9-_.])>)}从 crush 映射中移除
(所有地方,或仅在
osd/crush/reweight?name=name(<string(goo
dchars [A-Za-z0-9-_.])>)&weight=weight(<PUTfloat[0.0-]>)在 crush 映射中将的权重更改为
osd/crush/rm?name=name(<string(goodchars
[A-Za-z0-9-_.])>)&ancestor={ancestor(<st
ring(goodchars [A-Za-z0-9-_.])>)}PUTr(<string(goodchars [A-Za-z0-9-_.])>)}从 crush 映射中移除
osd/crush/rule/create-
simple?name=name(<string(goodchars [A-Za
-z0-9-_.])>)&root=root(<string(goodchars
[A-Za-z0-9-_.])>)&type=type(<string(good
chars [A-Za-z0-9-_.])>)PUT中创建 crush 规则添加无父(可能为根)crush 桶
osd/crush/rule/dumpGET转储 crush 规则
osd/crush/rule/listGET列出 crush 规则
osd/crush/rule/lsGET列出 crush 规则
osd/crush/rule/rm?name=name(<string(good
chars [A-Za-z0-9-_.])>)PUT移除 crush 规则
osd/crush/setPUT从输入文件设置 crush 映射
osd/crush/set?id=id(<osdname (idosd/crush/add?id=id(<osdname (id)
osd.id
>)&weight=weight(<float[0.0-]>)&args=arg
s(<string(goodchars [A-Za-z0-9-_.=])>)PUT更新 crushmap 位置和权重,用于改为,带位置
osd/crush/tunables?profile=profile(legac
yargonautbobtail
osd/crush/unlink?name=name(<string(goodc
osd/crush/remove?name=name(<string(goodc
hars [A-Za-z0-9-_.])>)&ancestor={ancestoPUT取消链接从 crush 映射中移除
osd/deep-scrub?who=who()PUT在 osd 上启动深度清理
osd/down?ids=ids() [...]PUT设置 osd(s)[...] 下线
osd/dump?epoch={epoch(<int[0-]>)}GET打印 OSD 映射摘要
osd/find?id=id(<int[0-]>)GET在 CRUSH 映射中查找 osd并显示其位置
osd/getcrushmap?epoch={epoch(<int[0-]>)}GET获取 CRUSH 映射
osd/getmap?epoch={epoch(<int[0-]>)}GET获取 OSD 映射
osd/getmaxosdGET显示最大 OSD id
osd/in?ids=ids() [...]PUT设置 osd(s)[...] 上线
osd/lost?id=id(<int[0-]>)&sure={--yes-i
-really-mean-it}PUT将 osd 标记为永久丢失。如果没有更多副本,这将销毁数据,请小心
osd/ls?epoch={epoch(<int[0-]>)}GET显示所有 OSD id
osd/lspools?auid={auid()}GET列出池
osd/map?pool=pool()&object=obj
ect()GETin
查找 pg) [...]PUT设置 osd(s)[osd/out?ids=ids(
...] 下线PUTosd/pause
暂停 osdGETosd/perf
打印 OSD 性能摘要统计信息osd/pool/create?pool=pool(
)&pg
_num=pg_num(<int[0-]>)&pgp_num={pgp_num(
<int[0-]>)}&properties={properties(<stri
ng(goodchars [A-Za-z0-9-_.=])>)
[<string(goodcharsPUT[A-Za-z0-9-_.=])>...]}
创建池osd/pool/delete?pool=pool(
)&pool2={pool2(
)}&sure={--yes-iPUT-really-really-mean-it}
删除池osd/pool/get?pool=pool(
)&var=var(sizemin_size
crash_replay_intervalg_numpgp_num
crush_ruleset)osd/pool/mksnap?pool=pool(
)&sn)PUTap=snap(中创建 crush 规则
创建快照
osd/pool/rename?srcpool=srcpool(<poolnam)PUTe>)&destpool=destpool(改为
重命名osd/pool/mksnap?pool=pool(
)&sn)PUTosd/pool/rmsnap?pool=pool(
移除快照osd/pool/get?pool=pool(
)&var=var(sizemin_size
crash_replay_intervalg_numosd/pool/set?pool=pool(
crush_ruleset)PUTval=val(
设置池参数 )
osd/pool/set-quota?pool=pool(&field=field(max_objects
max_bytes)&val=)PUTval(
设置池的对象或字节限制)}GETosd/pool/stats?name={name(
获取所有池或指定池的统计信息)PUTosd/repair?who=who(
在 osd 上启动修复
osd/reweight?id=id(<int[0-]>)&weight=weiPUTght(<float[0.0-1.0]>)< 1.0
重新加权 osd 到 0.0 <
osd/reweight-by-PUTutilization?oload={oload(<int[100-]>)}
根据利用率重新加权 OSDs [考虑的过载百分比,默认为 120]) [...]PUTosd/rm?ids=ids([...] 上线
移除 osd(s))PUTosd/scrub?who=who(
在 osd 上启动清理osd/set?key=key(pausenoup
nodownnoinnobackfill
norecoverPUT设置
nodeep-scrub)PUT从输入文件设置 crush 映射
osd/setcrushmapPUTosd/setmaxosd?newmax=newmax(<int[0-]>)
设置新的最大 osd 值GET打印 OSD 映射摘要
osd/stat
]>)PUTosd/thrash?num_epochs=num_epochs(<int[0-
对 OSDs 进行混乱操作,持续 <num_epochs>osd/tier/add?pool=pool(
)&tierp)PUTool=tierpool(将层级
添加到基本池
osd/tier/cache-mode?pool=pool(写回)&mode=mode(none
invalidate+forwardPUT
readonly)osd/tier/remove?pool=pool(
)&ti)PUTerpool=tierpool(从基本池中移除层级
osd/tier/remove-
overlay?pool=pool()PUT移除基本池的覆盖池
osd/tier/set-overlay?pool=pool(<poolname
>)&overlaypool=overlaypool()PUT设置基本池的覆盖池
osd/tree?epoch={epoch(<int[0-]>)}GET打印 OSD 树
osd/unpausePUT取消暂停 osd
osd/unset?key=key(pauseosd/set?key=key(pausenoup
tnodownnoin
norecoverPUT取消设置
pg/debug?debugop=debugop(unfound_objects
_existdegraded_pgs_exist)GET
pg/deep-scrub?pgid=pgid()PUT启动深度清理,用于
pg/dump?dumpcontents={dumpcontents(alls
ummarysumdelta
f) [allsummarysum
pgs_brief...]}GET显示 pg 映射的人类可读版本(只有 'all' 对 plain 有效)
pg/dump_json?dumpcontents={dumpcontents(
allsummarysum
[allsummarysum
pg/dump_pools_jsonGET仅以 json 格式显示 pg 池信息
pg/dump_stuck?stuckops={stuckops(inactiv
euncleanstale) [inactive
...]}&threshold={threshold()}GET显示有关卡住的 pg 的信息
pg/force_create_pg?pgid=pgid()PUT强制创建 pg
pg/getmapGET获取二进制 pg 映射到 -o/stdout
pg/map?pgid=pgid()GET显示 pg 到 osds 的映射
pg/repair?pgid=pgid()PUT启动修复,用于
pg/scrub?pgid=pgid()PUT启动清理,用于
pg/send_pg_createsPUT触发 pg 创建
pg/set_full_ratio?ratio=ratio(<float[0.0
-1.0]>)PUT设置 pg 被视为已满的比例
pg/set_nearfull_ratio?ratio=ratio(<float
[0.0-1.0]>)PUT设置 pg 被视为接近已满的比例
pg/statGET显示放置组状态。
tell//queryGET显示特定 pg 的详细信息
tell//queryGET显示特定 pg 的详细信息
quorum?quorumcmd=quorumcmd(enterexit)PUT
quorum_statusGET报告监视器仲裁状态
report?tags={tags()
[...]}GET报告集群的完整状态,可选标题标签字符串
tell/<osdid-or-
pgid>/reset_pg_recovery_statsPUT重置 pg 恢复统计信息
scrubPUT清理监视器存储
statusGET显示集群状态
sync/force?validate1={--yes-i-really-
mean-it}&validate2={--i-know-what-i-am-
doing}PUT强制同步并清除监视器存储
tell?target=target(<name
(type.id)>)&args=args()
[...]PUT向特定守护进程发送命令
tell//versionGET报告 OSD 版本

享受!