注意

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

cephadm -- 管理本地 cephadm 主机

概要

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_NAMEinspect-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]
cephadm enter[-h] [--fsid FSID] --name NAME [command [command …]]
cephadm ceph-volume[-h] [--fsid FSID] [--config-json CONFIG_JSON]
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”环境变量设置(默认:无)

--docker

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

--data-dir DATA_DIR

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

--log-dir LOG_DIR

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

--logrotate-dir LOGROTATE_DIR

日志轮转配置文件的位置(默认:/etc/logrotate.d)

--unit-dir UNIT_DIR

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

--详细, -v

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

--timeout TIMEOUT

秒级超时(默认:无)

--retry RETRY

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

--no-container-init

不要运行 podman/docker--init(默认:False)

Commands

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] 守护进程名称(类型.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 option)

  2. 使用参数指定的守护进程配置文件(--name parameter (/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) if it exists

  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 跳过在本地主机上设置 ssh 密钥

  • [--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] 基于 bootstrap mon ip 设置 mon public_network

  • [--skip-dashboard] 不要启用 Ceph 仪表板

  • [--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

位置参数:

参数:

  • [--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] 守护进程名称(类型.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 在主机防火墙中打开的 tcp 端口列表

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

  • [--allow-ptrace] 允许守护进程容器中的 SYS_PTRACE

enter

在运行的守护进程容器中运行交互式 shell:

cephadm enter --name mgr.myhost.ysubfo

位置参数:

参数:

  • [--fsid FSID] 集群 FSID

  • [--name NAME, -n NAME] 守护进程名称(类型.id)

install

安装 ceph 软件包

位置参数:

  • [packages] 软件包

inspect-image

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

cephadm --image IMAGE_NAME inspect-image

list-networks

列出 IP 网络

ls

列出 cephadm 在此主机上已知的守护进程实例:宿主: host:

$ 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

也可以指定额外的 journal 参数:

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] 守护进程名称(类型.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"
}

并使用命令:

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] 守护进程名称(类型.id)

  • [--fsid FSID] 集群 FSID

  • [--force] 即使这可能破坏有价值的数据也要继续

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

rm-cluster

删除集群的所有守护进程

参数:

  • [--fsid FSID] 集群 FSID

  • [--force] 即使这可能破坏有价值的数据也要继续

rm-repo

删除软件仓库配置

run

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

参数:

  • [--name NAME, -n NAME] 守护进程名称(类型.id)

  • [--fsid FSID] 集群 FSID

shell

运行交互式 shell:

cephadm shell

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

cephadm shell -- ceph orch ls

位置参数:

  • [command] 命令(可选)

参数:

  • [--fsid FSID] 集群 FSID

  • [--name NAME, -n NAME] 守护进程名称(类型.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] 守护进程名称(类型.id)

list-images

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

update-osd-service

更新特定 OSD 的 OSD 服务

参数:

  • [--fsid FSID] 集群 FSID

  • --osd-idsOSD_IDS

    以逗号分隔的 OSD ID

  • --service-nameSERVICE_NAME

    OSD 服务名称

可用性

cephadm是 Ceph 的一部分,Ceph 是一个可扩展性极强的、开源的分布式存储系统。请参考http://docs.ceph.com/中的Ceph文档以获取更多信息。

参见

ceph-volume(8),

由 Ceph 基金会提供

Ceph 文档是一个由非盈利Ceph 基金会资助和托管的社会资源。如果您想支持此项目和其他工作,请考虑现在加入.