注意

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

cephadm -- manage the local cephadm host

概要

cephadm** [-h] [--image IMAGE] [--docker] [--data-dir DATA_DIR]
[--log-dir LOG_DIR] [--logrotate-dir LOGROTATE_DIR]
[--unit-dir UNIT_DIR] [--verbose] [--timeout TIMEOUT]
[--retry RETRY] [--no-container-init]
{version,pull,inspect-image,ls,list-networks,adopt,rm-daemon,rm-cluster,run,shell,enter,ceph-volume,unit,logs,bootstrap,deploy,check-host,prepare-host,add-repo,rm-repo,install,list-images,update-osd-service}
cephadm pull
cephadm --image IMAGE_NAME inspect-image
cephadm ls [-h] [--no-detail] [--legacy-dir LEGACY_DIR]
cephadm list-networks
cephadm adopt [-h] --name NAME --style STYLE [--cluster CLUSTER]
[--legacy-dir LEGACY_DIR] [--config-json CONFIG_JSON]
[--skip-firewalld] [--skip-pull]
cephadm rm-daemon [-h] --name NAME --fsid FSID [--force]
[--force-delete-data]
cephadm rm-cluster [-h] --fsid FSID [--force]
cephadm run [-h] --name NAME --fsid FSID
cephadm shell [-h] [--fsid FSID] [--name NAME] [--config CONFIG] [--keyring KEYRING] --mount [MOUNT [MOUNT …]] [--env ENV] [--] [command [command …]]
cephadm enter [-h] [--fsid FSID] --name NAME [command [command …]]
cephadm ceph-volume [-h] [--fsid FSID] [--config-json CONFIG_JSON] [--config CONFIG] [--keyring KEYRING] command [command …]
cephadm unit [-h] [--fsid FSID] --name NAME command
cephadm logs [-h] [--fsid FSID] --name NAME [command [command …]]
cephadm bootstrap [-h] [--config CONFIG] [--mon-id MON_ID]
[--mon-addrv MON_ADDRV] [--mon-ip MON_IP]
[--mgr-id MGR_ID] [--fsid FSID]
[--log-to-file] [--single-host-defaults]
[--output-dir OUTPUT_DIR]
[--output-keyring OUTPUT_KEYRING]
[--output-config OUTPUT_CONFIG]
[--output-pub-ssh-key OUTPUT_PUB_SSH_KEY]
[--skip-ssh]
[--initial-dashboard-user INITIAL_DASHBOARD_USER]
[--initial-dashboard-password INITIAL_DASHBOARD_PASSWORD]
[--ssl-dashboard-port SSL_DASHBOARD_PORT]
[--dashboard-key DASHBOARD_KEY]
[--dashboard-crt DASHBOARD_CRT]
[--ssh-config SSH_CONFIG]
[--ssh-private-key SSH_PRIVATE_KEY]
[--ssh-public-key SSH_PUBLIC_KEY]
[--ssh-user SSH_USER] [--skip-mon-network]
[--skip-dashboard] [--dashboard-password-noupdate]
[--no-minimize-config] [--skip-ping-check]
[--skip-pull] [--skip-firewalld] [--allow-overwrite]
[--allow-fqdn-hostname] [--skip-prepare-host]
[--orphan-initial-daemons] [--skip-monitoring-stack]
[--apply-spec APPLY_SPEC]
[--registry-url REGISTRY_URL]
[--registry-username REGISTRY_USERNAME]
[--registry-password REGISTRY_PASSWORD]
[--registry-json REGISTRY_JSON]
cephadm deploy [-h] --name NAME --fsid FSID [--config CONFIG]
[--config-json CONFIG_JSON] [--keyring KEYRING]
[--key KEY] [--osd-fsid OSD_FSID] [--skip-firewalld]
[--tcp-ports TCP_PORTS] [--reconfig] [--allow-ptrace]
cephadm check-host [-h] [--expect-hostname EXPECT_HOSTNAME]
cephadm prepare-host
cephadm add-repo [-h] [--release RELEASE] [--version VERSION]
[--dev DEV] [--dev-commit DEV_COMMIT]
[--gpg-url GPG_URL] [--repo-url REPO_URL]
cephadm rm-repo
cephadm install [-h] [packages [packages …]]
cephadm registry-login [-h] [--registry-url REGISTRY_URL]
[--registry-username REGISTRY_USERNAME]
[--registry-password REGISTRY_PASSWORD]
[--registry-json REGISTRY_JSON] [--fsid FSID]
cephadm list-images
cephadm update-osd-service [-h] [--fsid FSID] --osd-ids OSD_IDS --service-name SERVICE_NAME

描述

cephadm 是一个命令行工具,用于管理 cephadm 编排器所在的本地主机。

它提供了用于调查和修改当前主机状态的命令。

cephadm 并非在所有主机上都是必需的,但在调查特定守护程序时很有用。

选项

--image IMAGE

容器镜像。也可以通过“CEPHADM_IMAGE”环境变量设置(默认值:None)

--docker

使用 docker 而不是 podman(默认值:False)

--data-dir DATA_DIR

守护程序数据的基本目录(默认值:/var/lib/ceph)

--log-dir LOG_DIR

守护程序日志的基本目录(默认值:/var/log/ceph)

--logrotate-dir LOGROTATE_DIR

logrotate 配置文件的位置(默认值:/etc/logrotate.d)

--unit-dir UNIT_DIR

systemd 单元的基本目录(默认值:/etc/systemd/system)

--verbose, -v

显示调试级别日志消息(默认值:False)

--timeout TIMEOUT

超时时间(秒)(默认值:None)

--retry RETRY

最大重试次数(默认值:10)

--no-container-init

不使用 --init 运行 podman/docker(默认值:False)

命令

add-repo

配置本地软件包仓库以包含 ceph 仓库。

参数

  • [--release RELEASE] 使用指定发行版的最新版本(例如 octopus)

  • [--version VERSION] 使用特定的上游版本(x.y.z)

  • [--dev DEV] 使用 git 分支或标签中指定的最新构建版本

  • [--dev-commit DEV_COMMIT] 使用 git 提交中指定的最新构建版本

  • [--gpg-url GPG_URL] 指定备用 GPG 密钥位置

  • [--repo-url REPO_URL] 指定备用仓库位置

adopt

采用使用不同部署工具部署的守护程序。

参数

  • [--name NAME, -n NAME] 守护程序名称 (type.id)

  • [--style STYLE] 部署方式 (legacy, …)

  • [--cluster CLUSTER] 集群名称

  • [--legacy-dir LEGACY_DIR] 传统守护程序数据的基本目录

  • [--config-json CONFIG_JSON] JSON 格式的额外配置信息

  • [--skip-firewalld] 不配置 firewalld

  • [--skip-pull] 在采用之前不拉取最新镜像

配置

启动 shell 时,cephadm 按以下顺序查找配置。只使用找到的第一个值

  1. 用户提供的明确配置文件路径(-c/--config 选项)

  2. --name 参数指定的守护程序的配置文件(/var/lib/ceph/<fsid>/<daemon-name>/config

  3. /var/lib/ceph/<fsid>/config/ceph.conf 如果存在

  4. mon 守护程序的配置文件(/var/lib/ceph/<fsid>/mon.<mon-id>/config)如果存在

  5. 最后:回退到默认文件 /etc/ceph/ceph.conf

bootstrap

在本地主机上引导集群。它部署一个 MON 和一个 MGR,然后还会自动在此主机上部署监控堆栈(参见 --skip-monitoring-stack)并调用 ceph orch host add $(hostname)(参见 --skip-ssh)。

参数

  • [--config CONFIG, -c CONFIG] 要合并的 ceph 配置文件

  • [--mon-id MON_ID] mon id(默认值:本地主机名)

  • [--mon-addrv MON_ADDRV] mon IP(例如 [v2:localipaddr:3300,v1:localipaddr:6789])

  • [--mon-ip MON_IP] mon IP

  • [--mgr-id MGR_ID] mgr id(默认值:随机生成)

  • [--fsid FSID] 集群 FSID

  • [--log-to-file] 配置集群以记录到传统日志文件

  • [--single-host-defaults] 配置集群在单个主机上运行

  • [--output-dir OUTPUT_DIR] 写入配置、密钥环和公钥文件的目录

  • [--output-keyring OUTPUT_KEYRING] 写入包含新集群管理员和 mon 密钥的密钥环文件的位置

  • [--output-config OUTPUT_CONFIG] 写入用于连接到新集群的配置文件的位置

  • [--output-pub-ssh-key OUTPUT_PUB_SSH_KEY] 写入集群公共 SSH 密钥的位置

  • [--skip-ssh skip setup of ssh key on local host

  • [--initial-dashboard-user INITIAL_DASHBOARD_USER] 仪表板的初始用户

  • [--initial-dashboard-password INITIAL_DASHBOARD_PASSWORD] 初始仪表板用户的初始密码

  • [--ssl-dashboard-port SSL_DASHBOARD_PORT] 使用 SSL 连接仪表板时使用的端口号

  • [--dashboard-key DASHBOARD_KEY] 仪表板密钥

  • [--dashboard-crt DASHBOARD_CRT] 仪表板证书

  • [--ssh-config SSH_CONFIG] SSH 配置

  • [--ssh-private-key SSH_PRIVATE_KEY] SSH 私钥

  • [--ssh-public-key SSH_PUBLIC_KEY] SSH 公钥

  • [--ssh-user SSH_USER] 设置用于 SSH 到集群主机的用户,非 root 用户将需要无密码 sudo

  • [--skip-mon-network] 根据引导 mon ip 设置 mon public_network

  • [--skip-dashboard] 不启用 Ceph Dashboard

  • [--dashboard-password-noupdate] 阻止强制仪表板密码更改

  • [--no-minimize-config] 不同化和最小化配置文件

  • [--skip-ping-check] 不验证 mon IP 是否可 ping

  • [--skip-pull] 在引导之前不拉取最新镜像

  • [--skip-firewalld] 不配置 firewalld

  • [--allow-overwrite] 允许覆盖现有的 --output-* 配置/密钥环/ssh 文件

  • [--allow-fqdn-hostname] 允许完全限定的主机名(包含“.”)

  • [--skip-prepare-host] 不准备主机

  • [--orphan-initial-daemons] 将 mon 和 mgr 服务设置为非托管,不创建 crash 服务

  • [--skip-monitoring-stack] 不自动配置监控堆栈(prometheus、grafana、alertmanager、node-exporter)

  • [--apply-spec APPLY_SPEC] 引导后应用集群规范(复制 ssh 密钥、添加主机和应用服务)

  • [--registry-url REGISTRY_URL] 自定义注册表的 url,用于登录。例如 docker.io, quay.io

  • [--registry-username REGISTRY_USERNAME] 登录自定义注册表的帐户用户名

  • [--registry-password REGISTRY_PASSWORD] 登录自定义注册表的帐户密码

  • [--registry-json REGISTRY_JSON] 包含注册表登录信息的 JSON 文件(参见 registry-login 命令文档)

ceph-volume

在容器内运行 ceph-volume

cephadm ceph-volume inventory

位置参数: * [command] 命令

参数

  • [--fsid FSID] 集群 FSID

  • [--config-json CONFIG_JSON] 包含配置和 (client.bootstrap-osd) 密钥的 JSON 文件

  • [--config CONFIG, -c CONFIG] ceph 配置文件

  • [--keyring KEYRING, -k KEYRING] 要传递给容器的 ceph.keyring

check-host

检查主机配置是否适合 Ceph 集群。

参数

  • [--expect-hostname EXPECT_HOSTNAME] 检查主机名是否与预期值匹配

deploy

在本地主机上部署守护程序。由编排器 CLI 使用

cephadm shell -- ceph orch apply <type> ...

参数

  • [--name NAME] 守护程序名称 (type.id)

  • [--fsid FSID] 集群 FSID

  • [--config CONFIG, -c CONFIG] 新守护程序的配置文件

  • [--config-json CONFIG_JSON] JSON 格式的额外配置信息

  • [--keyring KEYRING] 新守护程序的密钥环

  • [--key KEY] 新守护程序的密钥

  • [--osd-fsid OSD_FSID] OSD uuid,如果正在创建 OSD 容器

  • [--skip-firewalld] 不配置 firewalld

  • [--tcp-ports List of tcp ports to open in the host firewall

  • [--reconfig] 重新配置先前部署的守护程序

  • [--allow-ptrace] 允许在守护程序容器上使用 SYS_PTRACE

enter

在正在运行的守护程序容器内运行交互式 shell

cephadm enter --name mgr.myhost.ysubfo

位置参数: * [command] 命令

参数

  • [--fsid FSID] 集群 FSID

  • [--name NAME, -n NAME] 守护程序名称 (type.id)

install

安装 ceph 软件包

位置参数

  • [packages] 软件包

inspect-image

检查本地 Ceph 容器镜像。从 Reef 开始,需要使用 --image 指定要检查的镜像

cephadm --image IMAGE_NAME inspect-image

list-networks

列出 IP 网络

ls

列出 cephadm 在**此**主机上知道的守护程序实例

$ cephadm ls
[
    {
        "style": "cephadm:v1",
        "name": "mgr.storage-14b-1.ysubfo",
        "fsid": "5110cb22-8332-11ea-9148-0894ef7e8bdc",
        "enabled": true,
        "state": "running",
        "container_id": "8562de72370a3836473ecfff8a22c9ccdd99815386b4692a2b30924fb5493c44",
        "container_image_name": "docker.io/ceph/ceph:v15",
        "container_image_id": "bc83a388465f0568dab4501fb7684398dca8b50ca12a342a57f21815721723c2",
        "version": "15.2.1",
        "started": "2020-04-21T01:16:41.831456",
        "created": "2020-04-21T01:16:41.775024",
        "deployed": "2020-04-21T01:16:41.415021",
        "configured": "2020-04-21T01:16:41.775024"
    },
...

参数

  • [--no-detail] 不包括守护程序状态

  • [--legacy-dir LEGACY_DIR] 传统守护程序数据的基本目录

logs

打印守护程序容器的 journald 日志

cephadm logs --name mgr.myhost.ysubfo

这类似于

journalctl -u mgr.myhost.ysubfo

还可以指定额外的 journald 参数

cephadm logs --name mgr.myhost.ysubfo -- -n 20 # last 20 lines
cephadm logs --name mgr.myhost.ysubfo -- -f # follow the log

位置参数

  • [command] 命令(可选)

参数

  • [--fsid FSID] 集群 FSID

  • [--name NAME, -n NAME] 守护程序名称 (type.id)

prepare-host

为 cephadm 使用准备主机

参数

  • [--expect-hostname EXPECT_HOSTNAME] 设置主机名

pull

拉取 ceph 镜像

cephadm pull

registry-login

向 cephadm 提供经过身份验证的注册表(url、用户名和密码)的登录信息。cephadm 将尝试将调用主机登录到该注册表

cephadm registry-login --registry-url [REGISTRY_URL] --registry-username [USERNAME]
                       --registry-password [PASSWORD]

也可以使用包含登录信息的 JSON 文件,格式如下

{
 "url":"REGISTRY_URL",
 "username":"REGISTRY_USERNAME",
 "password":"REGISTRY_PASSWORD"
}

对于多个注册表登录,请参考以下格式

{
  "registry_credentials": [
    {
      "url": "REGISTRY_URL1",
      "username": "REGISTRY_USERNAME1",
      "password": "REGISTRY_PASSWORD1"
    },
    {
      "url": "REGISTRY_URL2",
      "username": "REGISTRY_USERNAME2",
      "password": "REGISTRY_PASSWORD2"
    }
  ]
}

并通过命令提交

cephadm registry-login --registry-json [JSON FILE]

参数

  • [--registry-url REGISTRY_URL] 要登录的注册表的 url。例如 docker.io, quay.io

  • [--registry-username REGISTRY_USERNAME] 登录注册表的帐户用户名

  • [--registry-password REGISTRY_PASSWORD] 登录注册表的帐户密码

  • [--registry-json REGISTRY_JSON] 包含自定义注册表登录信息的 JSON 文件

  • [--fsid FSID] 集群 FSID

rm-daemon

删除特定的守护程序实例

参数

  • [--name NAME, -n NAME] 守护程序名称 (type.id)

  • [--fsid FSID] 集群 FSID

  • [--force] 继续,即使这可能会销毁有价值的数据

  • [--force-delete-data] 删除有价值的守护程序数据而不是创建备份

rm-cluster

删除集群的所有守护程序

参数

  • [--fsid FSID] 集群 FSID

  • [--force] 继续,即使这可能会销毁有价值的数据

rm-repo

删除软件包仓库配置

run

在前台容器中运行 ceph 守护程序

参数

  • [--name NAME, -n NAME] 守护程序名称 (type.id)

  • [--fsid FSID] 集群 FSID

shell

运行交互式 shell

cephadm shell

或在容器内运行一个特定命令

cephadm shell -- ceph orch ls

位置参数

  • [command] 命令(可选)

参数

  • [--fsid FSID] 集群 FSID

  • [--name NAME, -n NAME] 守护程序名称 (type.id)

  • [--config CONFIG, -c CONFIG] 要传递给容器的 ceph.conf

  • [--keyring KEYRING, -k KEYRING] 要传递给容器的 ceph.keyring

  • [--mount MOUNT, -m MOUNT] 将文件或目录挂载到容器中的 /mnt 下

  • [--env ENV, -e ENV] 设置环境变量

unit

对守护程序的 systemd 单元进行操作。

位置参数

  • [command] systemd 命令(start、stop、restart、enable、disable 等)

参数

  • [--fsid FSID] 集群 FSID

  • [--name NAME, -n NAME] 守护程序名称 (type.id)

list-images

以 ini 格式列出所有服务的默认容器镜像。输出可以通过自定义镜像进行修改,并在引导期间传递给 --config 标志。

update-osd-service

更新特定 OSD 的 OSD 服务

参数

  • [--fsid FSID] 集群 FSID

  • --osd-ids OSD_IDS

    逗号分隔的 OSD ID

  • --service-name SERVICE_NAME

    OSD 服务名称

可用性

cephadm 是 Ceph 的一部分,Ceph 是一个可大规模扩展的开源分布式存储系统。请参阅 https://docs.ceph.net.cn/ 获取更多信息。

另请参阅

ceph-volume(8),

由 Ceph 基金会为您呈现

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