Ceph块存储-3·快照克隆

作者: 技术老男孩 | 来源:发表于2022-11-26 08:59 被阅读0次

    一、注意事项:

    • 不能将一个镜像同时挂载到多个节点,如果这样操作,将会损坏数据(产生脑裂现象)
    • 如果希望不同的节点,拥有完全相同的数据盘,可以使用克隆技术
    • 克隆是基于快照的,不能直接对镜像克隆
    • 快照必须是受保护的快照,才能克隆
    • 可以给多个客户端生成数据相同的数据盘

    二、克隆流程:

    克隆流程.png

    三、功能实现:

    第一步:创建镜像

    # 创建名为img2的镜像,大小10GB
    [root@node1 ~]# rbd create img2 --size 10G
    # 映射到本地
    [root@node1 ~]# rbd map img2
    # 格式化xfs
    /dev/rbd0
    [root@node1 ~]# mkfs.xfs /dev/rbd0[root@node1 ~]# mount /dev/rbd0 /mnt/
    # 向镜像中写入数据
    [root@node1 ~]# for i in {1..20}
    > do
    > echo "Hello World $i" > /mnt/file$i.txt
    > done
    [root@node1 ~]# ls /mnt/
    file10.txt  file15.txt  file1.txt   file5.txt
    file11.txt  file16.txt  file20.txt  file6.txt
    file12.txt  file17.txt  file2.txt   file7.txt
    file13.txt  file18.txt  file3.txt   file8.txt
    file14.txt  file19.txt  file4.txt   file9.txt
    # 数据写入完成后卸载镜像(这步可做可不做)
    [root@node1 ~]# umount /mnt/
    [root@node1 ~]# rbd unmap /dev/rbd0
    

    第二步:创建镜像的快照

    # 为img2创建名为img2-sn1快照
    [root@node1 ~]# rbd snap create img2 --snap img2-sn1
    

    第三步:将创建的快照设置“保护”

    # 保护img2-sn1快照
    [root@node1 ~]# rbd snap protect img2 --snap img2-sn1
    

    第四步:克隆

    # 通过受保护的快照img2-sn1创建克隆镜像
    [root@node1 ~]# rbd clone img2 --snap img2-sn1 img2-sn1-1
    # 如果前面配置文件没有将rbd_default_features = 1
    # 则需要在最后加上 --image-feature layering
    [root@node1 ~]# rbd clone img2 --snap img2-sn1 img2-sn1-2 --image-feature layering
    # 查看创建出来的、克隆的镜像
    [root@node1 ~]# rbd list
    img1
    img2
    img2-sn1-1
    img2-sn1-2
    

    相关文章

      网友评论

        本文标题:Ceph块存储-3·快照克隆

        本文链接:https://www.haomeiwen.com/subject/bgkxfdtx.html