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客户端用户帐户。

相关推荐
添砖java_85711 小时前
基于RabbitMQ实现的轻量队列测试报告
分布式·rabbitmq
Zhu75812 小时前
使用腾讯CNB构建Hadoop定制容器镜像
大数据·hadoop·分布式
TTBIGDATA13 小时前
【Ambari Plus】13.Spark 安装
大数据·hadoop·分布式·spark·ambari·sqoop·ambari plus
sunxunyong15 小时前
Hadoop租户创建
大数据·hadoop·分布式
得物技术15 小时前
得物 OceanBase 落地实践
数据库·分布式·架构
seacracker15 小时前
Ceph 太重运维成本高?轻量统一存储 PowerFS 对比测评(HPC/AI 场景首选)
运维·人工智能·ceph·ai存储·统一存储
heimeiyingwang17 小时前
【架构实战】分布式ID生成:从自增ID到雪花算法
分布式·架构
微三云 - 廖会灵 (私域系统开发)1 天前
电商系统微服务拆分实战:从单体到Spring Cloud的分布式事务踩坑与补偿方案
分布式·spring cloud·微服务
ACP广源盛139246256732 天前
破局 PCIe 4.0 交换瓶颈@ACP#IX8024 / ASM58024参数及应用对比
大数据·人工智能·分布式·嵌入式硬件
淡然的煎蛋2 天前
开始使用RabbitMQ
分布式·rabbitmq·ruby