一、Ceph RBD 使用详解
1.1 RBD
Ceph 可以同时提供 RADOSGW(对象存储网关)、RBD(块存储)、Ceph FS(文件系统存储),RBD即 RADOS Block Device 的简称,RBD 块存储是常用的存储类型之一,RBD 块设备类似磁盘可以被挂载,RBD 块设备具有快照、多副本、克隆和一致性等特性,数据以条带化的方式存储在 Ceph 集群的多个 OSD 中。
条带化技术就是一种自动的将 I/O 的负载均衡到多个物理磁盘上的技术,条带化技术就是将一块连续的数据分成很多小部分并把他们分别存储到不同磁盘上去。这就能使多个进程同时访问数据的多个不同部分而不会造成磁盘冲突,而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的 I/O 并行能力,从而获得非常好的性能。
1.2:创建存储池
1 | # ceph osd pool create rbd1 32 32 |
删除存储池
1 | # 删除存储池 |
1.3 创建 img 镜像
rbd 存储池并不能直接用于块设备,而是需要事先在其中按需创建映像(image),并把映像文件作为块设备使用。rbd 命令可用于创建、查看及删除块设备相在的映像(image),以及克隆映像、创建快照、将映像回滚到快照和查看快照等管理操作。例如,下面的命令能够在指定的 RBD 即 rbd1 创建一个名为 myimg1 的映像:
1.3.1 命令格式
1 | rbd help create |
1.3.2 创建镜像
1 | # 创建镜像 |
1.3.3 查看镜像详细信息
1 | rbd --image data-img1 --pool rbd1 info |
以json格式显示镜像信息
1 | root@ceph-node1:/data/ceph# rbd ls -p myrbd1 -l --format json --pretty-format |
1.3.4 镜像的其他特性
1 | rbd help feature enable |
1.3.5 镜像特性的启用
1 | # rbd feature enable exclusive-lock --pool rbd1 --image data-img1 |
1.3.6 镜像特性的禁用
1 | #禁用指定存储池中指定镜像的特性: |
1.4 配置客户端使用RBD
客户端挂载RBD,并分别使用admin及普通用户挂载RBD并验证使用。
客户端要想挂载使用cephRBD,需要安装ceph客户端组件ceph-common
客户端使用admin 账户挂载并使用RBD
同步 admin 账户认证文件:
1 | scp ceph.conf ceph.client.admin.keyring root@10.10.0.232:/etc/ceph/ |
客户端映射映像
1 | [root@ceph-client ~]# rbd help map #映射 rbd 命令 |
在客户端格式化rbd并挂载
1 | [root@ceph-client ~]# mkfs.xfs /dev/rbd0 |
1.5 客户端使用普通账户挂载并使用RBD
1.5.1 创建普通账户并授权
1 | #创建普通账户 |
1.5.2 客户端验证
1 | root@client:~# ceph --user hmk -s |
1.5.2.1 映射rbd
使用普通账用户权限映射rbd
1 | root@client:~# rbd --id hmk -p myrbd1 map myimg2 |
1.5.3 rbd 映像空间拉伸
可以扩展空间不建议缩小空间
1 | root@client:~# rbd ls -p myrbd1 -l |
1.5.4 卸载rbd映像
1 | root@client:~# umount /data/ |
1.5.5 删除rbd映像
映像删除后数据也会被删除而且是无法恢复,因此在执行删除操作的时候要谨慎
1 | root@client:~# rbd help rm |
1.5.6 rbd映像像回收站机制
删除的镜像数据无法恢复,但是还有另外一种方法可以先把镜像移动到回收站,后期确认删除的时候再从回收站删除即可。
1 | # 查看映像状态 |
1.5.7 映像快照
1 | rbd |
1 | # 创建快照 |
1.5.8 删除数据还原快照
1 | #客户端删除数据 |
1.5.9 删除快照
1 | # 删除指定快照 |
快照数量限制
1 | # 设置与修改快照数量限制 |