注意
本文档适用于 Ceph 的开发版本。
cephadm -- manage the local cephadm host
概要
描述
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 按以下顺序查找配置。只使用找到的第一个值
用户提供的明确配置文件路径(
-c/--config选项)由
--name参数指定的守护程序的配置文件(/var/lib/ceph/<fsid>/<daemon-name>/config)/var/lib/ceph/<fsid>/config/ceph.conf如果存在mon守护程序的配置文件(/var/lib/ceph/<fsid>/mon.<mon-id>/config)如果存在最后:回退到默认文件
/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),