分布式存储----------CEPH应用

**

CEPH应用

**

1、RBD块存储:

    RDB已经很好的集成在了linux内核中
    提供了企业功能,如快照,cow克隆等
    RBD还支持内存缓存,从而能够大大提升性能
         KVM可用借助于librbd

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"

scp /etc/udev/rules.d/90-cephdisk.rules  node2:/etc/udev/rules.d/90-cephdisk.rules

^2^3

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创建的镜像作为存储设备

注意:主要有权限在任何节点主机都可以执行ceph命令 查看

客户端使用服务器的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

搭建起ceph集群部署块设备 提供给远端客户端映射出来一块设备

**

快照 (创建快照目的为了误删数据可以使用快照直接恢复) snap快照

**
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 

如果想从快照恢复出来一个新的经此昂,则可以使用克隆
克隆前,需要对快照进行《保护》操作
被保护的快照无法删除,取消保护(unprotect)

克隆快照
1、克隆快照,首先要把快照保护起来,防止误删除之类的操作

[root@node6 ~]# rbd snap protect image --snap image-sn1

测试删除快照

rbd snap rm image --snap image-snap1
rbd: snapshot 'image-sn1' is protected from removal.
2020-02-15 12:01:44.060700 7f06de822d80 -1 librbd::Operations: snapshot is protected
rbd:快照'image-sn1'被保护不被删除。
1 librbd::操作:快照是受保护的

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   //副镜像是 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 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值