Ceph 分布式存储 集群配置
管理集群配置
Ceph 集群配置概述
Ceph 配置选项具有唯一名称,该名称由下划线连接的小写字符组成。有些配置选项会包含短划线(中横
杠)或空格字符。推荐做法:使用下划线。
Ceph 守护进程会从以下某个来源访问其配置:
- 编译中的默认值
- 集中配置数据库
- 存储在本地主机上的配置文件
- 环境变量
- 命令行参数
- 运行时覆盖
当存在多个设置源时,配置生效原则:
- 较新设置将覆盖较早设置源中的设置。
- 配置文件会在启动时配置守护进程。
- 配置文件设置会覆盖存储在中央数据库中的设置。
- 监控器 (MON) 节点管理集中配置数据库。
生效过程:
- 启动时,Ceph 守护进程解析命令行选项、环境变量和本地集群配置文件提供的配置选项。
- 然后,守护进程会联系 MON 集群来检索存储在集中配置数据库中的配置选项。
**注意:**Ceph 存储优先使用集中配置数据库中配置,弃用 ceph.conf 集群配置文件。
修改集群配置文件
Ceph会去以下目录中查找集群相关配置文件:
- CEPH_CONF 环境变量中包含的路径-c path/path:由命令行参数"-c"指定的路径
- ./$cluster.conf
- ~/.ceph/$cluster.conf
- /etc/ceph/$cluster.conf,默认位置。
每个 Ceph 节点都会存储一个本地配置文件,默认位置是 用最小选项集创建初始 Ceph 配置文件。/etc/ceph/ceph.conf 。cephadm 工具会使。
配置文件采用 INI 文件格式,其中内容涵盖 Ceph 守护进程和客户端配置。每个部分都使用 name 标头定义的名称,以及一个或多个键值对参数。
bash
[name]
parameter1 = value1
parameter2 = value2
使用井号 (#) 或分号 (😉 禁用设置或添加注释。
在引导集群时,可以借助集群配置文件,自定义引导集群。
示例:
bash
# cephadm bootstrap --config ceph-config.yaml
配置部分
Ceph 使用所应用的守护进程或客户端的部分,将配置选项分组,确定是存储在配置文件中还是存储在配
置数据库中。
- global 部分,存储所有守护进程(包括客户端)共有的一般配置,可为单个守护进程或客户端创
建调用部分来覆盖 global 参数。 - mon 部分,存储监控器 (MON) 的配置。
- osd 部分,存储 OSD 守护进程的配置。
- mgr 部分,存储管理器 (MGR) 的配置。
- mds 部分,存储元数据服务器 (MDS) 的配置。
- client 部分,存储应用到所有 Ceph 客户客户端的配置。
良好的示例文件参见 usr/share/doc/ceph/sample.ceph.conf ,该文件由 ceph-common 软件包提供。
实例设置
实例设置适用于特定守护进程,名称格式为:daemon-type.instance-ID 。
bash
[mon]
# Settings for all mon daemons
[mon.ceph1]
# Settings that apply to the specific MON daemon running on ceph1
同样的名称还适用于 osd、mgr、mds 和 client 部分。
- OSD 守护进程的实例 ID 始终为数字,例如 osd.0。
- 客户端的实例 ID 是有效的用户名,例如 client.operator3。
元变量
元变量是由 Ceph 定义的变量。用户可使用它们来简化配置。
- $cluster,Ceph 存储 5 集群的名称。默认集群名称为 ceph。
- $type,守护进程类型,如监控器的值为 mon。OSD 使用 osd,元数据服务器使用 mds,管理器
使用 mgr,客户端软件使用 client。 - id,守护进程实例 ID。对于此变量,ceph1 上监控器的值为 ceph1。osd.1 的 id 值为 1 ,客户
端应用的值为用户名。 - $name,守护进程名称和实例 ID。此变量是 type.type.type.id 的简写。
- $host,运行守护进程的主机的名称。
bash
## Metavariables
# $cluster ; Expands to the Ceph Storage Cluster name. Useful
# ; when running multiple Ceph Storage Clusters
# ; on the same hardware
# ; Example: /etc/ceph/$cluster.keyring
# ; (Default: ceph)
#
# $type ; Expands to one of mds, osd, or mon, depending on
# ; the type of the instant daemon.
# ; Example: /var/lib/ceph/$type
#
# $id ; Expands to the daemon identifier. For osd.0, this
# ; would be 0; for mds.a, it would be a.
# ; Example: /var/lib/ceph/$type/$cluster-$id
#
# $host ; Expands to the host name of the instant daemon.
#
# $name ; Expands to $type.$id
# ; Example: /var/run/ceph/$cluster-$name.asok
使用集群配置数据库
集群配置数据库由 MON 节点集中管理:
- 在守护进程启动之前,暂时更改设置。
- 在守护进程运行时,更改大部分设置。
- 将永久设置存储在数据库中。
Ceph集中配置数据库默认存放在 MON 节点 /var/lib/ceph/fsid/mon.fsid/mon.fsid/mon.host/store.db中。使用 ceph config 命令,查询和配置集中配置数据库。
ceph config ls
列出集群数据库中所有配置条目。
bash
[root@ceph1 ~]# ceph config ls
host
fsid
public_addr
public_addrv
public_bind_addr
cluster_addr
public_network
public_network_interface
cluster_network
cluster_network_interface
......
ceph config help
查看集群数据库中特定配置帮助信息。 是 ceph config ls 命令列出的条目。
bash
[root@ceph1 ~]# ceph config help host
host - local hostname
(str, basic)
Default:
Can update at runtime: false
Services: [common]
Tags: [network]
if blank, ceph assumes the short hostname (hostname -s)
[root@ceph1 ~]# ceph config help fsid
fsid - cluster fsid (uuid)
(uuid, basic)
Default: 00000000-0000-0000-0000-000000000000
Can update at runtime: false
Services: [common]
Tags: [service]
ceph config dump
显示集群配置数据库设置。显示的是当前所有生效的配置项(包括默认值和已被修改的值)
ceph config dump 显示的是:
- 所有被显式设置过(通过 ceph config set 或旧版 ceph.conf )的配置项;
- 不显示纯默认值(即从未被设置、完全使用 Ceph 内置默认的配置项)。
bash
[root@ceph1 ~]# ceph config dump
ceph config show type.type.type.id
仅显示被显式设置过的配置项 (即非默认值), 查看"用户自定义了哪些配置"
只列出通过以下方式显式设置过的配置:
- ceph config set ...
- 旧版 ceph.conf 中定义并被加载的项-
bash
[root@ceph1 ~]# ceph config show mon.ceph1.laogao.cloud
[root@ceph1 ~]# ceph config show mon.ceph1.laogao.cloud public_network
192.168.108.0/24
ceph config show-with-defaults type.type.type.id
显示所有配置项 + 当前值(包括默认值),查看"完整运行时配置",用于排错或审计
- **列出 Ceph 支持的所有可配置项(**数百项!)
- 每一项都显示其 当前生效的值(无论是默认值还是被覆盖的值)
- 用于全面了解集群的完整配置状态
bash
[root@ceph1 ~]# ceph config show-with-defaults mon.ceph1.laogao.cloud
NAME VALUE
admin_socket
$run_dir/$cluster-$name.asok
admin_socket_mode
auth_allow_insecure_global_id_reclaim false
ceph config get type.type.type.id \[\]
设置集群数据库中特定配置选项。
工作原理:
- 修改 Monitor 维护的 集中式配置数据库
- 所有符合条件的 daemon(如所有 OSD)会自动拉取新配置并应用
- 配置持久存储在 Monitor 的 KV store 中
bash
# 设置特定类型所有实例
[root@ceph1 ~]# ceph config set mon mon_allow_pool_delete false
# 设置特定类型特定实例
[root@ceph1 ~]# ceph config set mon.ceph1.laogao.cloud mon_allow_pool_delete true
[root@ceph1 ~]# ceph config get mon.ceph1.laogao.cloud mon_allow_pool_delete
true
ceph config rm type.type.type.id \[\]
清除集群数据库中特定配置选项。--删除该参数还原默认配置的意思
bash
[root@ceph1 ~]# ceph config rm mon.ceph1.laogao.cloud mon_allow_pool_delete
[root@ceph1 ~]# ceph config get mon.ceph1.laogao.cloud mon_allow_pool_delete
false
ceph config log num:int
显示集群最近配置历史记录,默认显示10条,类似于linux中history命令。
bash
[root@ceph1 ~]# ceph config log--- 16 --- 2025-08-19T08:08:00.450868+0000 ---- mon.ceph1.laogao.cloud/mon_allow_pool_delete = true--- 15 --- 2025-08-19T08:07:01.547157+0000 --
+ mon.ceph1.laogao.cloud/mon_allow_pool_delete = true--- 14 --- 2025-08-19T08:05:20.097053+0000 --
+ mon/mon_allow_pool_delete = false
......
# 只显示最近更改的两条记录
[root@ceph1 ~]# ceph config log 2--- 16 --- 2025-08-19T08:08:00.450868+0000 ---- mon.ceph1.laogao.cloud/mon_allow_pool_delete = true--- 15 --- 2025-08-19T08:07:01.547157+0000 --
+ mon.ceph1.laogao.cloud/mon_allow_pool_delete = true
ceph config reset num:int
回滚集群数据中特定配置为 num 指定的历史版本。
准备实验环境:
bash
[root@ceph1 ~]# ceph config set mon.ceph1.laogao.cloud mon_allow_pool_delete true
#产生log 20记录
[root@ceph1 ~]# ceph config set mon.ceph1.laogao.cloud mon_allow_pool_delete
false
#产生log 21记录
[root@ceph1 ~]# ceph config get mon.ceph1.laogao.cloud mon_allow_pool_delete
false
#此刻为false
[root@ceph1 ~]# ceph config log 2--- 21 --- 2025-08-19T08:23:11.722223+0000 ---- mon.ceph1.laogao.cloud/mon_allow_pool_delete = true
+ mon.ceph1.laogao.cloud/mon_allow_pool_delete = false--- 20 --- 2025-08-19T08:23:07.709101+0000 ---- mon.ceph1.laogao.cloud/mon_allow_pool_delete = false
+ mon.ceph1.laogao.cloud/mon_allow_pool_delete = true
回滚配置到log 20的版本
bash
[root@ceph1 ~]# ceph config reset 20
[root@ceph1 ~]# ceph config get mon.ceph1.laogao.cloud mon_allow_pool_delete #
验证回到log 20的true
true
[root@ceph1 ~]# ceph config log 1--- 22 --- 2025-08-19T08:25:27.045753+0000 --- reset to 20 ---
#从22回滚到20- mon.ceph1.laogao.cloud/mon_allow_pool_delete = false
+ mon.ceph1.laogao.cloud/mon_allow_pool_delete = true
集群引导选项
集群引导选项提供启动集群所需的信息。MON 读取 monmap 和 ceph.conf 文件,以确定如何与其他
MON 通信,并与其他 MON 并建立仲裁。
mon_ip 选项列出集群监控器。此选项必不可少,并且不能存储在配置数据库中 。为避免使用集群配置文
件,Ceph 集群支持使用 DNS 服务记录提供 mon_host 列表。
本地集群配置文件 ceph.conf 还可包含其他选项:
- **mon_host_override,**集群监视器的初始列表。
- mon_dns_serv_name,用于检查通过 DNS 识别的集群监控器的 DNS SRV 记录的名称。
- **mon_data、osd_data、mds_data、mgr_data,**定义守护进程的本地数据存储目录。
- **keyring、keyfile 和 key,**使用监控器进行身份验证的身份验证凭据。
在运行时覆盖配置设置
Ceph支持在守护进程运行时,临时更改大部分配置选项。
ceph tell 命令
向 daemon "发消息"
工作原理:
- 直接与指定的运行中 daemon 通信(通过 admin socket 或网络)
- 常用于执行管理命令(如 compact leveldb、flush cache)
- 若用于配置,需通过 injectargs 模拟"启动参数"
ceph tell type.type.type.id config 命令可临时 覆盖配置选项,并要求所配置的MON和守护进程都在运
行。
- ceph tell type.type.type.id config show,获取守护进程的所有运行时设置。
- ceph tell type.type.type.id config get,获取守护进程的特定运行时设置。
- ceph tell type.type.type.id config set,设置守护进程的特定运行时设置。当守护进程重启时,这些临时设置将恢复为原始值。
示例:
bash
[root@ceph1 ~]# ceph tell mon.ceph1.laogao.cloud config get mon_allow_pool_delete
{
"mon_allow_pool_delete": "true"
}
[root@ceph1 ~]# ceph tell mon.ceph1.laogao.cloud config set mon_allow_pool_delete
false
{
"success": "mon_allow_pool_delete = 'false' "
}
# 临时更改的值已生效
[root@ceph1 ~]# ceph tell mon.ceph1.laogao.cloud config get mon_allow_pool_delete
{
"mon_allow_pool_delete": "false"
}
# 集群数据库中值仍然为true
[root@ceph1 ~]# ceph config get mon.ceph1.laogao.cloud mon_allow_pool_delete
true
# 重启守护进程,生效的值恢复为数据库中设置的值
[root@ceph1 ~]# ceph orch daemon restart mon.ceph1.laogao.cloud
Scheduled to restart mon.ceph1.laogao.cloud on host 'ceph1.laogao.cloud'
[root@ceph1 ~]# ceph tell mon.ceph1.laogao.cloud config get mon_allow_pool_delete
{
"mon_allow_pool_delete": "true"
}
注意:使用此命令更改的设置在守护进程重启后会恢复为原始设置。
ceph tell type.type.type.id config 命令接受通配符,以获取或设置同一类型的所有守护进程的值。
bash
[root@ceph1 ~]# ceph tell mon.* config get mon_allow_pool_delete
mon.ceph1.laogao.cloud: {
"mon_allow_pool_delete": "true"
}
mon.ceph2: {
"mon_allow_pool_delete": "false"
}
mon.ceph3: {
"mon_allow_pool_delete": "false"
}
ceph daemon 命令
Ceph支持在集群特定节点上使用 ceph daemon type.type.type.id config 命令临时覆盖配置选项。该命令不
需要连接 MON ,但要求对应的守护进程要运行,所以即使 MON 未运行,该命令仍可发挥作用,有助
于故障排除。
- ceph daemon type.type.type.id config show ,获得特定守护进程运行时所有设置。
bash
# 在ceph1上只能查看和设置ceph1上运行的相关进程设置
[root@ceph1 ~]# cephadm shell
[ceph: root@ceph1 /]# ceph daemon mon.ceph1.laogao.cloud config show
{
"name": "mon.ceph1.laogao.cloud",
"cluster": "ceph",
"admin_socket": "/var/run/ceph/ceph-mon.ceph1.laogao.cloud.asok",
"admin_socket_mode": "",
"auth_allow_insecure_global_id_reclaim": "false",
"auth_client_required": "cephx, none",
"auth_cluster_required": "cephx",
"auth_debug": "false",
"auth_expose_insecure_global_id_reclaim": "true",
"auth_mon_ticket_ttl": "259200.000000",
"auth_service_required": "cephx",
......
- ceph daemon type.type.type.id config get ,获得守护进程运行时特定设置。
bash
[ceph: root@ceph1 /]# ceph daemon mon.ceph1.laogao.cloud config get
mon_allow_pool_delete
{
"mon_allow_pool_delete": "true"
}
- ceph daemon type.type.type.id config set ,设置守护进程运行时特定设置。
bash
[ceph: root@ceph1 /]# ceph daemon mon.ceph1.laogao.cloud config set
mon_allow_pool_delete false
{
"success": "mon_allow_pool_delete = 'false' "
}
[ceph: root@ceph1 /]# ceph daemon mon.ceph1.laogao.cloud config get
mon_allow_pool_delete
{
"mon_allow_pool_delete": "false"
}
注意:使用此命令更改的设置在守护进程重启后会恢复为原始设置。
bash
[ceph: root@ceph1 /]# ceph orch daemon restart mon.ceph1.laogao.cloud
Scheduled to restart mon.ceph1.laogao.cloud on host 'ceph1.laogao.cloud'
[ceph: root@ceph1 /]# ceph daemon mon.ceph1.laogao.cloud config get
mon_allow_pool_delete
{
"mon_allow_pool_delete": "true"
}
配置集群监控器 Monitor
配置 Ceph 监控器
Ceph监控器(MON)存储和维护客户端用于查找MON和OSD节点的集群映射。Ceph客户端必须连接到
MON以检索集群映射,然后才能读取或写入任何数据到OSD。因此,正确配置集群MON至关重要。
MON 采用 一种 Paxos 变体算法来选举领导者,在分布式计算机集之间达成一致。
各MON分别具有以下其中一个角色:
- **Leader:**第一个获得集群映射最新版本的 MON。
- **Provider:**拥有最新版本的集群映射,但不是 Leader 的 MON。
- **Requester:**没有最新版本的集群映射,必须先与 Provider 同步,然后才能重新加入仲裁的 MON。
**一旦有新的 MON 加入集群,便会进行同步。**每个 MON 都会定期检查相邻监控器是否已有更新版本的
集群映射。如果相邻 MON 具有新版本的集群映射,则必须同步并获取相应集群映射。
**集群中的大多数 MON 必须处于运行状态,以建立仲裁。**例如,如果部署了五个 MON,则必须运行三个
才能建立仲裁。**在生产 Ceph 集群中至少部署三个 MON 节点,以确保高可用性。**Ceph 支持在运行中的
集群中添加或删除 MON。
集群配置文件 mon 块中 mon_host 定义 MON 主机 IP 地址(或 DNS 名称)和端口。cephadm 工具
不会更新集群配置文件,可以通过第三方工具,例如rsync,让集群配置文件在集群节点之间保持同步的
策略。
bash
[global]
fsid = 2faf683a-7cbf-11f0-b5ba-000c29e0ad0e
mon_host = [v2:192.168.108.11:3300/0,v1:192.168.108.11:6789/0]
[v2:192.168.108.12:3300/0,v1:192.168.108.12:6789/0]
[v2:192.168.108.13:3300/0,v1:192.168.108.13:6789/0]
**重要:**在集群部署和运行期间,建议不要更改 MON 节点 IP 地址。
查看监控器仲裁
- ceph status 命令,检查 MON 仲裁状态。
bash
[root@ceph1 ~]# ceph status | grep mon
mon: 3 daemons, quorum ceph1.laogao.cloud,ceph2,ceph3 (age 11m)
- ceph mon stat 命令,检查 MON 仲裁状态。
bash
[root@ceph1 ceph]# ceph mon stat
e3: 3 mons at {ceph1.laogao.cloud=
[v2:192.168.108.11:3300/0,v1:192.168.108.11:6789/0],
ceph2=[v2:192.168.108.12:3300/0,v1:192.168.108.12:6789/0],
ceph3=[v2:192.168.108.13:3300/0,v1:192.168.108.13:6789/0]} removed_ranks: {},
election epoch 16,
leader 0 ceph1.laogao.cloud, quorum 0,1,2 ceph1.laogao.cloud,ceph2,ceph3
- ceph quorum_status -f json-pretty 命令,友好的 json 格式输出 MON 仲裁状态。
bash
[root@ceph1 ~]# ceph quorum_status -f json-pretty
{
"election_epoch": 16,
"quorum": [
0,
1,
2
],
"quorum_names": [
"ceph1.laogao.cloud",
"ceph2",
"ceph3"
],
"quorum_leader_name": "ceph1.laogao.cloud",
"quorum_age": 869,
"features": {
"quorum_con": "4540138314316775423",
"quorum_mon": [
"kraken",
"luminous",
"mimic",
"osdmap-prune",
"nautilus",
"octopus",
"pacific",
"elector-pinging"
]
},
"monmap": {
"epoch": 3,
"fsid": "2faf683a-7cbf-11f0-b5ba-000c29e0ad0e",
"modified": "2025-08-19T05:51:46.573105Z",
"created": "2025-08-19T05:41:50.650957Z",
"min_mon_release": 16,
"min_mon_release_name": "pacific",
"election_strategy": 1,
"disallowed_leaders: ": "",
"stretch_mode": false,
"tiebreaker_mon": "",
"removed_ranks: ": "",
"features": {
"persistent": [
"kraken",
"luminous",
"mimic",
"osdmap-prune",
"nautilus",
"octopus",
"pacific",
"elector-pinging"
],
"optional": []
},
"mons": [
{
"rank": 0,
"name": "ceph1.laogao.cloud",
"public_addrs": {
"addrvec": [
{
"type": "v2",
"addr": "192.168.108.11:3300",
"nonce": 0
},
{
"type": "v1",
"addr": "192.168.108.11:6789",
"nonce": 0
}
]
},
"addr": "192.168.108.11:6789/0",
"public_addr": "192.168.108.11:6789/0",
"priority": 0,
"weight": 0,
"crush_location": "{}"
},
{
"rank": 1,
"name": "ceph2",
"public_addrs": {
"addrvec": [
{
"type": "v2",
"addr": "192.168.108.12:3300",
"nonce": 0
},
{
"type": "v1",
"addr": "192.168.108.12:6789",
"nonce": 0
}
]
},
"addr": "192.168.108.12:6789/0",
"public_addr": "192.168.108.12:6789/0",
"priority": 0,
"weight": 0,
"crush_location": "{}"
},
{
"rank": 2,
"name": "ceph3",
"public_addrs": {
"addrvec": [
{
"type": "v2",
"addr": "192.168.108.13:3300",
"nonce": 0
},
{
"type": "v1",
"addr": "192.168.108.13:6789",
"nonce": 0
}
]
},
"addr": "192.168.108.13:6789/0",
"public_addr": "192.168.108.13:6789/0",
"priority": 0,
"weight": 0,
"crush_location": "{}"
}
]
}
}
分析监控器映射
Ceph 集群映射包含:
- MON 映射
- OSD 映射
- PG 映射
- MDS 映射
- CRUSH 映射
MON 映射包含:
- 集群 fsid(文件系统 ID),fsid 是一种自动生成的唯一标识符 (UUID),用于标识 Ceph 集群。
- 各个 MON 节点通信的名称、IP 地址和网络端口。
- 映射版本信息,如 epoch 和最近一次更改时间。MON 节点通过同步更改并就当前版本达成一致来维护映射。
查看当前的 MON 映射
bash
[root@ceph1 ~]# ceph mon dump
epoch 3
fsid 2faf683a-7cbf-11f0-b5ba-000c29e0ad0e
#集群fsid
last_changed 2025-08-19T05:51:46.573105+0000
created 2025-08-19T05:41:50.650957+0000
min_mon_release 16 (pacific)
election_strategy: 1
0: [v2:192.168.108.11:3300/0,v1:192.168.108.11:6789/0] mon.ceph1.laogao.cloud
1: [v2:192.168.108.12:3300/0,v1:192.168.108.12:6789/0] mon.ceph2
2: [v2:192.168.108.13:3300/0,v1:192.168.108.13:6789/0] mon.ceph3
dumped monmap epoch 3
管理集中配置数据库
MON 节点存储和维护集中配置数据库。数据库文件位于 MON 节点,默认位置是:/var/lib/ceph/fsid/mon.fsid/mon.fsid/mon.host/store.db 。
**注意:**不建议更改数据库的位置。
数据库文件会不断增大,改进措施:
- 运行 ceph tell mon.$id compact 命令,整合数据库,以提高性能。
bash
[root@ceph1 ~]# ceph tell mon.ceph1.laogao.cloud compact
- 将 mon_compact_on_start 配置选项为 TRUE ,以便在每次守护进程启动时压缩数据库。
bash
[root@ceph1 ~]# ceph config set mon mon_compact_on_start true
设置以下数据库文件大小相关定义,以触发运行状况变化:
- **mon_data_size_warn,**当配置数据库文件的大小超过此值时,集群运行状况更改为 HEALTH_WARN。默认值是15 (GB)。
- **mon_data_avail_warn,**当包含配置数据库文件的文件系统剩余容量小于或等于此百分比时,将
集群运行状况更改为 HEALTH_WARN。默认值是30 (%)。 - **mon_data_avail_crit,**当包含配置数据库的文件系统剩余容量小于或等于此百分比 时,将集群运
行状况更改为 HEALTH_ERR。默认值是5 (%)。
集群验证
ceph 默认使用 Cephx 协议进行加密身份验证,同时使用共享密钥进行身份验证 。默认情况下,Ceph
会启用 Cephx。如有必要,可以禁用 Cephx,但不建议这样做,因为这样会减弱集群的安全性。
使用 ceph config set 命令启用或禁用 Cephx 协议。
bash
[root@ceph1 ~]# ceph config get mon auth_service_required
cephx
[root@ceph1 ~]# ceph config get mon auth_cluster_required
cephx
[root@ceph1 ~]# ceph config get mon auth_client_required
cephx, none
参数说明:
- auth_service_required,客户端与Ceph services之间通信认证。可用值 cephx 和 none
- auth_cluster_required,Ceph集群守护进程之间通信认证,例如 ceph-mon ceph-osd , mds , ceph-mgr 。可用值 cephx 和 none
- **auth_client_required,**客户端与Ceph集群之间通信认证。可用值 cephx 和 none 。
cephadm 工具创建 client.admin 用户,让用户能够运行管理命令并创建其他 Ceph 客户端用户帐户,用
户密钥环存储在 /etc/ceph 目录中。
bash
[root@ceph1 ~]# ls /etc/ceph
ceph.client.admin.keyring ceph.conf ceph.pub rbdmap
守护进程数据目录包含 Cephx 密钥环文件。对于 MON,密钥环文件是:/var/lib/ceph/fsid/mon.fsid/mon.fsid/mon.host/keyring。
bash
[root@ceph1 ~]# ls /var/lib/ceph/2faf683a-7cbf-11f0-b5ba
000c29e0ad0e/mon.ceph1.laogao.cloud/keyring
/var/lib/ceph/2faf683a-7cbf-11f0-b5ba-000c29e0ad0e/mon.ceph1.laogao.cloud/keyring
密钥环文件以纯文本形式存储机密密钥。务必使用合适的 Linux 文件权限来保护它们的安全。
使用ceph auth 命令创建、查看和管理集群
使用 ceph-authtool 命令创建密钥环文件。
示例:为 MON 节点创建一个密钥环文件。
bash
[root@ceph1 ~]# ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n
mon. --cap mon 'allow *'
creating /tmp/ceph.mon.keyring
# --create-keyring /tmp/ceph.mon.keyring
创建一个新的密钥环文件(Keyring),路径为 /tmp/ceph.mon.keyring。
# --gen-key -n mon.
生成一个新密钥(--gen-key)。-n mon. 指定密钥关联的实体名称(Entity Name),这里是 mon.(表示 Monitor 守护进程)。
注意:实体名称通常以守护进程类型开头(如 mon.、osd.),后接节点标识符(如 mon.a)。
# --cap mon 'allow *'
为该密钥分配权限(Capabilities):
mon 表示权限作用于 Monitor 服务。
'allow *' 授予 所有 Monitor 操作的完全权限(如访问集群状态、修改配置等)。
cephadm工具还会在/etc/ceph目录中创建client.admin用户,让您能够运行管理命令并创建其他
Ceph客户端用户帐户。