20260528 Ceph 分布式存储 集群配置

Ceph 分布式存储 集群配置

管理集群配置

Ceph 集群配置概述

Ceph 配置选项具有唯一名称,该名称由下划线连接的小写字符组成。有些配置选项会包含短划线(中横

杠)或空格字符。推荐做法:使用下划线。

Ceph 守护进程会从以下某个来源访问其配置:

  • 编译中的默认值
  • 集中配置数据库
  • 存储在本地主机上的配置文件
  • 环境变量
  • 命令行参数
  • 运行时覆盖

当存在多个设置源时,配置生效原则:

  • 较新设置将覆盖较早设置源中的设置。
  • 配置文件会在启动时配置守护进程。
  • 配置文件设置会覆盖存储在中央数据库中的设置。
  • 监控器 (MON) 节点管理集中配置数据库。

生效过程:

  1. 启动时,Ceph 守护进程解析命令行选项、环境变量和本地集群配置文件提供的配置选项。
  2. 然后,守护进程会联系 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

同样的名称还适用于 osdmgrmdsclient 部分。

  • 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 映射包含:

  1. 集群 fsid(文件系统 ID),fsid 是一种自动生成的唯一标识符 (UUID),用于标识 Ceph 集群。
  2. 各个 MON 节点通信的名称、IP 地址和网络端口。
  3. 映射版本信息,如 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客户端用户帐户。

相关推荐
qq_356408662 小时前
Kubernetes Rook-Ceph 高可用存储部署文档
ceph·容器·kubernetes
潮起鲸落入海2 小时前
ceph集群mon 以及池管理
ceph
一个行走的民2 小时前
Ceph OSD CPU 占用高排查:BlueFS Buffered IO 与 NUMA 亲和性深度分析
ceph
我叫张小白。3 小时前
基于Redis与FastAPI的分布式共享会话体系
数据库·redis·分布式·缓存·中间件·fastapi·依赖注入
天河归来3 小时前
国产数据库安全可靠测评产品观察:从集中式、分布式到 HTAP 的发展趋势
数据库·分布式
一个行走的民3 小时前
Ceph Monitor 管理职责全景解析
ceph
一个行走的民3 小时前
Ceph Monitor 如何管理文件系统(FS)元数据
ceph
小碗羊肉3 小时前
【Redis | 第五篇】分布式锁
数据库·redis·分布式
运维栈记3 小时前
Ceph 入门:一文读懂分布式存储的“瑞士军刀”
分布式·ceph