创建第一个 Ceph 的 RBD 镜像并挂载到客户端

创建第一个 Ceph 的 RBD 镜像并挂载到客户端 。我按最标准、最稳妥的生产级流程一步一步给你。

下面假设:

  • 你在 node1(192.168.244.128) 上是管理员
  • node1 既是客户端也是存储节点(最常见实验环境)

✅ 一、先确认 Ceph 集群是健康的(只要这一步过了,后面都不会翻车)

在 node1(root)执行:

bash 复制代码
ceph -s

你理想看到的是类似:

复制代码
health: HEALTH_OK

或者至少是 没有 pg inactive / no osd / no mon quorum 这种硬伤。


✅ 二、创建第一个 RBD Pool(存放块设备的"泳池")

我们先创建一个叫 rbdpool 的 pool:

bash 复制代码
ceph osd pool create rbdpool 64

64 是 PG 数,实验环境合理。

然后启用 RBD 功能:

bash 复制代码
ceph osd pool application enable rbdpool rbd

验证:

bash 复制代码
ceph osd pool ls

应该能看到:

复制代码
rbdpool

✅ 三、在 pool 里创建第一个 RBD 镜像(就像创建一块"虚拟硬盘")

我们创建一个 10GB 的块设备 ,名字叫 disk1

bash 复制代码
rbd create rbdpool/disk1 --size 10G

查看:

bash 复制代码
rbd ls rbdpool

输出应为:

复制代码
disk1

✅ 四、把 RBD 镜像映射成本机块设备(出现 /dev/rbdX)

先加载内核模块:

bash 复制代码
modprobe rbd

然后映射:

bash 复制代码
rbd map rbdpool/disk1

查看映射结果:

bash 复制代码
rbd showmapped

你会看到类似:

复制代码
id pool     image  snap device
0  rbdpool  disk1   -   /dev/rbd0

✅ 说明现在:

Ceph 里的一块 10G 存储

已经变成了你 Linux 里的一块真实"硬盘" /dev/rbd0


✅ 五、给这块 RBD 磁盘分区 + 格式化

就像一块新插入的 SSD 一样处理它:

bash 复制代码
mkfs.ext4 /dev/rbd0

✅ 六、挂载到系统目录(真正"能存文件了")

先建挂载目录:

bash 复制代码
mkdir -p /mnt/rbd

挂载:

bash 复制代码
mount /dev/rbd0 /mnt/rbd

验证:

bash 复制代码
df -h | grep rbd

你应该能看到类似:

复制代码
/dev/rbd0   10G  24K   10G   1%  /mnt/rbd

✅ 七、验证:这是不是"真实的 Ceph 分布式存储"

你现在可以直接测试:

bash 复制代码
cd /mnt/rbd
dd if=/dev/zero of=test.img bs=1M count=100
ls -lh

你会看到:

复制代码
test.img  100M

这 100MB 文件的真实数据:

✅ 不在本机磁盘

✅ 在 Ceph OSD 上

✅ 任意节点宕机都不会立刻丢(副本机制)


✅ 八、开机自动挂载(可选,真实环境必做)

先取集群 FSID:

bash 复制代码
ceph fsid

然后编辑:

bash 复制代码
nano /etc/ceph/rbdmap

写入:

复制代码
rbdpool/disk1 id=admin,keyring=/etc/ceph/ceph.client.admin.keyring

再执行:

bash 复制代码
systemctl enable rbdmap
systemctl start rbdmap

✅ 九、你现在已经完整打通了这条链路:

复制代码
Ceph OSD 集群
   → RBD Pool
       → RBD Image(disk1)
            → 映射为 /dev/rbd0
                 → 挂载为 /mnt/rbd
                      → 像本地硬盘一样用

你已经真正"拥有了一块云硬盘"。


✅ 十、如果你想升级到你最初说的目标场景(libvirt + 云计算)

你现在已经完成了:

✅ 分布式块存储

✅ 内核级映射

✅ 本地挂载验证

下一步一共只差 两步

1️⃣ 把 RBD 镜像直接当作 虚拟机磁盘

2️⃣ 用 libvirt / virt-manager 创建云主机

我可以直接教你这一句级别的核心用法:

bash 复制代码
qemu-img create -f rbd rbd:rbdpool/vm01 20G
virt-install --name vm01 --disk path=rbd:rbdpool/vm01,...

✅ 你现在可以这样"验收你是否已经成功"

你只需要把下面三条的输出发给我:

bash 复制代码
rbd ls rbdpool
rbd showmapped
df -h | grep rbd

我可以 100% 告诉你:

✅ 你这块云硬盘现在是不是"真·生产级可用状态"

✅ 是否可以直接上 libvirt 虚拟机

✅ 是否需要调优副本数、性能参数


相关推荐
yyyyy_abc21 小时前
ceph学习笔记
笔记·ceph·学习
自由且自律2 天前
ceph实战,基于docker部署
运维·ceph·docker·容器·云计算
老wang你好4 天前
Ceph存储全攻略:RBD、CephFS与RGW详解
ceph
珂玥c6 天前
Ceph集群新增osd
ceph
老wang你好7 天前
Ceph分布式存储系统全解析
ceph
一个行走的民20 天前
分布式系统中 Map 增量(Delta)是否需要持久化
ceph
一个行走的民22 天前
BlueStore 核心原理与关键机制
ceph
奋斗的小青年I24 天前
Proxmox VE Ceph 超融合集群落地实战
windows·ceph·vmware·pve·超融合·proxmox
一个行走的民24 天前
深度剖析 Ceph PG 分裂机制:原理、底层、实操、影响、线上避坑(最全完整版)
ceph·算法
一个行走的民24 天前
Ceph 核心概念精讲:彻底搞懂 PG、PGP、pg_num、pgp_num
ceph