1.5. 问题和答案

1.5.1. 获取信息

本节论述了如何使用 Ceph API 查看有关存储集群、Ceph 监控、OSD、池和主机的信息:

1.5.1.1. 如何查看所有集群配置选项?

本节论述了如何使用 RESTful 插件查看集群配置选项及其值。

curl 命令

在命令行中使用:

curl --silent --user USER 'https://CEPH_MANAGER:CEPH_MANAGER_PORT/api/cluster_conf'

替换:

  • 使用用户名替代 USER
  • CEPH_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 使用用户名替代 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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名

提示时输入用户名和密码。

其它资源

1.5.1.2. 如何查看部分群集配置选项?

本节论述了如何查看特定集群选项及其值。

curl 命令

在命令行中使用:

curl --silent --user USER 'https://CEPH_MANAGER:8080/api/cluster_conf/ARGUMENT'

替换:

  • 使用用户名替代 USER
  • CEPH_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 使用您要查看的配置选项替换 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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 使用您要查看的配置选项替换 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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 使用您要查看的配置选项替换 ARGUMENT

提示时输入用户名和密码。

其它资源

1.5.1.3. 如何查看 OSD 的所有配置选项?

本节论述了如何查看 OSD 的所有配置选项及其值。

curl 命令

在命令行中使用:

curl --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/flags'

替换:

  • 使用用户名替代 USER
  • CEPH_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名

提示时输入用户密码。

如果您使用自签名证书,请使用 --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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 使用用户名替代 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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名

提示时输入用户名和密码。

其它资源

1.5.1.4. 如何查看 CRUSH 规则?

本节论述了如何查看 CRUSH 规则。

curl 命令

在命令行中使用:

curl --silent --user USER 'https://CEPH_MANAGER:8080/api/crush_rule'

替换:

  • 使用用户名替代 USER
  • CEPH_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名

提示时输入用户密码。

如果您使用自签名证书,请使用 --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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 使用用户名替代 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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名

提示时输入用户名和密码。

其它资源
  • Red Hat Ceph Storage 5 管理指南中的 CRUSH Rules 部分。

1.5.1.5. 如何查看有关 monitor 的信息?

本节论述了如何查看特定监控器的信息,例如:

  • IP 地址
  • 名称
  • 仲裁状态
curl 命令

在命令行中使用:

curl --silent --user USER 'https://CEPH_MANAGER:8080/api/monitor'

替换:

  • 使用用户名替代 USER
  • CEPH_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名

提示时输入用户密码。

如果您使用自签名证书,请使用 --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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 使用用户名替代 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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名

提示时输入用户名和密码。

1.5.1.6. 如何查看关于完整监控的信息?

本节论述了如何查看特定监控器的信息,例如:

  • IP 地址
  • 名称
  • 仲裁状态
curl 命令

在命令行中使用:

curl --silent --user USER 'https://CEPH_MANAGER:8080/api/monitor/NAME'

替换:

  • 使用用户名替代 USER
  • CEPH_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 使用 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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 使用 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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 使用 monitor 短主机名替换 NAME

提示时输入用户名和密码。

1.5.1.7. 如何查看 OSD 的信息?

本节论述了如何查看 OSD 的信息,例如:

  • IP 地址
  • 其池
  • 关联性
  • Weight
curl 命令

在命令行中使用:

curl --silent --user USER 'https://CEPH_MANAGER:8080/api/osd'

替换:

  • 使用用户名替代 USER
  • CEPH_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名

提示时输入用户密码。

如果您使用自签名证书,请使用 --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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 使用用户名替代 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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名

提示时输入用户名和密码。

1.5.1.8. 如何查看 Particular OSD 的信息?

本节论述了如何查看特定 OSD 的信息,例如:

  • IP 地址
  • 其池
  • 关联性
  • Weight
curl 命令

在命令行中使用:

curl --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/ID'

替换:

  • 使用用户名替代 USER
  • CEPH_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 使用 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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 使用 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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 使用 osd 字段中列出的 OSD 的 ID 替换 ID

提示时输入用户名和密码。

1.5.1.9. 如何确定 OSD 上可以调度哪些进程?

本节介绍如何使用 RESTful 插件来查看哪些进程(如清理或深度清理)可以调度到 OSD 上。

curl 命令

在命令行中使用:

curl --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/ID/command'

替换:

  • 使用用户名替代 USER
  • CEPH_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 使用 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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 使用 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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 使用 osd 字段中列出的 OSD 的 ID 替换 ID

提示时输入用户名和密码。

1.5.1.10. 如何查看关于池的信息?

本节论述了如何查看池的信息,例如:

  • 标记
  • 大小
  • 放置组数量
curl 命令

在命令行中使用:

curl --silent --user USER 'https://CEPH_MANAGER:8080/api/pool'

替换:

  • 使用用户名替代 USER
  • CEPH_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名

提示时输入用户密码。

如果您使用自签名证书,请使用 --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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 使用用户名替代 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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名

提示时输入用户名和密码。

1.5.1.11. 如何查看完整池的信息?

本节论述了如何查看特定池的信息,例如:

  • 标记
  • 大小
  • 放置组数量
curl 命令

在命令行中使用:

curl --silent --user USER 'https://CEPH_MANAGER:8080/api/pool/ID'

替换:

  • 使用用户名替代 USER
  • CEPH_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 带有 字段中列出的池的 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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 带有 字段中列出的池的 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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 带有 字段中列出的池的 ID 的 ID

提示时输入用户名和密码。

1.5.1.12. 如何查看关于主机的信息?

本节论述了如何查看主机的信息,例如:

  • 主机名
  • Ceph 守护进程及其 ID
  • Ceph 版本
curl 命令

在命令行中使用:

curl --silent --user USER 'https://CEPH_MANAGER:8080/api/host'

替换:

  • 使用用户名替代 USER
  • CEPH_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名

提示时输入用户密码。

如果您使用自签名证书,请使用 --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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名
  • 使用用户名替代 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_MANAGER 带有活跃 ceph-mgr 实例的节点的 IP 地址或短主机名

提示时输入用户名和密码。

1.5.1.13. 如何查看完整主机中的信息?

本节论述了如何查看特定主机的信息,例如:

  • 主机名
  • 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.5.2. 更改配置

本节论述了如何使用 Ceph API 更改 OSD 配置选项、OSD 的状态以及池的信息:

1.5.2.1. 如何更改 OSD 配置选项?

本节论述了如何使用 RESTful 插件更改 OSD 配置选项。

curl 命令

在命令行中使用:

echo -En '{"OPTION": VALUE}' | curl --request PATCH --data @- --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/flags'

替换:

  • 使用要修改的选项替换 OPTIONpause, noup, nodown, noout, noin, nobackfill, norecover, noscrub, nodeep-scrub
  • VALUE with truefalse
  • 使用用户名替代 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
  • 使用要修改的选项替换 OPTIONpause, noup, nodown, noout, noin, nobackfill, norecover, noscrub, nodeep-scrub
  • 使用 TrueFalse 作为 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.5.2.2. 如何更改 OSD 状态?

本节介绍如何使用 RESTful 插件更改 OSD 的状态。

curl 命令

在命令行中使用:

echo -En '{"STATE": VALUE}' | curl --request PATCH --data @- --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/ID'

替换:

  • 使用要改变的状态(inup)替换 STATE
  • VALUE with truefalse
  • 使用用户名替代 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
  • 使用要改变的状态(inup)替换 STATE
  • 使用 TrueFalse 作为 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.5.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.5.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
  • 带有 字段中列出的池的 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
  • 带有 字段中列出的池的 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.5.3. 管理集群

本节论述了如何使用 Ceph API 对 OSD 初始化清理或深度清理,创建池或从池中移除数据、删除请求或创建请求:

1.5.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.5.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.5.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.5.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.5.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
  • 带有 字段中列出的池的 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
  • 带有 字段中列出的池的 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()