1643 字
8 分钟
Ceph练习-文件系统

基础概念#

  • MonitorsCeph 监视器 ceph-mon) 维护集群状态的映射,包括监视器映射 、管理器映射、OSD 映射、MDS 映射和 CRUSH 映射
  • ManagersCeph Manager 守护程序 (ceph-mgr) 负责跟踪运行时指标和 Ceph 集群的当前状态,包括存储利用率、当前性能指标和系统负载
  • Ceph OSD:对象存储守护进程(Ceph OSDceph-osd)存储数据,处理数据复制、恢复、重新平衡,并通过检查其他 Ceph OSD 守护进程的检测信号向 Ceph 监视器和管理器提供一些监控信息。通常至少需要三个 Ceph OSD 才能实现冗余和高可用性。
  • MDSesCeph 元数据服务器 (MDS、ceph-mds)存储 Ceph 文件系统的元数据。Ceph 元数据服务器允许 CephFS 用户运行基本命令(如 lsfind 等),而不会给 Ceph 存储集群带来负担。
  • RGWCeph 对象网关 (RGW,ceph-radosgw)守护进程在应用程序和 Ceph 存储集群之间提供 RESTful 网关。S3 兼容的 API 是最常用的,但 Swift 也可用。

前期操作#

主机信息#

三台Rocky9虚拟机,每台主机2c2g20g,另每台挂载20G空硬盘

主机名IP地址
ceph-7192.168.200.7
ceph-8192.168.200.8
ceph-9192.168.200.9

用户名#

hostnamectl set-hostname ceph-7

主机host文件#

echo -e '192.168.200.7\tceph-7\n192.168.200.8\tceph-8\n192.168.200.9\tceph-9' >> /etc/hosts

固定IP#

nmcli connection modify enp1s0 ipv4.method manual ipv4.addresses 192.168.200.7/24 ipv4.gateway 192.168.200.1 ipv4.dns "223.9.9.9,119.29.29.29" autoconnect yes
nmcli connection up enp1s0

关闭Selinux#

setenforce 0;sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

时间同步#

sed -i 's/^pool.*/pool cn.ntp.org.cn iburst/' /etc/chrony.conf ; systemctl restart chronyd

检查时间同步

root@ceph-8:~# chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? 58.220.133.132 0 6 0 - +0ns[ +0ns] +/- 0ns

关闭防火墙#

systemctl disable --now firewalld.service

开启root SSH登陆#

sed -i 's/^#PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config ; systemctl restart sshd

国内镜像源#

sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.ustc.edu.cn/rocky|g' \
-i.bak \
/etc/yum.repos.d/rocky*

配置HTTP和HTTPS代理#

主要目的方便后便下载镜像

国内免费的镜像加速速度太感人了,都爬一边去

直接设置Rock走科学工具的http代理

容器下载速度由你的科学上网工具决定

我的电脑是Linux,window直接跳过防火墙这个操作

  • firewalld放开virbr1的源地址访问public区域
# 立即放行源地址为QEMU NAT网卡的网段
sudo firewall-cmd --zone=public --add-source=192.168.200.0/24
# 防火墙持久化
sudo firewall-cmd --zone=public --add-source=192.168.200.0/24 --permanent
  • 在虚拟机上设置HTTP和HTTPS代理
echo -e "export http_proxy=http://192.168.200.1:65500\nexport https_proxy=http://192.168.200.1:65500" >> /etc/profile source /etc/profile

安装Ceph#

IMPORTANT

仅在主节点ceph-7上操作

# 安装ceph源
dnf install -y centos-release-ceph-squid
# 安装cephadm
dnf install -y cephadm
# jinja2依赖
dnf install python3-jinja2
# 安装
cephadmin install
# 安装管理面板
cephadm bootstrap --mon-ip 192.168.200.7
URL: https://ceph-7:8443/
User: admin
Password: qj0ponlenl
# ceph8、ceph-9免登陆
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph-8
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph-9

Ceph管理面板#

添加主机#

面板: Cluster/主机下添加,主机名+IP地址+标签:_admin

添加OSD存储(Object Storage Daemon)#

  • 面板:Cluster/OSD

    • 如果osd添加不成功,检查一下哪个VM的容器状态
  • 命令行操作

    • 我虚拟机搞的Rocky10,Ceph现在才支持到Rocky9
    • ceph命令只能在cephadm shell中使用,也就隔层docker使用命令
    • 你可以直接安装ceph-common包使用ceph命令
cephadm shell -- ceph orch daemon add osd ceph-8:/dev/vdb

创建文件系统#

  • 面板添加:File/文件系统
  • 命令添加
cephadm shell -- ceph fs volume create cephfs

宿主机挂载cephfs#

  • mount命令挂载
# 创建挂载点
sudo mkdir /mnt/ceph
# 查看ceph-7上的ceph.client.admin.keyring
root@ceph-7:~# cat /etc/ceph/ceph.client.admin.keyring
[client.admin]
key = AQAjjvNonkdlFRAAMJFkfHEmwP1/Ne2xA05ILQ==
caps mds = "allow *"
caps mgr = "allow *"
caps mon = "allow *"
caps osd = "allow *"
# 在宿主机上挂载ceph,通过secret认证方式
sudo mount -t ceph 192.168.200.7:/ /mnt/ceph \
-o name=admin,secret=AQAjjvNonkdlFRAAMJFkfHEmwP1/Ne2xA05ILQ==
# 检查挂载结果
[root@Arch-8845 lee]# df -h /mnt/ceph/
文件系统 大小 已用 可用 已用% 挂载点
192.168.200.7:/ 19G 0 19G 0% /mnt/ceph
# 复制ceph-7上的ceph.client.admin.keyring
[root@Arch-8845 lee]#scp root@ceph-7:/etc/ceph/* /etc/ceph
# 设置开机挂载
[root@Arch-8845 lee]# vim /etc/fstab
192.168.200.7:/ /mnt/cephfs ceph name=admin,secretfile=/etc/ceph/ceph.client.admin.keyring,_netdev 0 0

删除文件系统#

检查文件系统信息#

root@ceph-7:~# cephadm shell -- ceph fs status
Inferring fsid 8ea7ba22-ac21-11f0-b2c2-525400e13a2b
Inferring config /var/lib/ceph/8ea7ba22-ac21-11f0-b2c2-525400e13a2b/mon.ceph-7/config
Using ceph image with id 'aade1b12b8e6' and tag 'v19' created on 2025-07-17 19:53:27 +0000 UTC
quay.io/ceph/ceph@sha256:af0c5903e901e329adabe219dfc8d0c3efc1f05102a753902f33ee16c26b6cee
cephfs - 0 clients
======
POOL TYPE USED AVAIL
cephfs.cephfs.meta metadata 1935k 18.9G
cephfs.cephfs.data data 99.4M 18.9G
STANDBY MDS
cephfs.ceph-9.quvzuh
MDS version: ceph version 19.2.3 (c92aebb279828e9c3c1f5d24613efca272649e62) squid (stable)

关闭文件系统#

cephadm shell -- ceph fs set cephfs down true

删除文件系统#

cephadm shell -- ceph fs rm cephfs --yes-i-really-mean-it

设置mon允许删除pool#

  • 命令行
cephadm shell -- ceph config set mon mon_allow_pool_delete true
  • 图形界面
    • Administration/配置/mon_allow_pool_delete - 编辑

删除pool#

# 首先删除metadata pool
# 注意: 需要重复输入 metadata pool 的名字一次
# 后跟 -yes-i-really-really-mean-it 参数
root@ceph-7:~# cephadm shell -- ceph osd pool delete cephfs.cephfs.meta cephfs.cephfs.meta --yes-i-really-really-mean-it
Inferring fsid 8ea7ba22-ac21-11f0-b2c2-525400e13a2b
Inferring config /var/lib/ceph/8ea7ba22-ac21-11f0-b2c2-525400e13a2b/mon.ceph-7/config
Using ceph image with id 'aade1b12b8e6' and tag 'v19' created on 2025-07-17 19:53:27 +0000 UTC
quay.io/ceph/ceph@sha256:af0c5903e901e329adabe219dfc8d0c3efc1f05102a753902f33ee16c26b6cee
pool 'cephfs.cephfs.meta' removed
# 重复上边步骤删除data pool
root@ceph-7:~# cephadm shell -- ceph osd pool delete cephfs.cephfs.data cephfs.cephfs.data --yes-i-really-really-mean-it
Inferring fsid 8ea7ba22-ac21-11f0-b2c2-525400e13a2b
Inferring config /var/lib/ceph/8ea7ba22-ac21-11f0-b2c2-525400e13a2b/mon.ceph-7/config
Using ceph image with id 'aade1b12b8e6' and tag 'v19' created on 2025-07-17 19:53:27 +0000 UTC
quay.io/ceph/ceph@sha256:af0c5903e901e329adabe219dfc8d0c3efc1f05102a753902f33ee16c26b6cee
pool 'cephfs.cephfs.data' removed

清除 Ceph 存储集群#

先查找monitor的fsid,然后cephadm删除集群

cephadm ls
c
cephadm rm-cluster --force --zap-osds --fsid FSID

回顾一下#

ceph-7ceph状态#

root@ceph-7:~# cephadm shell -- ceph -s
Inferring fsid 8ea7ba22-ac21-11f0-b2c2-525400e13a2b
Inferring config /var/lib/ceph/8ea7ba22-ac21-11f0-b2c2-525400e13a2b/mon.ceph-7/config
Using ceph image with id 'aade1b12b8e6' and tag 'v19' created on 2025-07-17 19:53:27 +0000 UTC
quay.io/ceph/ceph@sha256:af0c5903e901e329adabe219dfc8d0c3efc1f05102a753902f33ee16c26b6cee
cluster:
id: 8ea7ba22-ac21-11f0-b2c2-525400e13a2b
health: HEALTH_OK
services:
mon: 3 daemons, quorum ceph-7,ceph-8,ceph-9 (age 4h)
mgr: ceph-7.popbkv(active, since 4h), standbys: ceph-8.kfvcoz
osd: 3 osds: 3 up (since 4h), 3 in (since 19h)
data:
pools: 1 pools, 1 pgs
objects: 2 objects, 449 KiB
usage: 150 MiB used, 60 GiB / 60 GiB avail
pgs: 1 active+clean

ceph-7起的容器#

root@ceph-7:~# podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2bd4fd6a483a quay.io/ceph/ceph@sha256:7c69e59beaeea61ca714e71cb84ff6d5e533db7f1fd84143dd9ba6649a5fd2ec -n client.ceph-ex... 3 hours ago Up 3 hours ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-ceph-exporter-ceph-7
42d120151789 quay.io/ceph/ceph:v19 -n mon.ceph-7 -f ... 3 hours ago Up 3 hours ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-mon-ceph-7
a5db98112a20 quay.io/ceph/grafana:10.4.0 3 hours ago Up 3 hours 3000/tcp ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-grafana-ceph-7
0e72941a5b4e quay.io/prometheus/alertmanager:v0.25.0 --cluster.listen-... 3 hours ago Up 3 hours 9093/tcp ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-alertmanager-ceph-7
324cb5c52e12 quay.io/ceph/ceph:v19 -n mgr.ceph-7.pop... 3 hours ago Up 3 hours ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-mgr-ceph-7-popbkv
2576ba3a904c quay.io/prometheus/node-exporter:v1.7.0 --no-collector.ti... 3 hours ago Up 3 hours 9100/tcp ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-node-exporter-ceph-7
87a65a93a7e8 quay.io/ceph/ceph@sha256:7c69e59beaeea61ca714e71cb84ff6d5e533db7f1fd84143dd9ba6649a5fd2ec -n client.crash.c... 3 hours ago Up 3 hours ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-crash-ceph-7
138a1a3f1661 quay.io/prometheus/prometheus:v2.51.0 --config.file=/et... 3 hours ago Up 3 hours 9090/tcp ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-prometheus-ceph-7
9f1c39b13add quay.io/ceph/ceph@sha256:7c69e59beaeea61ca714e71cb84ff6d5e533db7f1fd84143dd9ba6649a5fd2ec -n osd.2 -f --set... 3 hours ago Up 3 hours ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-osd-2

ceph-8起的容器#

root@ceph-8:~# podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e7c63143d5e5 quay.io/ceph/ceph@sha256:7c69e59beaeea61ca714e71cb84ff6d5e533db7f1fd84143dd9ba6649a5fd2ec -n client.ceph-ex... 3 hours ago Up 3 hours ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-ceph-exporter-ceph-8
827ce0470b9f quay.io/ceph/ceph@sha256:7c69e59beaeea61ca714e71cb84ff6d5e533db7f1fd84143dd9ba6649a5fd2ec -n client.crash.c... 3 hours ago Up 3 hours ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-crash-ceph-8
ea52e1f8c1fd quay.io/ceph/ceph@sha256:7c69e59beaeea61ca714e71cb84ff6d5e533db7f1fd84143dd9ba6649a5fd2ec -n mgr.ceph-8.kfv... 3 hours ago Up 3 hours ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-mgr-ceph-8-kfvcoz
9cb61bec9b9c quay.io/ceph/ceph@sha256:7c69e59beaeea61ca714e71cb84ff6d5e533db7f1fd84143dd9ba6649a5fd2ec -n mon.ceph-8 -f ... 3 hours ago Up 3 hours ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-mon-ceph-8
741980f745ec quay.io/prometheus/node-exporter:v1.7.0 --no-collector.ti... 3 hours ago Up 3 hours 9100/tcp ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-node-exporter-ceph-8
edee9219656d quay.io/ceph/ceph@sha256:7c69e59beaeea61ca714e71cb84ff6d5e533db7f1fd84143dd9ba6649a5fd2ec -n osd.0 -f --set... 3 hours ago Up 3 hours ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-osd-0

ceph-9起的容器#

root@ceph-9:~# podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
014b52e4470c quay.io/ceph/ceph@sha256:7c69e59beaeea61ca714e71cb84ff6d5e533db7f1fd84143dd9ba6649a5fd2ec -n mds.cephfs.cep... 3 hours ago Up 3 hours ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-mds-cephfs-ceph-9-quvzuh
e86e094c6a6f quay.io/prometheus/node-exporter:v1.7.0 --no-collector.ti... 3 hours ago Up 3 hours 9100/tcp ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-node-exporter-ceph-9
44a51e3f2d4e quay.io/ceph/ceph@sha256:7c69e59beaeea61ca714e71cb84ff6d5e533db7f1fd84143dd9ba6649a5fd2ec -n client.ceph-ex... 3 hours ago Up 3 hours ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-ceph-exporter-ceph-9
c0041f22227c quay.io/ceph/ceph@sha256:7c69e59beaeea61ca714e71cb84ff6d5e533db7f1fd84143dd9ba6649a5fd2ec -n client.crash.c... 3 hours ago Up 3 hours ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-crash-ceph-9
1f0b31944fa4 quay.io/ceph/ceph@sha256:7c69e59beaeea61ca714e71cb84ff6d5e533db7f1fd84143dd9ba6649a5fd2ec -n mon.ceph-9 -f ... 3 hours ago Up 3 hours ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-mon-ceph-9
46ee87c8d3fe quay.io/ceph/ceph@sha256:7c69e59beaeea61ca714e71cb84ff6d5e533db7f1fd84143dd9ba6649a5fd2ec -n osd.1 -f --set... 3 hours ago Up 3 hours ceph-8ea7ba22-ac21-11f0-b2c2-525400e13a2b-osd-1

参考资料#

网络文档#

Ceph介绍

https://docs.ceph.com/en/reef/start/

Ceph安装

https://docs.ceph.com/en/reef/cephadm/install/#cephadm-deploying-new-cluster

stackoverflow

https://stackoverflow.com/questions/45012905/removing-pool-mon-allow-pool-delete-config-option-to-true-before-you-can-destro

4.12. 使用命令行界面删除 Ceph 文件系统

https://docs.redhat.com/zh-cn/documentation/red_hat_ceph_storage/4/html/file_system_guide/removing-a-ceph-file-system-using-the-command-line-interface_fs

3.23. 清除 Ceph 存储集群

https://docs.redhat.com/zh-cn/documentation/red_hat_ceph_storage/5/html/installation_guide/purging-the-ceph-storage-cluster_install

Rocky Linux - USTC Mirror Help

https://mirrors.ustc.edu.cn/help/rocky.html

网络视频#

Ceph练习-文件系统
https://v0nl1.com/posts/ceph-filesystem/
作者
V0nl1
发布于
2025-10-19
许可协议
CC BY-NC-SA 4.0