一、前言

    Ceph RBD(Rados Block Device)是 Ceph 存储解决方案的一部分,它提供了一个分布式块设备服务,允许用户创建和管理虚拟块设备,类似于传统的本地磁盘,Ceph RBD 是一个高度可扩展的存储解决方案,可以根据需要动态地扩展存储容量和性能,还支持快照和克隆功能,允许用户创建块设备的快照,并在需要时基于这些快照创建新的克隆设备

 快照(Snapshot):RBD 镜像支持快照功能,允许用户在任何时间点捕获 RBD 镜像的快照。快照是镜像在某个时间点的只读视图,可以用于数据备份、恢复、测试等用途。Ceph RBD 提供了快速、轻量级的快照功能,使用户能够快速创建和管理快照

克隆(Clone):RBD 镜像支持克隆功能,允许用户基于现有的快照创建新的镜像。克隆是一种轻量级的方式来创建新的镜像,可以在快速、高效地创建新的镜像副本时使用

镜像层叠(Layering):RBD 镜像支持镜像层叠功能,允许用户创建基于现有镜像的多个镜像副本。这种层叠结构可以节省存储空间,并简化镜像管理,因为所有的镜像共享相同的基础数据

复制(Replication):RBD 镜像支持复制功能,允许用户在不同的 Ceph 存储集群之间复制镜像数据。这种复制功能可以用于数据备份、灾难恢复等场景,确保数据的安全性和可用性

加密(Encryption):RBD 镜像支持加密功能,可以对镜像数据进行加密保护。这种加密功能可以保护敏感数据免受未经授权的访问和窃取,确保数据的机密性和安全性

二、部署

   创建存储池

ceph osd pool create rbd-data 32 32

  使用该存储池开启rbd服务

ceph osd pool application enable rbd-data rbd

  初始化rbd服务

rbd pool init -p rbd-data

 创建img镜像(rbd块不能直接使用,需要先创建img镜像,通过挂载img镜像去使用)

rbd create data-img --size 3G --pool rbd-data --image-format 2 --image-feature layering

 --image-format 2:指定了镜像的格式。在这里,指定的格式是 2。RBD 支持不同的镜像格式,其中格式 2 是最常用的格式,它支持更多的特性和功能

-image-feature layering:这是一个镜像特性(Image Feature),指定了镜像支持的特性之一。layering 特性允许创建具有写时复制(Copy on Write,COW)特性的快照。使用 layering 特性创建的镜像可以更高效地管理快照,并支持更多的快照操作

镜像特性

layering:允许使用镜像层叠功能。启用此特性后,可以创建基于现有镜像的快照,并将其用作父镜像以创建克隆

striping:允许对镜像进行条带化(striping)。条带化可以提高 I/O 性能,并允许并行访问镜像数据

exclusive-lock:启用独占锁定功能。启用此特性后,只有一个客户端可以对镜像进行写入操作,防止多个客户端之间的冲突

object-map:启用对象映射功能。对象映射是一种元数据结构,用于跟踪每个块的使用情况,以便在执行快照、克隆等操作时提高性能,此特性依赖于exclusive-lock

fast-diff:启用快速差异计算功能。快速差异计算允许快速计算两个快照之间的差异,并只传输变更部分,从而加速快照复制和恢复操作,此特性依赖于object-map

deep-flatten:启用深度平铺功能。深度平铺允许将镜像快照展开成扁平的镜像,从而减少快照链的深度,并提高性能

启用镜像的指定特性

rbd feature enable exclusive-lock --pool rbd-data --image data-img

禁用镜像的指定特性

rbd feature enable exclusive-lock --pool rbd-data --image data-img

查看img镜像

rbd ls --pool rbd-data -l

 

查看img镜像的详细信息

rbd --pool rbd-data --image data-img info

三、使用

在centos主机挂载rbd块使用

需要在客户端主机安装ceph-common组件,也需要在管理节点拷贝ceph.conf和keyring密钥文件

安装ceph-common组件

vi /etc/yum.repos.d/ceph.repo 

[Ceph]

name=Ceph

baseurl=https://mirrors.aliyun.com/ceph/rpm-15.2.9/el7/x86_64/

enabled=1

gpgcheck=0

[Ceph-noarch]

name=Ceph noarch packages

baseurl=https://mirrors.aliyun.com/ceph/rpm-15.2.9/el7/noarch/

enabled=1

gpgcheck=0

 安装

yum -y install epel-release

yum -y install ceph-common

从ceph管理节点拷贝文件

scp /etc/ceph/ceph.conf /etc/ceph/ceph.client.admin.keyring root@10.1.60.118:/etc/ceph

客户端映射rbd镜像

rbd -p rbd-data map data-img

查看映射的镜像

lsblk

格式化磁盘

mkfs.xfs /dev/rbd0

创建挂载目录

mkdir /data/data1

挂载磁盘

mount /dev/rbd0 /data/data1

查看挂载磁盘

df -Th

扩容rbd镜像

这里我多创建了一个叫cs的镜像用于测试

 

并用于挂载后写入了数据

 扩容镜像

rbd resize --pool rbd-data --image cs --size 4G

rbd info --pool rbd-data --image cs

 查看客户端会发现磁盘扩容了,但是挂载的文件系统没有扩容

 这是因为文件系统需要手动去调整,这里因为之前初始化用的是xfs文件系统,所以需要用xfs文件系统的命令调整,执行完后会发现文件系统也扩容到了4G

xfs_growfs /dev/rbd1

df -Th

查看文件,会发现并没有影响到原本存在的文件

ls /mnt/cs

 

 

rbd镜像快照

创建镜像快照,快照并不会占用存储空间

rbd snap create --pool rbd-data --image cs --snap cs-snap02

查看快照

rbd snap list --pool rbd-data --image cs

 快照恢复

 先删除一部分文件

接下来进入恢复步骤 

需要先卸载挂载目录(如果先恢复,再卸载目录,挂载会报错)

cd ~

umount /mnt/cs

回滚快照

rbd snap rollback --pool rbd-data --image cs --snap cs-snap02

挂载目录

mount /dev/rbd1 /mnt/cs

 查看目录文件

ls /mnt/cs

可以看到恢复完成

快照删除

rbd snap rm --pool rbd-data --image cs --snap cs-snap #删除特定镜像

rbd snap purge --pool rbd-data --image cs #删除所有镜像

 

相关阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: