• ceph 快照,克隆


    转载 https://my.oschina.net/wangzilong/blog/1595081

    ceph 快照,克隆

    ceph是一个非常好的后端存储系统。其中包括最常用的块存储,对象存储,文件系统。下面我们就说说用的最多的块存储。
    块存储的原理和机制大家都了解,但是快存储也是支持快照和克隆的。

    1、快照

    ceph的快照是把源镜像做一个只读副本,以后用于恢复。

    [root@ceph-admin ceph]# rbd ls test_pool7
    testRBD
    test_rbd7
    test_rbd_clone7
    [root@ceph-admin ceph]# rbd info test_pool7/testRBD
    rbd image 'testRBD':
    	size 1024 MB in 256 objects
    	order 22 (4096 kB objects)
    	block_name_prefix: rbd_data.e3bcda74b0dc51
    	format: 2
    	features: layering
    	flags: 
    

    2、克隆 

    这里主要讲的是可以基于快照镜像克隆,克隆所采用的也就是cow,叫做copy on write 俗话也叫做“写时复制”,更贴切一点叫做“写时再复制”。这里的克隆就是基于快照创建的克隆只创建了映射到源(这里的源也就是快照)的逻辑,还没有给克隆分配真实的物理空间。这一点相信大家都理解。虽然快照是只读的,但是基于快照创建的克隆是可读可写的。当我们对克隆的镜像执行写操作的时候,系统才会真正的给克隆的镜像分配物理空间。克隆的镜像或者被写过的克隆镜像都是可以正常使用的和镜像本身是一样的。这就是所谓的cow。当对克隆的镜像没有写而是读的时候,那么读取的是要被克隆的快照,明白了上面的道理所以我们知道从快照克隆的镜像是依赖于快照的,一旦快照被删除则这个克隆镜像也就毁了,所以我们要保护好这个快照。

    #创建快照
    [root@ceph-admin ceph]# rbd snap create test_pool7/testRBD@testRBD-snap---也就是testRBD镜像的副本
    #查看快照
    [root@ceph-admin ceph]# rbd snap list test_pool7/testRBD
    SNAPID NAME            SIZE 
         7 testRBD-snap 1024 MB 
    #创建快照的克隆
    [root@ceph-admin ceph]# rbd clone test_pool7/testRBD@testRBD-snap test_pool7/testRBD-snap-clone----对快照进行克隆
    2017-12-26 14:05:48.941845 7fe1f4082d80 -1 librbd: parent snapshot must be protected
    rbd: clone error: (22) Invalid argument
    # 上面报错了,告诉你快照创建克隆之前需要被保护-------这个错误提醒的很对,要不提醒的
    
    # 保护快照
    [root@ceph-admin ceph]# rbd snap protect test_pool7/testRBD@testRBD-snap-----对快照进行保护
    # 创建克隆
    [root@ceph-admin ceph]# rbd clone test_pool7/testRBD@testRBD-snap test_pool7/testRBD-snap-clone-----再对快照进行克隆
    #查看克隆
    [root@ceph-admin ceph]# rbd ls test_pool7|grep clone|grep RBD
    testRBD-snap-clone
    #查看克隆的详细信息
    [root@ceph-admin ceph]# rbd info test_pool7/testRBD-snap-clone
    rbd image 'testRBD-snap-clone':
    	size 1024 MB in 256 objects
    	order 22 (4096 kB objects)
    	block_name_prefix: rbd_data.e3f94a2ae8944a
    	format: 2
    	features: layering
    	flags: 
    	parent: test_pool7/testRBD@testRBD-snap
    	overlap: 1024 MB	
    

    我们可以看到克隆成功的镜像是依赖于快照的,能看到 parent,overlap

    如果不想被依赖于快照,需要对克隆和快照做一个合并

    [root@ceph-admin ceph]# rbd flatten test_pool7/testRBD-snap-clone---对克隆进行合并
    Image flatten: 100% complete...done.
    [root@ceph-admin ceph]# rbd info test_pool7/testRBD-snap-clone
    rbd image 'testRBD-snap-clone':
    	size 1024 MB in 256 objects
    	order 22 (4096 kB objects)
    	block_name_prefix: rbd_data.e3f94a2ae8944a
    	format: 2
    	features: layering
    	flags:	
    

    现在克隆的镜像已经不依赖于快照了,看不见parent和overlap
    现在我们删除快照是可以的

    # 解除快照保护
    [root@ceph-admin ceph]# rbd snap unprotect test_pool7/testRBD@testRBD-snap
    #删除快照
    [root@ceph-admin ceph]# rbd snap rm test_pool7/testRBD@testRBD-snap
    	
    

     

      

      

  • 相关阅读:
    Manjaro 安装与初步使用
    hp 820 G3 驱动安装不上
    Linux Mint
    PHP模板引擎原理
    报名系统跟商品购物有点类似,可以参考一下他们的ER图
    tp5接口开发流程(思路版)
    mysql中主键和外键的作用,主表和从表如何区分,以及如何使用联合查询和TP5的联合查询
    关于会员-考生-考生自定义表单-预览打印
    PHP unserialize()和serialize两者的用法
    如何解决复杂的问题?如何在未知的领域里,解决需求?
  • 原文地址:https://www.cnblogs.com/potato-chip/p/12350720.html
Copyright © 2020-2023  润新知