注意

本文档适用于 Ceph 的开发版本。

ceph -- ceph administration tool

概要

ceph auth [ add | caps | del | export | get | get-key | get-or-create | get-or-create-key | import | list | print-key | print_key ] …
ceph compact
ceph config [ dump | ls | help | get | show | show-with-defaults | set | rm | log | reset | assimilate-conf | generate-minimal-conf ] …
ceph config-key [ rm | exists | get | ls | dump | set ] …
ceph daemon <name> | <path> <command>
ceph daemonperf <name> | <path> [ interval [ count ] ]
ceph df {detail}
ceph fs [ add_data_pool | authorize | dump | feature ls | flag set | get | ls | lsflags | new | rename | reset | required_client_features add | required_client_features rm | rm | rm_data_pool | set | swap ] …
ceph fsid
ceph health {detail}
ceph injectargs <injectedargs> [ <injectedargs>… ]
ceph log <logtext> [ <logtext>… ]
ceph mds [ compat | fail | rm | rmfailed | set_state | stat | repaired ] …
ceph mon [ add | dump | enable_stretch_mode | getmap | remove | stat ] …
ceph osd [ blocklist | blocked-by | create | new | deep-scrub | df | down | dump | erasure-code-profile | find | getcrushmap | getmap | getmaxosd | in | ls | lspools | map | metadata | ok-to-stop | out | pause | perf | pg-temp | force-create-pg | primary-affinity | primary-temp | repair | reweight | reweight-by-pg | rm | destroy | purge | safe-to-destroy | scrub | set | setcrushmap | setmaxosd | stat | tree | unpause | unset ] …
ceph osd crush [ add | add-bucket | create-or-move | dump | get-tunable | link | move | remove | rename-bucket | reweight | reweight-all | reweight-subtree | rm | rule | set | set-tunable | show-tunables | tunables | unlink ] …
ceph osd pool [ create | delete | get | get-quota | ls | mksnap | rename | rmsnap | set | set-quota | stats ] …
ceph osd pool application [ disable | enable | get | rm | set ] …
ceph osd tier [ add | add-cache | cache-mode | remove | remove-overlay | set-overlay ] …
ceph pg [ debug | deep-scrub | dump | dump_json | dump_pools_json | dump_stuck | getmap | ls | ls-by-osd | ls-by-pool | ls-by-primary | map | repair | scrub | stat ] …
ceph quorum_status
ceph report { <tags> [ <tags>… ] }
ceph status
ceph sync force {--yes-i-really-mean-it} {--i-know-what-i-am-doing}
ceph tell <name (type.id)> <command> [options…]
ceph version

描述

ceph 是一个控制工具,用于手动部署和维护 Ceph 集群。它提供了各种命令集,允许部署监视器、OSD、放置组、MDS 以及对集群进行全面维护和管理。

命令

auth

管理身份验证密钥。它用于添加、删除、导出或更新特定实体(例如监视器或 OSD)的身份验证密钥。它使用一些额外的子命令。

子命令 add 从输入文件添加特定实体的身份验证信息,如果未给出输入和/或命令中指定了任何功能,则生成随机密钥。

用法

ceph auth add <entity> {<caps> [<caps>...]}

子命令 caps 使用命令中指定的功能更新 name 的功能。

用法

ceph auth caps <entity> <caps> [<caps>...]

子命令 del 删除 name 的所有功能。

用法

ceph auth del <entity>

子命令 export 写入所请求实体的密钥环,如果未给出实体,则写入主密钥环。

用法

ceph auth export {<entity>}

子命令 get 写入包含所请求密钥的密钥环文件。

用法

ceph auth get <entity>

子命令 get-key 显示所请求的密钥。

用法

ceph auth get-key <entity>

子命令 get-or-create 从输入文件添加特定实体的身份验证信息,如果未给出输入和/或命令中指定了任何功能,则生成随机密钥。

用法

ceph auth get-or-create <entity> {<caps> [<caps>...]}

子命令 get-or-create-key 从命令中指定的系统/功能对获取或添加 name 的密钥。如果密钥已存在,则给定的任何功能必须与该密钥的现有功能匹配。

用法

ceph auth get-or-create-key <entity> {<caps> [<caps>...]}

子命令 import 从输入文件读取密钥环。

用法

ceph auth import

子命令 ls 列出身份验证状态。

用法

ceph auth ls

子命令 print-key 显示所请求的密钥。

用法

ceph auth print-key <entity>

子命令 print_key 显示所请求的密钥。

用法

ceph auth print_key <entity>

compact

导致监视器 RocksDB 存储的压缩。

用法

ceph compact

config

配置集群。默认情况下,Ceph 守护程序和客户端在启动时从监视器检索其配置选项,如果在运行时更改了任何跟踪的选项,则会更新。它使用以下附加子命令。

子命令 dump 转储集群的所有选项

用法

ceph config dump

子命令 ls 列出集群的所有选项名称

用法

ceph config ls

子命令 help 描述指定的配置选项

用法

ceph config help <option>

子命令 get 转储指定实体的选项。

用法

ceph config get <who> {<option>}

子命令 show 显示指定实体的正在运行的配置。请注意,与仅显示由监视器管理的选项的 get 不同,show 显示所有正在使用的配置。这些选项从多个来源获取,例如,编译在内的默认值、监视器的配置数据库、主机上的 ceph.conf 文件。这些选项甚至可以在运行时被覆盖。因此,show 的输出中的配置选项可能与 get 的输出中的配置选项不同。

用法

ceph config show {<who>}

子命令 show-with-defaults 显示正在运行的配置以及指定实体的编译在内的默认值

用法

ceph config show {<who>}

子命令 set 为一个或多个指定实体设置选项

用法

ceph config set <who> <option> <value> {--force}

子命令 rm 清除一个或多个实体的选项

用法

ceph config rm <who> <option>

子命令 log 显示中央配置更改的最近历史记录。如果省略 count 参数,则显示最后十个条目。

用法

ceph config log {<count>}

子命令 reset 将配置恢复到指定的历史版本

用法

ceph config reset <version>

子命令 assimilate-conf 从 stdin 吸取选项,并返回一个新的、最小的 conf 文件

用法

ceph config assimilate-conf -i <input-config-path> > <output-config-path>
ceph config assimilate-conf < <input-config-path>

子命令 generate-minimal-conf 生成最小的 ceph.conf 文件,可用于引导守护程序或客户端。

用法

ceph config generate-minimal-conf > <minimal-config-path>

config-key

管理配置密钥。Config-key 是监视器提供的一种通用键/值服务。此服务主要由 Ceph 工具和守护程序用于持久化各种设置。其中,ceph-mgr 模块使用它来存储其选项。它使用一些额外的子命令。

子命令 rm 删除配置密钥。

用法

ceph config-key rm <key>

子命令 exists 检查配置密钥是否存在。

用法

ceph config-key exists <key>

子命令 get 获取配置密钥。

用法

ceph config-key get <key>

子命令 ls 列出配置密钥。

用法

ceph config-key ls

子命令 dump 转储配置密钥和值。

用法

ceph config-key dump

子命令 set 设置配置密钥和值。

用法

ceph config-key set <key> {<val>}

daemon

提交 admin-socket 命令。

用法

ceph daemon {daemon_name|socket_path} {command} ...

示例

ceph daemon osd.0 help

daemonperf

从 Ceph 守护程序监视性能计数器。

用法

ceph daemonperf {daemon_name|socket_path} [{interval} [{count}]]

df

显示集群的可用空间状态。

用法

ceph df {detail}

features

显示连接到集群的所有守护程序和客户端的版本和功能,以及按相应功能/版本分组的每个存储桶中的数量。Ceph 的每个版本都支持一组不同的功能,由功能位掩码表示。新的集群功能要求客户端支持该功能,否则不允许它们连接到这些新功能。随着升级后启用新功能或能力,旧客户端被阻止连接。

用法

ceph features

fs

管理 cephfs 文件系统。它使用一些额外的子命令。

子命令 add_data_pool 向 FS 添加新的数据池。该池可用作文件布局的替代位置来存储文件数据。

用法

ceph fs add_data_pool <fs-name> <pool name/id>

子命令 authorize 创建一个新客户端(如果客户端不存在于集群上),该客户端将被授权在 <fs_name> 中给定的路径。传递 / 以授权整个 FS。<perms> 可以是 rrwrwp

对现有客户端运行此命令可以授予客户端新能力(同一集群上的不同 CephFS 的能力或同一 CephFS 上不同路径的能力)。或者它也可以更改客户端已持有的能力中的读/写权限。

用法

ceph fs authorize <fs_name> client.<client_id> <path> <perms> [<path> <perms>...]

子命令 dump 在给定 epoch(默认:当前)显示 FSMap。这包括所有文件系统设置、MDS 守护程序及其持有的级别以及备用 MDS 守护程序列表。

用法

ceph fs dump [epoch]

子命令 feature ls 列出当前 Ceph 版本支持的所有 CephFS 功能。

用法

ceph fs feature ls

子命令 flag set 设置全局 CephFS 标志。目前唯一的标志是 enable_multiple,它允许在 Ceph 集群上使用多个 CephFS。

用法

ceph fs flag set <flag-name> <flag-val> --yes-i-really-mean-it

子命令 get 显示有关 FS 的信息,包括设置和级别。此处打印的信息是 fs dump 命令中相同信息的子集。

用法

ceph fs get <fs-name>

子命令 ls 列出文件系统

用法

ceph fs ls

子命令 lsflags 显示在给定 FS 上设置的所有标志。

用法

ceph fs lsflags <fs-name>

子命令 new 使用命名池 <metadata> 和 <data> 创建新文件系统

用法

ceph fs new <fs_name> <metadata> <data>

子命令 rename 为 CephFS 分配新名称,并更新此 CephFS 池上的应用程序标签。

用法

ceph fs rename <fs-name> <new-fs-name> {--yes-i-really-mean-it}

子命令 required_client_features 禁用不具备特定功能的客户端连接。此子命令有两个子命令,一个用于添加要求,另一个用于删除要求。

用法

ceph fs required_client_features <fs name> add <feature-name>
ceph fs required_client_features <fs name> rm <feature-name>

子命令 reset 仅用于灾难恢复:重置为单个 MDS 映射

用法

ceph fs reset <fs_name> {--yes-i-really-mean-it}

子命令 rm 禁用命名文件系统

用法

ceph fs rm <fs_name> {--yes-i-really-mean-it}

子命令 rm_data_pool 从 FS 的数据池列表中删除指定的池。此池上的文件数据将变为不可用。默认数据池无法删除。

用法

ceph fs rm_data_pool <fs-name> <pool name/id>

子命令 set 为给定的 FS 名称设置或更新 FS 设置值。

用法

ceph fs set <fs-name> <fs-setting> <value>

子命令 swap 交换两个 Ceph 文件系统的名称,并相应更新文件系统池上的应用程序标签。或者,也可以通过传递 --swap-fscids 来交换文件系统的 FSID。

用法

ceph fs swap <fs1-name> <fs1-id> <fs2-name> <fs2-id> [--swap-fscids] {--yes-i-really-meant-it}

fsid

显示集群的 FSID/UUID。

用法

ceph fsid

health

显示集群的健康状况。

用法

ceph health {detail}

heap

显示堆使用信息(仅在用 tcmalloc 编译时可用)

用法

ceph tell <name (type.id)> heap dump|start_profiler|stop_profiler|stats

子命令 release 使 TCMalloc 立即将不再使用的内存释放回内核。

用法

ceph tell <name (type.id)> heap release

子命令 (get|set)_release_rate 获取或设置 TCMalloc 内存释放率。TCMalloc 逐渐将不再使用的内存释放回内核。此速率控制发生的速度。增加此设置可使 TCMalloc 更频繁地返回未使用的内存。0 表示永不将内存返回给系统,1 表示向系统释放一页后等待 1000 页。默认值为 1.0

用法

ceph tell <name (type.id)> heap get_release_rate|set_release_rate {<val>}

injectargs

将配置参数注入监视器。

用法

ceph injectargs <injected_args> [<injected_args>...]

log

将提供的文本记录到监视器日志。

用法

ceph log <logtext> [<logtext>...]

mds

管理元数据服务器配置和管理。它使用一些额外的子命令。

子命令 compat 管理兼容功能。它使用一些额外的子命令。

子命令 rm_compat 删除兼容功能。

用法

ceph mds compat rm_compat <int[0-]>

子命令 rm_incompat 删除不兼容功能。

用法

ceph mds compat rm_incompat <int[0-]>

子命令 show 显示 mds 兼容性设置。

用法

ceph mds compat show

子命令 fail 强制 mds 进入失败状态。

用法

ceph mds fail <role|gid>

子命令 rm 删除不活动的 mds。

用法

ceph mds rm <int[0-]> <name> (type.id)>

子命令 rmfailed 删除失败的 mds。

用法

ceph mds rmfailed <int[0-]>

子命令 set_state 将 <gid> 的 mds 状态设置为 <numeric-state>。

用法

ceph mds set_state <int[0-]> <int[0-20]>

子命令 stat 显示 MDS 状态。

用法

ceph mds stat

子命令 repaired 标记受损的 MDS 级别为不再受损。

用法

ceph mds repaired <role>

mon

管理监视器配置和管理。它使用一些额外的子命令。

子命令 add 在 <addr> 添加名为 <name> 的新监视器。

用法

ceph mon add <name> <IPaddr[:port]>

子命令 dump 转储格式化的 monmap(可选来自 epoch)

用法

ceph mon dump {<int[0-]>}

子命令 getmap 获取 monmap。

用法

ceph mon getmap {<int[0-]>}

子命令 enable_stretch_mode 启用拉伸模式,更改所有池的对等规则和故障处理。对于给定的 PG 成功对等并标记为活动,min_size 副本现在需要在所有(目前为两个)类型为 <dividing_bucket> 的 CRUSH 存储桶下处于活动状态。

<tiebreaker_mon> 是发生网络分裂时使用的决胜监视器。

<dividing_bucket> 是用于拉伸的存储桶类型。这通常是 datacenter 或其他 CRUSH 层次结构存储桶类型,表示物理或逻辑上不同的细分。

<new_crush_rule> 将设置为所有池的 CRUSH 规则。

用法

ceph mon enable_stretch_mode <tiebreaker_mon> <new_crush_rule> <dividing_bucket>

子命令 remove 删除名为 <name> 的监视器。

用法

ceph mon remove <name>

子命令 stat 汇总监视器状态。

用法

ceph mon stat

mgr

Ceph 管理器守护程序配置和管理。

子命令 dump 转储最新的 MgrMap,其中描述了活动和备用管理器守护程序。

用法

ceph mgr dump

子命令 fail 将管理器守护程序标记为失败,将其从管理器映射中删除。如果是活动的管理器守护程序,备用守护程序将取代其位置。

用法

ceph mgr fail <name>

子命令 module ls 将列出当前启用的管理器模块(插件)。

用法

ceph mgr module ls

子命令 module enable 将启用管理器模块。可用模块包含在 MgrMap 中,并通过 mgr dump 可见。

用法

ceph mgr module enable <module>

子命令 module disable 将禁用活动的管理器模块。

用法

ceph mgr module disable <module>

子命令 metadata 将报告所有管理器守护程序或(如果指定了名称)单个管理器守护程序的元数据。

用法

ceph mgr metadata [name]

子命令 versions 将报告正在运行的守护程序版本的计数。

用法

ceph mgr versions

子命令 count-metadata 将报告任何守护程序元数据字段的计数。

用法

ceph mgr count-metadata <field>

osd

管理 OSD 配置和管理。它使用一些额外的子命令。

子命令 blocklist 管理阻止列表客户端。它使用一些额外的子命令。

子命令 add 将 <addr> 添加到阻止列表(可选直到现在起 <expire> 秒)

用法

ceph osd blocklist add <EntityAddr> {<float[0.0-]>}

子命令 ls 显示阻止列表客户端

用法

ceph osd blocklist ls

子命令 rm 从阻止列表中删除 <addr>

用法

ceph osd blocklist rm <EntityAddr>

子命令 blocked-by 打印哪些 OSD 正在阻止其对等体的直方图

用法

ceph osd blocked-by

子命令 create 创建新的 osd(可选 UUID 和 ID)。

此命令自 Luminous 版本起已弃用,并将在未来的版本中删除。

应改为使用子命令 new

用法

ceph osd create {<uuid>} {<id>}

子命令 new 可用于创建新的 OSD 或使用特定的 id 重新创建先前销毁的 OSD。新的 OSD 将具有指定的 uuid,并且命令需要一个 JSON 文件,其中包含 auth 实体 client.osd.<id> 的 base64 cephx 密钥,以及用于 dm-crypt lockbox 访问的可选 base64 cepx 密钥和 dm-crypt 密钥。指定 dm-crypt 需要指定附带的 lockbox cephx 密钥。

用法

ceph osd new {<uuid>} {<id>} -i {<params.json>}

参数 JSON 文件是可选的,但如果提供,则应保持以下格式

{
    "cephx_secret": "AQBWtwhZdBO5ExAAIDyjK2Bh16ZXylmzgYYEjg==",
    "crush_device_class": "myclass"
}

或者

{
    "cephx_secret": "AQBWtwhZdBO5ExAAIDyjK2Bh16ZXylmzgYYEjg==",
    "cephx_lockbox_secret": "AQDNCglZuaeVCRAAYr76PzR1Anh7A0jswkODIQ==",
    "dmcrypt_key": "<dm-crypt key>",
    "crush_device_class": "myclass"
}

或者

{
    "crush_device_class": "myclass"
}

“crush_device_class” 属性是可选的。如果指定,它将设置新 OSD 的初始 CRUSH 设备类。

子命令 crush 用于 CRUSH 管理。它使用一些额外的子命令。

子命令 add 使用 <weight> 和位置 <args> 添加或更新 <name> 的 crushmap 位置和权重。

用法

ceph osd crush add <osdname (id|osd.id)> <float[0.0-]> <args> [<args>...]

子命令 add-bucket 添加类型为 <type> 的无父(可能是根)crush 存储桶 <name>。

用法

ceph osd crush add-bucket <name> <type>

子命令 create-or-move 在位置 <args> 创建条目或移动现有条目 <name> <weight>。

用法

ceph osd crush create-or-move <osdname (id|osd.id)> <float[0.0-]> <args>
[<args>...]

子命令 dump 转储 crush 映射。

用法

ceph osd crush dump

子命令 get-tunable 获取 crush 可调参数 straw_calc_version

用法

ceph osd crush get-tunable straw_calc_version

子命令 link 在位置 <args> 下链接 <name> 的现有条目。

用法

ceph osd crush link <name> <args> [<args>...]

子命令 move 将 <name> 的现有条目移动到位置 <args>。

用法

ceph osd crush move <name> <args> [<args>...]

子命令 remove 从 crush 映射中删除 <name>(全部,或仅在 <ancestor> 处)。

用法

ceph osd crush remove <name> {<ancestor>}

子命令 rename-bucket 将存储桶 <srcname> 重命名为 <dstname>

用法

ceph osd crush rename-bucket <srcname> <dstname>

子命令 reweight 将 crush 映射中 <name> 的权重更改为 <weight>。

用法

ceph osd crush reweight <name> <float[0.0-]>

子命令 reweight-all 重新计算树的权重以确保它们正确求和

用法

ceph osd crush reweight-all

子命令 reweight-subtree 将 crush 映射中 <name> 下的所有叶子项更改为 <weight>

用法

ceph osd crush reweight-subtree <name> <weight>

子命令 rm 从 crush 映射中删除 <name>(全部,或仅在 <ancestor> 处)。

用法

ceph osd crush rm <name> {<ancestor>}

子命令 rule 用于创建 crush 规则。它使用一些额外的子命令。

子命令 create-erasure 为使用 <profile>(默认 default)创建的纠删码池创建 crush 规则 <name>。

用法

ceph osd crush rule create-erasure <name> {<profile>}

子命令 create-simple 创建 crush 规则 <name>,从 <root> 开始,跨类型为 <type> 的存储桶进行复制,使用 <firstn|indep>(默认 firstn;indep 最适合纠删池)的选择模式。

用法

ceph osd crush rule create-simple <name> <root> <type> {firstn|indep}

子命令 dump 转储 crush 规则 <name>(默认 all)。

用法

ceph osd crush rule dump {<name>}

子命令 ls 列出 crush 规则。

用法

ceph osd crush rule ls

子命令 rm 删除 crush 规则 <name>。

用法

ceph osd crush rule rm <name>

子命令 set 单独使用时,从输入文件设置 crush 映射。

用法

ceph osd crush set

子命令 set with osdname/osd.id 使用位置 <args> 将 <name> 的 crushmap 位置和权重更新为 <weight>。

用法

ceph osd crush set <osdname (id|osd.id)> <float[0.0-]> <args> [<args>...]

子命令 set-tunable 将 crush 可调参数 <tunable> 设置为 <value>。唯一可以设置的可调参数是 straw_calc_version。

用法

ceph osd crush set-tunable straw_calc_version <value>

子命令 show-tunables 显示当前 crush 可调参数。

用法

ceph osd crush show-tunables

子命令 tree 以树状视图显示 crush 存储桶和项目。

用法

ceph osd crush tree

子命令 tunables 将 crush 可调参数值设置为 <profile>。

用法

ceph osd crush tunables legacy|argonaut|bobtail|firefly|hammer|optimal|default

子命令 unlink 从 crush 映射中取消链接 <name>(全部,或仅在 <ancestor> 处)。

用法

ceph osd crush unlink <name> {<ancestor>}

子命令 df 显示 OSD 利用率

用法

ceph osd df {plain|tree}

子命令 deep-scrub 在指定的 osd 上启动深度擦洗。

用法

ceph osd deep-scrub <who>

子命令 down 设置 osd(s) <id> [<id>…] down。

用法

ceph osd down <ids> [<ids>...]

子命令 dump 打印 OSD 映射摘要。

用法

ceph osd dump {<int[0-]>}

子命令 erasure-code-profile 用于管理纠删码配置文件。它使用一些额外的子命令。

子命令 get 获取纠删码配置文件 <name>。

用法

ceph osd erasure-code-profile get <name>

子命令 ls 列出所有纠删码配置文件。

用法

ceph osd erasure-code-profile ls

子命令 rm 删除纠删码配置文件 <name>。

用法

ceph osd erasure-code-profile rm <name>

子命令 set 使用 [<key[=value]> …] 对创建纠删码配置文件 <name>。在末尾添加 --force 以覆盖现有配置文件(有风险)。

用法

ceph osd erasure-code-profile set <name> {<profile> [<profile>...]}

子命令 find 在 CRUSH 映射中查找 osd <id> 并显示其位置。

用法

ceph osd find <int[0-]>

子命令 getcrushmap 获取 CRUSH 映射。

用法

ceph osd getcrushmap {<int[0-]>}

子命令 getmap 获取 OSD 映射。

用法

ceph osd getmap {<int[0-]>}

子命令 getmaxosd 显示最大的 OSD id。

用法

ceph osd getmaxosd

子命令 in 设置 osd(s) <id> [<id>…] in。

用法

ceph osd in <ids> [<ids>...]

子命令 lost 标记 osd 为永久丢失。如果没有更多副本存在,这将销毁数据,请小心。

用法

ceph osd lost <int[0-]> {--yes-i-really-mean-it}

子命令 ls 显示所有 OSD id。

用法

ceph osd ls {<int[0-]>}

子命令 lspools 列出池。

用法

ceph osd lspools {<int>}

子命令 map 在 <pool> 中查找 <object> 的 pg。

用法

ceph osd map <poolname> <objectname>

子命令 metadata 获取 osd <id> 的元数据。

用法

ceph osd metadata {int[0-]} (default all)

子命令 out 设置 osd(s) <id> [<id>…] out。

用法

ceph osd out <ids> [<ids>...]

子命令 ok-to-stop 检查是否可以停止 OSD,而不会立即导致数据不可用。也就是说,所有数据都应保持可读写,尽管数据冗余可能会降低,因为某些 PG 最终可能处于降级(但活动)状态。如果可以停止 OSD,它将返回成功代码,如果不能停止或当前无法得出结论,则返回错误代码和信息性消息。当提供了 --max <num> 时,将返回最多 <num> 个 OSD ID(包括提供的 OSD),它们都可以同时停止。这允许通过提供单个起始 OSD 和最大值轻松生成更大的可停止 OSD 集。其他 OSD 从 CRUSH 层次结构中的相邻位置获取。

用法

ceph osd ok-to-stop <id> [<ids>...] [--max <num>]

子命令 pause 暂停 osd。

用法

ceph osd pause

子命令 perf 打印 OSD 性能摘要统计信息。

用法

ceph osd perf

子命令 pg-temp 设置 pg_temp 映射 pgid:[<id> [<id>…]](仅限开发人员)。

用法

ceph osd pg-temp <pgid> {<id> [<id>...]}

子命令 force-create-pg 强制创建 pg <pgid>。

用法

ceph osd force-create-pg <pgid>

子命令 pool 用于管理数据池。它使用一些额外的子命令。

子命令 create 创建池。

用法

ceph osd pool create <poolname> {<int[0-]>} {<int[0-]>} {replicated|erasure}
{<erasure_code_profile>} {<rule>} {<int>} {--autoscale-mode=<on,off,warn>}

子命令 delete 删除池。

用法

ceph osd pool delete <poolname> {<poolname>} {--yes-i-really-really-mean-it}

子命令 get 获取池参数 <var>。

用法

ceph osd pool get <poolname> size|min_size|pg_num|pgp_num|crush_rule|write_fadvise_dontneed

仅适用于分层池

ceph osd pool get <poolname> hit_set_type|hit_set_period|hit_set_count|hit_set_fpp|
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|
min_read_recency_for_promote|hit_set_grade_decay_rate|hit_set_search_last_n

仅适用于纠删码池

ceph osd pool get <poolname> erasure_code_profile

使用 all 获取适用于池类型的所有池参数

ceph osd pool get <poolname> all

子命令 get-quota 获取池的对象或字节限制。

用法

ceph osd pool get-quota <poolname>

子命令 ls 列出池

用法

ceph osd pool ls {detail}

子命令 mksnap 在 <pool> 中创建快照 <snap>。

用法

ceph osd pool mksnap <poolname> <snap>

子命令 rename 将 <srcpool> 重命名为 <destpool>。

用法

ceph osd pool rename <poolname> <poolname>

子命令 rmsnap 从 <pool> 中删除快照 <snap>。

用法

ceph osd pool rmsnap <poolname> <snap>

子命令 set 将池参数 <var> 设置为 <val>。

用法

ceph osd pool set <poolname> size|min_size|pg_num|
pgp_num|crush_rule|hashpspool|nodelete|nopgchange|nosizechange|
hit_set_type|hit_set_period|hit_set_count|hit_set_fpp|debug_fake_ec_pool|
target_max_bytes|target_max_objects|cache_target_dirty_ratio|
cache_target_dirty_high_ratio|
cache_target_full_ratio|cache_min_flush_age|cache_min_evict_age|
min_read_recency_for_promote|write_fadvise_dontneed|hit_set_grade_decay_rate|
hit_set_search_last_n
<val> {--yes-i-really-mean-it}

子命令 set-quota 设置池的对象或字节限制。

用法

ceph osd pool set-quota <poolname> max_objects|max_bytes <val>

子命令 stats 获取所有池或指定池的统计信息。

用法

ceph osd pool stats {<name>}

子命令 application 用于向给定池添加注释。默认情况下,可能的应用程序是对象、块和文件存储(相应的应用程序名称分别为“rgw”、“rbd”和“cephfs”)。但是,也可能有其他应用程序。根据应用程序,可能会或可能不会进行一些处理。

子命令 disable 在给定池上禁用给定应用程序。

用法

ceph osd pool application disable <pool-name> <app> {--yes-i-really-mean-it}

子命令 enable 为提到的应用程序向给定池添加注释。

用法

ceph osd pool application enable <pool-name> <app> {--yes-i-really-mean-it}

子命令 get 显示与给定池的给定应用程序关联的给定键的值。不传递可选参数将显示所有池的所有应用程序的所有键值对。

用法

ceph osd pool application get {<pool-name>} {<app>} {<key>}

子命令 rm 删除给定池的给定应用程序中给定键的键值对。

用法

ceph osd pool application rm <pool-name> <app> <key>

子命令 set 为给定池的给定应用程序关联或更新(如果已存在)键值对。

用法

ceph osd pool application set <pool-name> <app> <key> <value>

子命令 primary-affinity 调整 osd primary-affinity 从 0.0 <=<weight> <= 1.0

用法

ceph osd primary-affinity <osdname (id|osd.id)> <float[0.0-1.0]>

子命令 primary-temp 设置 primary_temp 映射 pgid:<id>|-1(仅限开发人员)。

用法

ceph osd primary-temp <pgid> <id>

子命令 repair 在指定的 osd 上启动修复。

用法

ceph osd repair <who>

子命令 reweight 将 osd 重新加权到 0.0 < <weight> < 1.0。

用法

osd reweight <int[0-]> <float[0.0-1.0]>

子命令 reweight-by-pg 按 PG 分布重新加权 OSD [overload-percentage-for-consideration, 默认 120]。

用法

ceph osd reweight-by-pg {<int[100-]>} {<poolname> [<poolname...]}
{--no-increasing}

子命令 reweight-by-utilization 按利用率重新加权 OSD。它只重新加权利用率超过平均值的异常 OSD,例如,默认的 120% 限制将重新加权到那些利用率比平均值高 20% 以上的 OSD。[overload-threshold, 默认 120 [max_weight_change, 默认 0.05 [max_osds_to_adjust, 默认 4]]]

用法

ceph osd reweight-by-utilization {<int[100-]> {<float[0.0-]> {<int[0-]>}}}
{--no-increasing}

子命令 rm 从 OSD 映射中删除 osd(s) <id> [<id>…]。

用法

ceph osd rm <ids> [<ids>...]

子命令 destroy 将 OSD id 标记为 destroyed,删除其 cephx 实体的密钥以及所有 dm-crypt 和守护程序私有配置密钥条目。

此命令不会从 crush 中删除 OSD,也不会从 OSD 映射中删除 OSD。相反,一旦命令成功完成,OSD 将显示为已标记为 destroyed

为了将 OSD 标记为已销毁,必须首先将 OSD 标记为 lost

用法

ceph osd destroy <id> {--yes-i-really-mean-it}

子命令 purge 执行 osd destroyosd rmosd crush remove 的组合。

用法

ceph osd purge <id> {--yes-i-really-mean-it}

子命令 safe-to-destroy 检查删除或销毁 OSD 是否安全,而不会降低整体数据冗余或持久性。如果绝对安全,它将返回成功代码,如果不是或当前无法得出结论,则返回错误代码和信息性消息。

用法

ceph osd safe-to-destroy <id> [<ids>...]

子命令 scrub 在指定的 osd 上启动擦洗。

用法

ceph osd scrub <who>

子命令 set 通过更新 OSD 映射设置集群范围的 <flag>。自 Mimic 版本以来,full 标志不再有效,并且 Octopus 版本不支持 ceph osd set full

用法

ceph osd set pause|noup|nodown|noout|noin|nobackfill|
norebalance|norecover|noscrub|nodeep-scrub|notieragent

子命令 setcrushmap 从输入文件设置 crush 映射。

用法

ceph osd setcrushmap

子命令 setmaxosd 设置新的最大 osd 值。

用法

ceph osd setmaxosd <int[0-]>

子命令 set-require-min-compat-client 强制集群向后兼容指定的客户端版本。此子命令可防止您进行任何可能违反当前设置的更改(例如,crush 可调参数或使用新功能)。请注意,如果任何连接的守护程序或客户端与给定 <version> 提供的功能不兼容,此子命令将失败。要查看连接到集群的所有客户端的功能和版本,请参阅 ceph features

用法

ceph osd set-require-min-compat-client <version>

子命令 stat 打印 OSD 映射摘要。

用法

ceph osd stat

子命令 tier 用于管理分层。它使用一些额外的子命令。

子命令 add 将层 <tierpool>(第二个)添加到基本池 <pool>(第一个)。

用法

ceph osd tier add <poolname> <poolname> {--force-nonempty}

子命令 add-cache 将大小为 <size> 的缓存 <tierpool>(第二个)添加到现有池 <pool>(第一个)。

用法

ceph osd tier add-cache <poolname> <poolname> <int[0-]>

子命令 cache-mode 指定缓存层 <pool> 的缓存模式。

用法

ceph osd tier cache-mode <poolname> writeback|proxy|readproxy|readonly|none

子命令 remove 从基本池 <pool>(第一个)中删除层 <tierpool>(第二个)。

用法

ceph osd tier remove <poolname> <poolname>

子命令 remove-overlay 删除基本池 <pool> 的覆盖池。

用法

ceph osd tier remove-overlay <poolname>

子命令 set-overlay 将基本池 <pool> 的覆盖池设置为 <overlaypool>。

用法

ceph osd tier set-overlay <poolname> <poolname>

子命令 tree 打印 OSD 树。

用法

ceph osd tree {<int[0-]>}

子命令 unpause 取消暂停 osd。

用法

ceph osd unpause

子命令 unset 通过更新 OSD 映射取消设置集群范围的 <flag>。

用法

ceph osd unset pause|noup|nodown|noout|noin|nobackfill|
norebalance|norecover|noscrub|nodeep-scrub|notieragent

pg

它用于管理 OSD 中的放置组。它使用一些额外的子命令。

子命令 debug 显示有关 pg 的调试信息。

用法

ceph pg debug unfound_objects_exist|degraded_pgs_exist

子命令 deep-scrub 在 <pgid> 上启动深度擦洗。

用法

ceph pg deep-scrub <pgid>

子命令 dump 显示 human-readable 版本的 pg 映射(只有“all”在 plain 下有效)。

用法

ceph pg dump {all|summary|sum|delta|pools|osds|pgs|pgs_brief} [{all|summary|sum|delta|pools|osds|pgs|pgs_brief...]}

子命令 dump_json 仅以 json 格式显示 human-readable 版本的 pg 映射。

用法

ceph pg dump_json {all|summary|sum|delta|pools|osds|pgs|pgs_brief} [{all|summary|sum|delta|pools|osds|pgs|pgs_brief...]}

子命令 dump_pools_json 仅以 json 格式显示 pg 池信息。

用法

ceph pg dump_pools_json

子命令 dump_stuck 显示有关 stuck pgs 的信息。

用法

ceph pg dump_stuck {inactive|unclean|stale|undersized|degraded [inactive|unclean|stale|undersized|degraded...]}
{<int>}

子命令 getmap 获取二进制 pg 映射到 -o/stdout。

用法

ceph pg getmap

子命令 ls 列出具有特定池、osd、状态的 pg

用法

ceph pg ls {<int>} {<pg-state> [<pg-state>...]}

子命令 ls-by-osd 列出 osd [osd] 上的 pg

用法

ceph pg ls-by-osd <osdname (id|osd.id)> {<int>}
{<pg-state> [<pg-state>...]}

子命令 ls-by-pool 列出具有 pool = [poolname] 的 pg

用法

ceph pg ls-by-pool <poolstr> {<int>} {<pg-state> [<pg-state>...]}

子命令 ls-by-primary 列出具有 primary = [osd] 的 pg

用法

ceph pg ls-by-primary <osdname (id|osd.id)> {<int>}
{<pg-state> [<pg-state>...]}

子命令 map 显示 pg 到 osd 的映射。

用法

ceph pg map <pgid>

子命令 repair 在 <pgid> 上启动修复。

用法

ceph pg repair <pgid>

子命令 scrub 在 <pgid> 上启动擦洗。

用法

ceph pg scrub <pgid>

子命令 stat 显示放置组状态。

用法

ceph pg stat

quorum

使特定的 MON 进入或退出法定人数。

用法

ceph tell mon.<id> quorum enter|exit

quorum_status

报告监视器法定人数状态。

用法

ceph quorum_status

report

报告集群的完整状态,可选标题标签字符串。

用法

ceph report {<tags> [<tags>...]}

status

显示集群状态。

用法

ceph status

tell

向特定守护程序发送命令。

用法

ceph tell <name (type.id)> <command> [options...]

列出所有可用命令。

用法

ceph tell <name (type.id)> help

version

显示 mon 守护程序版本

用法

ceph version

选项

-i infile, --in-file=infile

将指定一个输入文件,作为有效负载与命令一起传递给监视器集群。这仅用于特定的监视器命令。

-o outfile, --out-file=outfile

将监视器集群随其回复返回的任何有效负载写入 outfile。只有特定的监视器命令(例如 osd getmap)才返回有效负载。

--setuser user

将适当的用户所有权应用于选项“-o”指定的文件。

--setgroup group

将适当的组所有权应用于选项“-o”指定的文件。

-c ceph.conf, --conf=ceph.conf

使用 ceph.conf 配置文件而不是默认的 /etc/ceph/ceph.conf 来确定启动期间的监视器地址。

--id CLIENT_ID, --user CLIENT_ID

用于身份验证的客户端 id。

--name CLIENT_NAME, -n CLIENT_NAME

用于身份验证的客户端名称。

--cluster CLUSTER

Ceph 集群的名称。

--admin-daemon ADMIN_SOCKET, daemon DAEMON_NAME

通过 /var/run/ceph 中的 admin sockets 提交 admin-socket 命令。

--admin-socket ADMIN_SOCKET_NOPE

您可能指的是 --admin-daemon

-s, --status

显示集群状态。

-w, --watch

在默认的“cluster”通道上观看实时集群更改

-W, --watch-channel

在任何通道(cluster、audit、cephadm 或 * 表示所有)上观看实时集群更改

--watch-debug

观看调试事件。

--watch-info

观看信息事件。

--watch-sec

观看安全事件。

--watch-warn

观看警告事件。

--watch-error

观看错误事件。

--version, -v

显示版本。

--verbose

使其详细。

--concise

使其不那么详细。

-f {json,json-pretty,xml,xml-pretty,plain,yaml}, --format

输出格式。

注意:yaml 仅对 orch 命令有效。

--daemon-output-file OUTPUT_FILE

使用 --format=json|json-pretty 时,您可以指定运行守护程序的主机上的文件名以流式传输输出。请注意,这可能不是运行 ceph 命令的同一台机器。因此,要分析输出,需要在命令完成后获取文件。

OUTPUT_FILE 也可以是 :tmp:,表示守护程序应创建临时文件(受配置 tmp_dir 和 tmp_file_template 约束)。

tell 命令将输出包含写入的输出文件路径、文件大小、命令结果代码以及命令生成的任何输出的 json。

注意:此选项仅用于 ceph tell 命令。

--connect-timeout CLUSTER_TIMEOUT

设置连接到集群的超时时间。

--no-increasing

--no-increasing 默认关闭。因此,允许使用 reweight-by-utilizationtest-reweight-by-utilization 命令增加 osd 权重。如果将此选项与这些命令一起使用,它将有助于即使 osd 利用率不足,也不增加 osd 权重。

--block

阻塞直到完成(仅限 scrub 和 deep-scrub)

可用性

ceph 是 Ceph 的一部分,Ceph 是一个可大规模扩展的开源分布式存储系统。有关详细信息,请参阅 Ceph 文档:https://docs.ceph.net.cn

另请参阅

ceph-mon(8), ceph-osd(8), ceph-mds(8)

由 Ceph 基金会为您呈现

Ceph 文档是由非营利性 Ceph 基金会 资助和托管的社区资源。如果您希望支持这项工作和我们的其他努力,请考虑 立即加入