创建第一个 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 虚拟机

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


相关推荐
wniuniu_1 天前
ceph搭建多机集群
ceph
Terry_Tsang1 天前
ceph mon 报错 full ratio(s) out of order 解决方法
服务器·前端·ceph
wniuniu_1 天前
ceph删除处理
ceph
ejinxian1 天前
MinIO 国产化替代品Ceph、Garage 、RustFS
ceph·minio·rustfs·garage
The star"'2 天前
ceph(5-8)
运维·ceph·云计算
-dcr2 天前
44.ceph分布式存储
ceph
The star"'2 天前
ceph(1-4)
运维·ceph
wniuniu_2 天前
ceph入门
windows·ceph·eureka
Xyz996_3 天前
Ceph分布式存储
分布式·ceph