设为首页 收藏本站
查看: 4048|回复: 0

[经验分享] CEPH集群RBD快照创建、恢复、删除、克隆

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-9-27 08:45:04 | 显示全部楼层 |阅读模式
Ceph支持一个非常好的特性,以COW(写时复制)的方式从RBD快照创建克隆,在Ceph中被称为快照分层。分层特性允许用户创建多个CEPH RBD克隆实例。这些特性应用于OpenStack等云平台中,使用快照形式保护ceph RBD 镜像,快照是只读的,但COW克隆是完全可以写 ,可以多次来孵化实例,对云平台来说是非常有用的。

    Ceph RBD镜像有format-1  和 format-2两种类型,RBD支持这两种类型,但是分层特性COW克隆特性只支持format-2镜像,默认RBD创建的镜像是format-1。

ceph snap几个主要命令
ceph snap create (snap add)      Create a snapshot.
    snap list (snap ls)         Dump list of image snapshots.
    snap protect                Prevent a snapshot from being deleted.
    snap purge                  Deletes all snapshots.
    snap remove (snap rm)       Deletes a snapshot.
    snap rename                 Rename a snapshot.
    snap rollback (snap revert) Rollback image to snapshot.
    snap unprotect              Allow a snapshot to be deleted.

一、创建RBD镜像实例:
1、在pool1上创建一个RBD镜像,不使用-p <pool name>默认在rbd存储池上创建
[iyunv@node2 ~]# rbd create rbd1 -p pool1 --size 5G --image-format 1
rbd: image format 1 is deprecated

查看创建结果,使用-p指定存储池
[iyunv@node2 ~]# rbd list -p pool1
rbd1
[iyunv@node2 ~]# rbd info --image pool1/rbd1
rbd image 'rbd1':
    size 5120 MB in 1280 objects
    order 22 (4096 kB objects)
    block_name_prefix: rb.0.15d23.238e1f29
    format: 1

2、映射块设备
[iyunv@node2 ~]# rbd map --image pool1/rbd1
/dev/rbd3

查看映射的块设备
[iyunv@node2 ~]# rbd showmapped
id pool  image         snap device   
0  rbd   block-device1 -    /dev/rbd0
1  rbd   block-device3 -    /dev/rbd1
2  rbd   block-device4 -    /dev/rbd2
3  pool1 rbd1          -    /dev/rbd3

3、挂载文件系统使用
[iyunv@node2 ~]# mkfs.xfs /dev/rbd3
meta-data=/dev/rbd3              isize=256    agcount=9, agsize=162816 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=1310720, imaxpct=25
         =                       sunit=1024   swidth=1024 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

[iyunv@node2 ~]# mkdir /mnt/rbd3
[iyunv@node2 ~]# mount /dev/rbd3 /mnt/rbd3
[iyunv@node2 ~]# mount | grep rbd3
/dev/rbd3 on /mnt/rbd3 type xfs (rw,relatime,attr2,inode64,sunit=8192,swidth=8192,noquota)
[iyunv@node2 ~]# touch /mnt/rbd3/test
[iyunv@node2 ~]# ls /mnt/rbd3/
test

4、创建快照
[iyunv@node2 ~]# rbd snap create pool1/rbd1@snapshot1
[iyunv@node2 ~]# rbd snap ls pool1/rbd1
SNAPID NAME         SIZE
     4 snapshot1 5120 MB

5、在rbd3目录下创建文件test1
[iyunv@node2 ~]# touch /mnt/rbd3/test1
[iyunv@node2 ~]# ls /mnt/rbd3/
test  test1

6、恢复rbd1的快照
[iyunv@node2 ~]# rbd snap rollback pool1/rbd1@snapshot1
Rolling back to snapshot: 100% complete...done.
语法:rbd snap rollback <pool-name>/<image-name>@<snap-name>

7、重新挂载文件系统,发现已经恢复到之前的状态了
[iyunv@node2 ~]# umount /mnt/rbd3
[iyunv@node2 ~]# mount /dev/rbd3 /mnt/rbd3/
[iyunv@node2 ~]# ls /mnt/rbd3/
test
[iyunv@node2 ~]#

8、不再使用镜像时可以删除掉镜像
[iyunv@node2 ~]# rbd snap rm pool1/rbd1@snapshot1
[iyunv@node2 ~]# rbd snap ls pool1/rbd1
语法:rbd snap rm <pool-name>/<image-name>@<snap-name>

9、删除多个快照
[iyunv@node2 ~]# rbd snap purge pool1/rbd1
语法:rbd snap purge <pool-name>/<image-name>

二、使用RBD克隆
创建rbd2,类型为format2的RBD镜像
[iyunv@node2 ~]# rbd create rbd2 --size 10240 --image-format 2
[iyunv@node2 ~]# rbd info --image rbd2
rbd image 'rbd2':
    size 10240 MB in 2560 objects
    order 22 (4096 kB objects)
    block_name_prefix: rbd_data.15821238e1f29
    format: 2
    features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
    flags:

创建RBD镜像快照
[iyunv@node2 ~]# rbd snap create rbd/rbd2@snapshot1
[iyunv@node2 ~]# rbd snap ls rbd/rbd2
SNAPID NAME          SIZE
     7 snapshot1 10240 MB

创建COW镜像前先要保护这个快照,这是非常重要的一步
[iyunv@node2 ~]# rbd snap protect rbd/rbd2@snapshot1
通过快照创建一个克隆的RBD镜像

[iyunv@node2 ~]# rbd clone rbd/rbd2@snapshot1 rbd/clone_rbd2
[iyunv@node2 ~]# rbd info --image rbd/clone_rbd2
rbd image 'clone_rbd2':
    size 10240 MB in 2560 objects
    order 22 (4096 kB objects)
    block_name_prefix: rbd_data.15c1b3d1b58ba
    format: 2
    features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
    flags:
    parent: rbd/rbd2@snapshot1
    overlap: 10240 MB

创建克隆好了一个依赖于父镜像快照的RBD镜像后,为了让这个克隆的RBD镜像独立于父镜像,我们需要将父镜像的信息合并flattern到子镜像,一旦合并完成,RBD镜像和它的父镜像就不会存在任何关系了。
使用flatten合并
[iyunv@node2 ~]# rbd flatten rbd/clone_rbd2
Image flatten: 100% complete...done.

合并完成后,查看这个镜像信息,发现父镜像/快照名字不存大了
[iyunv@node2 ~]# rbd info --image clone_rbd2
rbd image 'clone_rbd2':
    size 10240 MB in 2560 objects
    order 22 (4096 kB objects)
    block_name_prefix: rbd_data.15c1b3d1b58ba
    format: 2
    features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
    flags:
[iyunv@node2 ~]#

如果你不再使用父镜像,可以先移除它的保护状态,再删除它
[iyunv@node2 ~]# rbd snap unprotect rbd/rbd2@snapshot1
[iyunv@node2 ~]# rbd snap rm rbd/rbd2@snapshot1


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-278001-1-1.html 上篇帖子: Ceph集群块设备使用-创建和使用OSD 下篇帖子: centos7 ceph-deploy 安装jewel
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表