注意
本文档适用于 Ceph 的开发版本。
cephadm -- 管理本地 cephadm 主机
概要
描述
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 按以下顺序查找配置。仅使用找到的第一个值:
用户提供的配置文件的显式路径(选项)
-c/--config
option)使用参数指定的守护进程配置文件(
--name
parameter (/var/lib/ceph/<fsid>/<daemon-name>/config
)/var/lib/ceph/<fsid>/config/ceph.conf
如果存在传统守护进程的配置文件)如果存在
mon
守护进程 (/var/lib/ceph/<fsid>/mon.<mon-id>/config
) if it exists最后:回退到默认文件
/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),