Akemi

Ceph集群MON、Network配置

2025/07/01

MON配置

Ceph监视器(MONs)存储并维护client用来查找MON和OSD节点的集群映射。Ceph客户端必须连接到一个MON来检索集群映射,然后才能向osd读写任何数据。

一般要求奇数个

mon角色有这几种:
Leader:第一个获得最新版本集群映射的MON。
provider:拥有集群映射最新版本的MON,但不是领导者。
Requester:没有集群映射最新版本的MON,必须与provider同步才能重新加入quorum

1
2
3
4
5
6
7

ceph mon stat
e5: 3 mons at {cephadm-1=[v2:192.168.10.141:3300/0,v1:192.168.10.141:6789/0],
cephadm-2=[v2:192.168.10.142:3300/0,v1:192.168.10.142:6789/0],
cephadm-3=[v2:192.168.10.143:3300/0,v1:192.168.10.143:6789/0]} removed_ranks: {0}
disallowed_leaders: {}, election epoch 126,
leader 0 cephadm-3, quorum 0,1,2 cephadm-3,cephadm-2,cephadm-1

Monitor Map

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ceph集群映射包括MON映射,OSD映射,PG映射,MDS映射,CRUSH映射

MON映射包含FSID,每个MON节点通信的名称、IP、端口
保存Map版本信息,MON节点通过同步更改并同步当前版本来维护映射

查看当前mon map
ceph mon dump
epoch 5
fsid 8b27889e-52af-11f0-bedb-bc2411f9a113
last_changed 2025-06-26T17:07:19.214285+0000
created 2025-06-26T17:04:00.412826+0000
min_mon_release 17 (quincy)
election_strategy: 1
0: [v2:192.168.10.143:3300/0,v1:192.168.10.143:6789/0] mon.cephadm-3
1: [v2:192.168.10.142:3300/0,v1:192.168.10.142:6789/0] mon.cephadm-2
2: [v2:192.168.10.141:3300/0,v1:192.168.10.141:6789/0] mon.cephadm-1
dumped monmap epoch 5

MON数据库

Monitor节点存储和维护集中配置数据库,:

1
2
3
4
5
6
7
8
9
数据库文件位置: 
/var/lib/ceph/$fsid/mon.$host/store.db
/var/lib/ceph/8b27889e-52af-11f0-bedb-bc2411f9a113/removed/mon.ansible_2025-06-26T17:07:24.296138Z/store.db

# 压缩数据库
ceph tell mon.$id compact
# 启动就压缩
ceph config set mon mon_compact_on_start true

集群认证

ceph使用Cephx协议,在ceph组件之间进行加密身份认证,使用共享密钥进行身份验证

正常情况下,cephadm工具会在/etc/ceph目录里面创建client.admin用户,这个用户允许你执行管理员命令,并且你可以通过这个用户来创建其它ceph客户端用户账户

1
2
3
4
5
6
7
8
9
10
/etc/ceph目录和守护进程目录一般都包含了keyring文件
ls /etc/ceph/
ceph.client.admin.keyring ceph.conf ceph.pub initial-config-primary-cluster.yaml rbdmap

这里也有
/var/lib/ceph/8b27889e-52af-11f0-bedb-bc2411f9a113/config/ceph.client.admin.keyring

为mons节点创建key-ring
ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. \
--cap mon "allow *"

Ceph网络

Public网络与Cluster网络

public网络是所有Ceph集群通信的默认网络。cephadm工具假设第一个MON的IP网络是public网络,新的MON守护进程就部署在public中

ceph客户端通过public网络直接向OSD发出请求,ODS的复制与恢复流量都是用public网络,除非专门配置Cluster网络

一般来说生产环境会使用单独的Cluster网络来让OSD走复制与恢复流量,且cluster网络与public网络必须没有路由

添加cluster网络

1
2
3
4
5
6
7
8
9
10
1.为每个集群节点配置一个额外的网络接口
2.在每个节点上为新的网络接口配置cluster网络ip地址
3.cephadm boostrap使用--cluster-network参数在集群bootstrap时创建cluster网络

也可以使用集群配置文件中进行添加
[global]
public_network = 172.25.250.0/24,172.25.251.0/24
cluster_network = 192.25.249.0/24

public和cluster网络可以通过ceph config set命令或者ceph config assimilate-conf命令修改

配置独立MON守护进程

MON守护进程绑定特定的ip地址,而MGR,OSD,MDS守护进程默认绑定所有可用的ip地址

  • 使用集中式数据库配置

给mon守护进程设置子网:
ceph config set mon public_network 172.25.252.0/24

  • 使用配置文件配置

在ceph配置文件的[mon]部分配置有一样的效果:
[mon]
public_network=172.25.252.0/24

  • CLI直接操作(不推荐)

ceph orch daemon add命令手工指定子网或ip地址部署守护进程

ceph orch daemon add mon cluster-host02:172.25.251.0/24
ceph config set mon cluster_network 10.10.20.0/24

  • 使用服务配置文件(推荐)
1
2
3
4
5
6
7
8
9
10
11
其中第一个必须为集群配置文件
service_type: mon
placement:
hosts:
- ceph-mon1
- ceph-mon2
- ceph-mon3
spec:
networks:
- 192.168.100.0/24 # Public
- 10.10.0.0/20 # Cluster

其他网络配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# ipv4/6
默认
ms_bind_ipv4 = true
ms_bind_ipv6 = false

# 巨型帧
在Cluster接口上配置MTU为9000
同一链路上的MTU都必须相同

# 防火墙规则
ceph的守护进程默认绑定6800-7300范围的TCP端口
也可以修改其绑定的范围
ms_bind_port_min
ms_bind_port_max

ss -tunlp | grep ceph
tcp LISTEN 0 512 0.0.0.0:6800 0.0.0.0:* users:(("ceph-osd",pid=69344,fd=17))
tcp LISTEN 0 512 0.0.0.0:6801 0.0.0.0:* users:(("ceph-osd",pid=69344,fd=18))
tcp LISTEN 0 512 0.0.0.0:6802 0.0.0.0:* users:(("ceph-osd",pid=69344,fd=19))
tcp LISTEN 0 512 0.0.0.0:6803 0.0.0.0:* users:(("ceph-osd",pid=69344,fd=20))
tcp LISTEN 0 512 0.0.0.0:6804 0.0.0.0:* users:(("ceph-osd",pid=69344,fd=21))
tcp LISTEN 0 512 0.0.0.0:6805 0.0.0.0:* users:(("ceph-osd",pid=69344,fd=22))
tcp LISTEN 0 512 0.0.0.0:6806 0.0.0.0:* users:(("ceph-osd",pid=69344,fd=23))
tcp LISTEN 0 512 0.0.0.0:6807 0.0.0.0:* users:(("ceph-osd",pid=69344,fd=24))
tcp LISTEN 0 512 0.0.0.0:6808 0.0.0.0:* users:(("ceph-osd",pid=70485,fd=17))
tcp LISTEN 0 512 0.0.0.0:6809 0.0.0.0:* users:(("ceph-osd",pid=70485,fd=18))
tcp LISTEN 0 512 0.0.0.0:6810 0.0.0.0:* users:(("ceph-osd",pid=70485,fd=19))
tcp LISTEN 0 512 0.0.0.0:6811 0.0.0.0:* users:(("ceph-osd",pid=70485,fd=20))
tcp LISTEN 0 512 0.0.0.0:6812 0.0.0.0:* users:(("ceph-osd",pid=70485,fd=21))
tcp LISTEN 0 512 0.0.0.0:6813 0.0.0.0:* users:(("ceph-osd",pid=70485,fd=22))
tcp LISTEN 0 512 0.0.0.0:6814 0.0.0.0:* users:(("ceph-osd",pid=70485,fd=23))
tcp LISTEN 0 512 0.0.0.0:6815 0.0.0.0:* users:(("ceph-osd",pid=70485,fd=24))
tcp LISTEN 0 512 0.0.0.0:6816 0.0.0.0:* users:(("ceph-osd",pid=71635,fd=17))
tcp LISTEN 0 512 0.0.0.0:6817 0.0.0.0:* users:(("ceph-osd",pid=71635,fd=18))
tcp LISTEN 0 512 0.0.0.0:6818 0.0.0.0:* users:(("ceph-osd",pid=71635,fd=19))
tcp LISTEN 0 512 0.0.0.0:6819 0.0.0.0:* users:(("ceph-osd",pid=71635,fd=20))
tcp LISTEN 0 512 192.168.10.141:3300 0.0.0.0:* users:(("ceph-mon",pid=82651,fd=26))
tcp LISTEN 0 512 0.0.0.0:6820 0.0.0.0:* users:(("ceph-osd",pid=71635,fd=21))
tcp LISTEN 0 512 192.168.10.141:6789 0.0.0.0:* users:(("ceph-mon",pid=82651,fd=27))
tcp LISTEN 0 512 0.0.0.0:6821 0.0.0.0:* users:(("ceph-osd",pid=71635,fd=22))
tcp LISTEN 0 512 0.0.0.0:6822 0.0.0.0:* users:(("ceph-osd",pid=71635,fd=23))
tcp LISTEN 0 512 0.0.0.0:6823 0.0.0.0:* users:(("ceph-osd",pid=71635,fd=24))
tcp LISTEN 0 5 *:8443 *:* users:(("ceph-mgr",pid=51574,fd=26))
tcp LISTEN 0 5 *:9283 *:* users:(("ceph-mgr",pid=51574,fd=22))

CATALOG
  1. 1. MON配置
    1. 1.1. Monitor Map
    2. 1.2. MON数据库
    3. 1.3. 集群认证
  2. 2. Ceph网络
    1. 2.1. Public网络与Cluster网络
    2. 2.2. 配置独立MON守护进程
    3. 2.3. 其他网络配置