Ceph RBD使用详解

创建存储池

ceph osd pool create rbd-data1 32 32 #创建
ceph osd pool ls #查看下
ceph osd pool application enable rbd-data1 rbd #在存储池启用rbd
rbd pool init -p rbd-data1 #初始化

 创建镜像

rbd create data-img1 --size 3G --pool rbd-data1 --image-format 2 --image-feature layering
rbd create data-img2 --size 5G --pool rbd-data1 --image-format 2 --image-feature layering

验证镜像

rbd ls --pool rbd-data1

查看镜像详细信息

rbd --image data-img2 --pool rbd-data1 info

以json格式显示

rbd ls --pool rbd-data1 -l --format json --pretty-format

启动存储池中指定镜像的特性

rbd feature enable exclusive-lock --pool rbd-data1 --image data-img1
rbd feature enable object-map --pool rbd-data1 --image data-img1
rbd feature enable fast-diff --pool rbd-data1 --image data-img1

镜像特性的禁用,会存在依赖关系需要先禁用哪个特性

rbd feature disable fast-diff --pool rbd-data1 --image data-img1

 

客户端配置yum源,安装ceph-common

yum install epel-release
yum install https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-octopus/el7/noarch/ceph-release-1-1.el7.noarch.rpm -y
yum install ceph-common -y

在ceph上创建一个普通用户

ceph auth add client.yzy mon 'allow r' osd 'allow rwx pool=rbd-data1' ceph执行
ceph-authtool --create-keyring ceph.client.yzy.keyring #创建key文件 ceph执行
ceph auth get client.yzy -o ceph.client.yzy.keyring #导出用户keyring ceph执行
scp ceph.conf ceph.client.yzy.keyring root@10.0.0.22:/etc/ceph #将ceph配置文件和yzy认证文件拷贝到客户端 ceph执行
ceph --user yzy -s #使用yzy用户也可以查看ceph状态 客户端执行
rbd --user yzy -p rbd-data1 map data-img2 #映射rbd 客户端执行
fdisk -l #查看是否有新映射的磁盘 客户端执行
mkfs.xfs /dev/vdb #直接就可以格式化了
rbd ls -p rbd-data1 -l #管理端验证镜像状态

镜像空间拉伸

umount /data #先卸载
rbd resize --pool rbd-data1 --image data-img2 --size 8G #扩展到8G
mount /dev/vdb /data #在挂载,挂载之后df -h查看不会立即扩大,fdisk查看是已经变大了
xfs_growfs /data #在node挂载点对挂载点识别,如果是xfs格式执行这个
resize2fs /dev/vdb #在node节点对磁盘重新识别,如果是ext4执行这个

设置开机自动挂载

chmod a+x /etc/rc.d/rc.local
vim /etc/rc.d/rc.local
rbd --user yzy -p rbd-data1 map data-img2
mount /dev/vdb /data

卸载镜像

umount /data #卸载
rbd showmapped #查看镜像
vim /etc/rc.d/rc.local #去掉开机自动挂载
rbd --user yzy -p rbd-data1 unmap data-img1 #卸载镜像
rbd rm --pool rbd-data1 --image data-img1 #删除镜像

 镜像回收站机制

rbd trash move --pool rbd-data1 --image data-img2 #将data-img2移入到回收站
rbd trash list --pool rbd-data1 #查看回收站有哪些
rbd trash restore --pool rbd-data1 --image data-img2 --image-id {id} #把镜像从回收站移出来,id换成自己的id
rbd ls -p rbd-data1 -l #查看
rbd trash remove --pool rbd-data1 {id} #从回收站里删除

镜像快照,将data提前存点数据做实验

rbd snap create --pool rbd-data1 --image data-img2 --snap img2-snap-20221211 #创建一个快照
rbd snap list --pool rbd-data1 --image data-img2 #验证快照
rm -rf /data/passwd #删除文件测试
ll /data/
umount /data #卸载rbd
rbd unmap /dev/vdc
rbd snap rollback --pool rbd-data1 --image data-img2 --snap img2-snap-20221211 #回滚快照
rbd --user yzy -p rbd-data1 map data-img2 #客户端映射rbd
mount /dev/vdc /data
ll /data

rbd snap remove --pool rbd-data1 --image data-img2 --snap img2-snap-20221211# 删除快照
rbd snap limit set --pool rbd-data1 --image data-img2 --limit 30#限制快照数量
rbd snap limit clear --pool rbd-data1 --image data-img2 #清除快照数量限制

 

posted @ 2022-09-08 17:37  Maniana  阅读(334)  评论(0编辑  收藏  举报