1.4. 问题和答案
1.4.1. 获取信息
本节介绍如何使用 Ceph API 查看有关存储集群、Ceph 监控器、OSD、池和主机的信息。
1.4.1.1. 如何查看所有集群配置选项?
本节论述了如何使用 RESTful 插件查看集群配置选项及其值。
curl
命令
在命令行中使用:
curl --silent --user USER 'https://CEPH_MANAGER:CEPH_MANAGER_PORT/api/cluster_conf'
替换:
-
使用用户名替代
USER
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
CEPH_MANAGER_PORT
和 TCP 端口号。默认 TCP 端口号为 8443。
提示时输入用户密码。
如果您使用自签名证书,请使用 --insecure
选项:
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/cluster_conf'
Python
在 Python 解释器中,输入:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/cluster_conf', auth=("USER", "PASSWORD")) >> print result.json()
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用用户名替代
USER
-
使用用户的密码替换
PASSWORD
如果您使用自签名证书,请使用 verify=False
选项:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/cluster_conf', auth=("USER", "PASSWORD"), verify=False) >> print result.json()
Web 浏览器
在 Web 浏览器中,输入:
https://CEPH_MANAGER:8080/api/cluster_conf
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
提示时输入用户名和密码。
其它资源
- Red Hat Ceph Storage 7 的 配置指南
1.4.1.2. 如何查看 Particular 集群配置选项?
本节论述了如何查看特定集群选项及其值。
curl
命令
在命令行中使用:
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/cluster_conf/ARGUMENT'
替换:
-
使用用户名替代
USER
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用您要查看的配置选项替换
ARGUMENT
提示时输入用户密码。
如果您使用自签名证书,请使用 --insecure
选项:
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/cluster_conf/ARGUMENT'
Python
在 Python 解释器中,输入:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/cluster_conf/ARGUMENT', auth=("USER", "PASSWORD")) >> print result.json()
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用您要查看的配置选项替换
ARGUMENT
-
使用用户名替代
USER
-
使用用户的密码替换
PASSWORD
如果您使用自签名证书,请使用 verify=False
选项:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/cluster_conf/ARGUMENT', auth=("USER", "PASSWORD"), verify=False) >> print result.json()
Web 浏览器
在 Web 浏览器中,输入:
https://CEPH_MANAGER:8080/api/cluster_conf/ARGUMENT
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用您要查看的配置选项替换
ARGUMENT
提示时输入用户名和密码。
其它资源
- Red Hat Ceph Storage 7 的 配置指南
1.4.1.3. 如何查看 OSD 的所有配置选项?
本节论述了如何查看 OSD 的所有配置选项及其值。
curl
命令
在命令行中使用:
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/flags'
替换:
-
使用用户名替代
USER
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
提示时输入用户密码。
如果您使用自签名证书,请使用 --insecure
选项:
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/flags'
Python
在 Python 解释器中,输入:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/osd/flags', auth=("USER", "PASSWORD")) >> print result.json()
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用用户名替代
USER
-
使用用户的密码替换
PASSWORD
如果您使用自签名证书,请使用 verify=False
选项:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/osd/flags', auth=("USER", "PASSWORD"), verify=False) >> print result.json()
Web 浏览器
在 Web 浏览器中,输入:
https://CEPH_MANAGER:8080/api/osd/flags
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
提示时输入用户名和密码。
其它资源
- Red Hat Ceph Storage 7 的 配置指南
1.4.1.4. 如何查看 CRUSH 规则?
本节论述了如何查看 CRUSH 规则。
curl
命令
在命令行中使用:
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/crush_rule'
替换:
-
使用用户名替代
USER
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
提示时输入用户密码。
如果您使用自签名证书,请使用 --insecure
选项:
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/crush_rule'
Python
在 Python 解释器中,输入:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/crush_rule', auth=("USER", "PASSWORD")) >> print result.json()
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用用户名替代
USER
-
使用用户的密码替换
PASSWORD
如果您使用自签名证书,请使用 verify=False
选项:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/crush_rule', auth=("USER", "PASSWORD"), verify=False) >> print result.json()
Web 浏览器
在 Web 浏览器中,输入:
https://CEPH_MANAGER:8080/api/crush_rule
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
提示时输入用户名和密码。
其它资源
- Red Hat Ceph Storage 7 管理指南中的 CRUSH Rules 部分。
1.4.1.5. 如何查看有关 monitor 的信息?
本节论述了如何查看特定 monitor 的信息,例如:
- IP 地址
- 名称
- 仲裁状态
curl
命令
在命令行中使用:
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/monitor'
替换:
-
使用用户名替代
USER
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
提示时输入用户密码。
如果您使用自签名证书,请使用 --insecure
选项:
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/monitor'
Python
在 Python 解释器中,输入:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/monitor', auth=("USER", "PASSWORD")) >> print result.json()
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用用户名替代
USER
-
使用用户的密码替换
PASSWORD
如果您使用自签名证书,请使用 verify=False
选项:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/monitor', auth=("USER", "PASSWORD"), verify=False) >> print result.json()
Web 浏览器
在 Web 浏览器中,输入:
https://CEPH_MANAGER:8080/api/monitor
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
提示时输入用户名和密码。
1.4.1.6. 如何查看关于 Particular monitor 的信息?
本节论述了如何查看特定 monitor 的信息,例如:
- IP 地址
- 名称
- 仲裁状态
curl
命令
在命令行中使用:
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/monitor/NAME'
替换:
-
使用用户名替代
USER
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用 monitor 短主机名替换
NAME
提示时输入用户密码。
如果您使用自签名证书,请使用 --insecure
选项:
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/monitor/NAME'
Python
在 Python 解释器中,输入:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/monitor/NAME', auth=("USER", "PASSWORD")) >> print result.json()
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用 monitor 短主机名替换
NAME
-
使用用户名替代
USER
-
使用用户的密码替换
PASSWORD
如果您使用自签名证书,请使用 verify=False
选项:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/monitor/NAME', auth=("USER", "PASSWORD"), verify=False) >> print result.json()
Web 浏览器
在 Web 浏览器中,输入:
https://CEPH_MANAGER:8080/api/monitor/NAME
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用 monitor 短主机名替换
NAME
提示时输入用户名和密码。
1.4.1.7. 如何查看 OSD 的信息?
本节论述了如何查看 OSD 的信息,例如:
- IP 地址
- 其池
- 关联性
- Weight
curl
命令
在命令行中使用:
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/osd'
替换:
-
使用用户名替代
USER
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
提示时输入用户密码。
如果您使用自签名证书,请使用 --insecure
选项:
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd'
Python
在 Python 解释器中,输入:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/osd/', auth=("USER", "PASSWORD")) >> print result.json()
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用用户名替代
USER
-
使用用户的密码替换
PASSWORD
如果您使用自签名证书,请使用 verify=False
选项:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/osd/', auth=("USER", "PASSWORD"), verify=False) >> print result.json()
Web 浏览器
在 Web 浏览器中,输入:
https://CEPH_MANAGER:8080/api/osd
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
提示时输入用户名和密码。
1.4.1.8. 如何查看 Particular OSD 的信息?
本节论述了如何查看特定 OSD 的信息,例如:
- IP 地址
- 其池
- 关联性
- Weight
curl
命令
在命令行中使用:
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/ID'
替换:
-
使用用户名替代
USER
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用
osd
字段中列出的 OSD 的 ID 替换ID
提示时输入用户密码。
如果您使用自签名证书,请使用 --insecure
选项:
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/ID'
Python
在 Python 解释器中,输入:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/osd/ID', auth=("USER", "PASSWORD")) >> print result.json()
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用
osd
字段中列出的 OSD 的 ID 替换ID
-
使用用户名替代
USER
-
使用用户的密码替换
PASSWORD
如果您使用自签名证书,请使用 verify=False
选项:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/osd/ID', auth=("USER", "PASSWORD"), verify=False) >> print result.json()
Web 浏览器
在 Web 浏览器中,输入:
https://CEPH_MANAGER:8080/api/osd/ID
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用
osd
字段中列出的 OSD 的 ID 替换ID
提示时输入用户名和密码。
1.4.1.9. 如何确定 OSD 上可以调度哪些进程?
本节介绍如何使用 RESTful 插件查看清理或深度清理等进程,可以调度到 OSD 上。
curl
命令
在命令行中使用:
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/ID/command'
替换:
-
使用用户名替代
USER
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用
osd
字段中列出的 OSD 的 ID 替换ID
提示时输入用户密码。
如果您使用自签名证书,请使用 --insecure
选项:
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/ID/command'
Python
在 Python 解释器中,输入:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/osd/ID/command', auth=("USER", "PASSWORD")) >> print result.json()
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用
osd
字段中列出的 OSD 的 ID 替换ID
-
使用用户名替代
USER
-
使用用户的密码替换
PASSWORD
如果您使用自签名证书,请使用 verify=False
选项:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/osd/ID/command', auth=("USER", "PASSWORD"), verify=False) >> print result.json()
Web 浏览器
在 Web 浏览器中,输入:
https://CEPH_MANAGER:8080/api/osd/ID/command
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用
osd
字段中列出的 OSD 的 ID 替换ID
提示时输入用户名和密码。
1.4.1.10. 如何查看关于池的信息?
本节论述了如何查看池的信息,例如:
- 标记
- 大小
- 放置组数量
curl
命令
在命令行中使用:
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/pool'
替换:
-
使用用户名替代
USER
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
提示时输入用户密码。
如果您使用自签名证书,请使用 --insecure
选项:
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/pool'
Python
在 Python 解释器中,输入:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/pool', auth=("USER", "PASSWORD")) >> print result.json()
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用用户名替代
USER
-
使用用户的密码替换
PASSWORD
如果您使用自签名证书,请使用 verify=False
选项:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/pool', auth=("USER", "PASSWORD"), verify=False) >> print result.json()
Web 浏览器
在 Web 浏览器中,输入:
https://CEPH_MANAGER:8080/api/pool
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
提示时输入用户名和密码。
1.4.1.11. 如何查看关于 Particular 池的信息?
本节论述了如何查看特定池的信息,例如:
- 标记
- 大小
- 放置组数量
curl
命令
在命令行中使用:
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/pool/ID'
替换:
-
使用用户名替代
USER
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用
pool
字段中列出的池的 ID 替换ID
提示时输入用户密码。
如果您使用自签名证书,请使用 --insecure
选项:
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/pool/ID'
Python
在 Python 解释器中,输入:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/pool/ID', auth=("USER", "PASSWORD")) >> print result.json()
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用
pool
字段中列出的池的 ID 替换ID
-
使用用户名替代
USER
-
使用用户的密码替换
PASSWORD
如果您使用自签名证书,请使用 verify=False
选项:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/pool/ID', auth=("USER", "PASSWORD"), verify=False) >> print result.json()
Web 浏览器
在 Web 浏览器中,输入:
https://CEPH_MANAGER:8080/api/pool/ID
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用
pool
字段中列出的池的 ID 替换ID
提示时输入用户名和密码。
1.4.1.12. 如何查看关于主机的信息?
本节论述了如何查看主机的信息,例如:
- 主机名
- Ceph 守护进程及其 ID
- Ceph 版本
curl
命令
在命令行中使用:
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/host'
替换:
-
使用用户名替代
USER
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
提示时输入用户密码。
如果您使用自签名证书,请使用 --insecure
选项:
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/host'
Python
在 Python 解释器中,输入:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/host', auth=("USER", "PASSWORD")) >> print result.json()
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用用户名替代
USER
-
使用用户的密码替换
PASSWORD
如果您使用自签名证书,请使用 verify=False
选项:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/host', auth=("USER", "PASSWORD"), verify=False) >> print result.json()
Web 浏览器
在 Web 浏览器中,输入:
https://CEPH_MANAGER:8080/api/host
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
提示时输入用户名和密码。
1.4.1.13. 如何查看关于 Particular 主机的信息?
本节论述了如何查看特定主机的信息,例如:
- 主机名
- Ceph 守护进程及其 ID
- Ceph 版本
curl
命令
在命令行中使用:
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/host/HOST_NAME'
替换:
-
使用用户名替代
USER
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用在
hostname
项中列出的主机名替换HOST_NAME
提示时输入用户密码。
如果您使用自签名证书,请使用 --insecure
选项:
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/host/HOST_NAME'
Python
在 Python 解释器中,输入:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/host/HOST_NAME', auth=("USER", "PASSWORD")) >> print result.json()
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用在
hostname
项中列出的主机名替换HOST_NAME
-
使用用户名替代
USER
-
使用用户的密码替换
PASSWORD
如果您使用自签名证书,请使用 verify=False
选项:
$ python >> import requests >> result = requests.get('https://CEPH_MANAGER:8080/api/host/HOST_NAME', auth=("USER", "PASSWORD"), verify=False) >> print result.json()
Web 浏览器
在 Web 浏览器中,输入:
https://CEPH_MANAGER:8080/api/host/HOST_NAME
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用在
hostname
项中列出的主机名替换HOST_NAME
提示时输入用户名和密码。
1.4.2. 更改配置
本节介绍如何使用 Ceph API 更改 OSD 配置选项、OSD 的状态以及池的相关信息。
1.4.2.1. 如何更改 OSD 配置选项?
本节论述了如何使用 RESTful 插件更改 OSD 配置选项。
curl
命令
在命令行中使用:
echo -En '{"OPTION": VALUE}' | curl --request PATCH --data @- --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/flags'
替换:
-
使用要修改的选项替换
OPTION
,pause
,noup
,nodown
,noout
,noin
,nobackfill
,norecover
,noscrub
,nodeep-scrub
-
带有
true
或false
的VALUE
-
使用用户名替代
USER
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
提示时输入用户密码。
如果您使用自签名证书,请使用 --insecure
选项:
echo -En '{"OPTION": VALUE}' | curl --request PATCH --data @- --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/flags'
Python
在 Python 解释器中,输入:
$ python >> import requests >> result = requests.patch('https://CEPH_MANAGER:8080/api/osd/flags', json={"OPTION": VALUE}, auth=("USER", "PASSWORD")) >> print result.json()
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用要修改的选项替换
OPTION
,pause
,noup
,nodown
,noout
,noin
,nobackfill
,norecover
,noscrub
,nodeep-scrub
-
使用
True
或False
作为VALUE
-
使用用户名替代
USER
-
使用用户的密码替换
PASSWORD
如果您使用自签名证书,请使用 verify=False
选项:
$ python >> import requests >> result = requests.patch('https://CEPH_MANAGER:8080/api/osd/flags', json={"OPTION": VALUE}, auth=("USER", "PASSWORD"), verify=False) >> print result.json()
1.4.2.2. 如何更改 OSD 状态?
本节介绍如何使用 RESTful 插件更改 OSD 的状态。
curl
命令
在命令行中使用:
echo -En '{"STATE": VALUE}' | curl --request PATCH --data @- --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/ID'
替换:
-
使用要改变的状态(
in
或up
)替换STATE
-
带有
true
或false
的VALUE
-
使用用户名替代
USER
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用
osd
字段中列出的 OSD 的 ID 替换ID
提示时输入用户密码。
如果您使用自签名证书,请使用 --insecure
选项:
echo -En '{"STATE": VALUE}' | curl --request PATCH --data @- --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/ID'
Python
在 Python 解释器中,输入:
$ python >> import requests >> result = requests.patch('https://CEPH_MANAGER:8080/api/osd/ID', json={"STATE": VALUE}, auth=("USER", "PASSWORD")) >> print result.json()
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用
osd
字段中列出的 OSD 的 ID 替换ID
-
使用要改变的状态(
in
或up
)替换STATE
-
使用
True
或False
作为VALUE
-
使用用户名替代
USER
-
使用用户的密码替换
PASSWORD
如果您使用自签名证书,请使用 verify=False
选项:
$ python >> import requests >> result = requests.patch('https://CEPH_MANAGER:8080/api/osd/ID', json={"STATE": VALUE}, auth=("USER", "PASSWORD"), verify=False) >> print result.json()
1.4.2.3. 如何重新加权 OSD?
本节论述了如何更改 OSD 的权重。
curl
命令
在命令行中使用:
echo -En '{"reweight": VALUE}' | curl --request PATCH --data @- --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/ID'
替换:
-
带有新权重的
VALUE
-
使用用户名替代
USER
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用
osd
字段中列出的 OSD 的 ID 替换ID
提示时输入用户密码。
如果您使用自签名证书,请使用 --insecure
选项:
echo -En '{"reweight": VALUE}' | curl --request PATCH --data @- --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/ID'
Python
在 Python 解释器中,输入:
$ python >> import requests >> result = requests.patch('https://CEPH_MANAGER:8080/osd/ID', json={"reweight": VALUE}, auth=("USER", "PASSWORD")) >> print result.json()
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用
osd
字段中列出的 OSD 的 ID 替换ID
-
带有新权重的
VALUE
-
使用用户名替代
USER
-
使用用户的密码替换
PASSWORD
如果您使用自签名证书,请使用 verify=False
选项:
$ python >> import requests >> result = requests.patch('https://CEPH_MANAGER:8080/api/osd/ID', json={"reweight": VALUE}, auth=("USER", "PASSWORD"), verify=False) >> print result.json()
1.4.2.4. 如何更改池的信息?
这部分论述了如何使用 RESTful 插件更改特定池的信息。
curl
命令
在命令行中使用:
echo -En '{"OPTION": VALUE}' | curl --request PATCH --data @- --silent --user USER 'https://CEPH_MANAGER:8080/api/pool/ID'
替换:
-
使用要修改的选项替换
OPTION
-
使用选项的新值替换
VALUE
-
使用用户名替代
USER
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用
pool
字段中列出的池的 ID 替换ID
提示时输入用户密码。
如果您使用自签名证书,请使用 --insecure
选项:
echo -En '{"OPTION": VALUE}' | curl --request PATCH --data @- --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/pool/ID'
Python
在 Python 解释器中,输入:
$ python >> import requests >> result = requests.patch('https://CEPH_MANAGER:8080/api/pool/ID', json={"OPTION": VALUE}, auth=("USER, "PASSWORD")) >> print result.json()
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用
pool
字段中列出的池的 ID 替换ID
-
使用要修改的选项替换
OPTION
-
使用选项的新值替换
VALUE
-
使用用户名替代
USER
-
使用用户的密码替换
PASSWORD
如果您使用自签名证书,请使用 verify=False
选项:
$ python >> import requests >> result = requests.patch('https://CEPH_MANAGER:8080/api/pool/ID', json={"OPTION": VALUE}, auth=("USER, "PASSWORD"), verify=False) >> print result.json()
1.4.3. 管理集群
本节介绍如何使用 Ceph API 在 OSD 上初始化清理或深度清理,创建池或从池中移除数据、删除请求或创建请求。
1.4.3.1. 如何在 OSD 上运行调度的进程?
本节论述了如何使用 RESTful API 在 OSD 上运行调度的进程,如清理或深度清理。
curl
命令
在命令行中使用:
echo -En '{"command": "COMMAND"}' | curl --request POST --data @- --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/ID/command'
替换:
-
带有要启动的进程(
清理
、深度清理
或修复
)的COMMAND
。验证 OSD 上支持该进程。详情请查看 第 1.4.1.9 节 “如何确定 OSD 上可以调度哪些进程?”。 -
使用用户名替代
USER
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用
osd
字段中列出的 OSD 的 ID 替换ID
提示时输入用户密码。
如果您使用自签名证书,请使用 --insecure
选项:
echo -En '{"command": "COMMAND"}' | curl --request POST --data @- --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/ID/command'
Python
在 Python 解释器中,输入:
$ python >> import requests >> result = requests.post('https://CEPH_MANAGER:8080/api/osd/ID/command', json={"command": "COMMAND"}, auth=("USER", "PASSWORD")) >> print result.json()
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用
osd
字段中列出的 OSD 的 ID 替换ID
-
带有要启动的进程(
清理
、深度清理
或修复
)的COMMAND
。验证 OSD 上支持该进程。详情请查看 第 1.4.1.9 节 “如何确定 OSD 上可以调度哪些进程?”。 -
使用用户名替代
USER
-
使用用户的密码替换
PASSWORD
如果您使用自签名证书,请使用 verify=False
选项:
$ python >> import requests >> result = requests.post('https://CEPH_MANAGER:8080/api/osd/ID/command', json={"command": "COMMAND"}, auth=("USER", "PASSWORD"), verify=False) >> print result.json()
1.4.3.2. 如何创建新池?
这部分论述了如何使用 RESTful 插件创建新池。
curl
命令
在命令行中使用:
echo -En '{"name": "NAME", "pg_num": NUMBER}' | curl --request POST --data @- --silent --user USER 'https://CEPH_MANAGER:8080/api/pool'
替换:
-
使用新池的名称替换
NAME
-
使用放置组数量替换
NUMBER
-
使用用户名替代
USER
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
提示时输入用户密码。
如果您使用自签名证书,请使用 --insecure
选项:
echo -En '{"name": "NAME", "pg_num": NUMBER}' | curl --request POST --data @- --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/pool'
Python
在 Python 解释器中,输入:
$ python >> import requests >> result = requests.post('https://CEPH_MANAGER:8080/api/pool', json={"name": "NAME", "pg_num": NUMBER}, auth=("USER", "PASSWORD")) >> print result.json()
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用新池的名称替换
NAME
-
使用放置组数量替换
NUMBER
-
使用用户名替代
USER
-
使用用户的密码替换
PASSWORD
如果您使用自签名证书,请使用 verify=False
选项:
$ python >> import requests >> result = requests.post('https://CEPH_MANAGER:8080/api/pool', json={"name": "NAME", "pg_num": NUMBER}, auth=("USER", "PASSWORD"), verify=False) >> print result.json()
1.4.3.3. 如何删除池?
这部分论述了如何使用 RESTful 插件删除池。
默认情况下禁止此请求。若要允许它,请将以下参数添加到 Ceph 配置指南中。
mon_allow_pool_delete = true
curl
命令
在命令行中使用:
curl --request DELETE --silent --user USER 'https://CEPH_MANAGER:8080/api/pool/ID'
替换:
-
使用用户名替代
USER
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用
pool
字段中列出的池的 ID 替换ID
提示时输入用户密码。
如果您使用自签名证书,请使用 --insecure
选项:
curl --request DELETE --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/pool/ID'
Python
在 Python 解释器中,输入:
$ python >> import requests >> result = requests.delete('https://CEPH_MANAGER:8080/api/pool/ID', auth=("USER", "PASSWORD")) >> print result.json()
替换:
-
使用带有活跃
ceph-mgr
实例的节点的 IP地址或短主机名替换CEPH_MANAGER
-
使用
pool
字段中列出的池的 ID 替换ID
-
使用用户名替代
USER
-
使用用户的密码替换
PASSWORD
如果您使用自签名证书,请使用 verify=False
选项:
$ python >> import requests >> result = requests.delete('https://CEPH_MANAGER:8080/api/pool/ID', auth=("USER", "PASSWORD"), verify=False) >> print result.json()