CEPH应用
1、块存储:使用最多的一种方式
2、cephFS:了解,不建议在生产环境中使用,因为还不成熟
3、对象存储:了解,使用亚马逊的s3
使用RBD(Rados块设备)
1、查看存储池
[root@node1 ~]# ceph osd lspools
可以查看到0号镜像池,名字为rbd
2、创建名为demo-img的镜像大小为10GB
[root@node1 ~]# rbd create demo-img --image-feature layering --size 10G
[root@node1 ~]# rbd list
[root@node1 ~]# rbd info demo-img
3、创建第2个镜像,名为image,指定它位于rbd池中
[root@node1 ~]# rbd create rbd/image --image-feature layering --size 10G
在node1-node3上编写UDEV规则,使得vdb1和vdb2重启后,属主属组仍然是ceph
[root@node1 ~]# vim /etc/udev/rules.d/90-cephdisk.rules
ACTION=="add", KERNEL=="vdb[12]", OWNER="ceph", GROUP="ceph"
使用RBD(Rados块设备)
1、查看存储池
[root@node1 ~]# ceph osd lspools
可以查看到0号镜像池,名字为rbd
2、创建名为demo-img的镜像大小为10GB
[root@node1 ~]# rbd create demo-img --image-feature layering --size 10G
[root@node1 ~]# rbd list
[root@node1 ~]# rbd info demo-img
3、创建第2个镜像,名为image,指定它位于rbd池中
[root@node1 ~]# rbd create rbd/image --image-feature layering --size 10G
4、将image镜像大小缩减为7G
[root@node1 ceph-clu]# rbd resize --size 7G image --allow-shrink
[root@node1 ceph-clu]# rbd info image
5、扩容image到15G
[root@node1 ceph-clu]# rbd resize --size 15G image
[root@node1 ceph-clu]# rbd info image
6、将node6作为客户端,使用ceph创建的镜像作为存储设备
(1)安装客户端软件
[root@node6 ~]# yum install -y ceph-common
(2)拷贝相关文件
[root@node1 ceph-clu]# scp /etc/ceph/ceph.conf node6:/etc/ceph/
[root@node1 ceph-clu]# scp /etc/ceph/ceph.client.admin.keyring node6:/etc/ceph/
注:ceph.conf是配置文件,里面记录了ceph集群访问的方式和地址
ceph.client.admin.keyring是client.admin用户的密钥文件
(3)映射image镜像到本地
[root@node6 ~]# rbd map image
/dev/rbd0 ->rbd0就是映射出来的硬盘文件
[root@node6 ~]# lsblk
[root@node6 ~]# rbd showmapped
(4)格式化、挂载
[root@node6 ~]# mkfs.ext4 /dev/rbd0
[root@node6 ~]# mount /dev/rbd0 /mnt/
[root@node6 ~]# df -h /mnt/
[root@node6 ~]# echo 'hello world' > /mnt/hello.txt
快照
1、查看image镜像的快照
[root@node6 ~]# rbd snap ls image
2、为image创建名为image-sn1的快照
[root@node6 ~]# rbd snap create image --snap image-sn1
3、模拟误删除操作,恢复数据
(1)删除
[root@node6 ~]# rm -f /mnt/hello.txt
(2)卸载设备
[root@node6 ~]# umount /mnt/
(3)使用image-sn1还原快照
[root@node6 ~]# rbd snap rollback image --snap image-sn1
(4)挂载,查看是否已恢复
[root@node6 ~]# mount /dev/rbd0 /mnt/
[root@node6 ~]# cat /mnt/hello.txt
克隆快照
1、克隆快照,首先要把快照保护起来,防止误删除之类的操作
[root@node6 ~]# rbd snap protect image --snap image-sn1
2、克隆image-sn1快照,克隆的名称是image-cl1
[root@node6 ~]# rbd clone image --snap image-sn1 image-cl1 --image-feature layering
3、查看状态
[root@node6 ~]# rbd info image-cl1
parent: rbd/image@image-sn1
4、合并克隆文件
[root@node6 ~]# rbd flatten image-cl1
[root@node6 ~]# rbd info image-cl1 没有parent了
5、删除
[root@node6 ~]# umount /mnt/
[root@node6 ~]# rbd showmapped
[root@node6 ~]# rbd unmap /dev/rbd/rbd/image