美文网首页
如何将 ceph RBD image 从一个集群导出到另一个集群

如何将 ceph RBD image 从一个集群导出到另一个集群

作者: 酱油王0901 | 来源:发表于2023-11-10 14:59 被阅读0次

环境

集群名 Host 备注
cluster1 10.9.8.95-97 ci-test
cluster2 10.9.8.72-75 k1-k4

操作步骤

  1. 在 cluster1 创建 rbd 卷,并写入文件
[root@ci-test1 ~]# rbd create pool/lun1 --size=1G                                                                                          
[root@ci-test1 ~]# rbd ls -p pool                                                                                                            
lun1                                                                                             
[root@ci-test1 ~]# rbd feature disable pool/lun1 object-map fast-diff deep-flatten                                                           
[root@ci-test1 ~]# rbd map pool/lun1                                                                                                         
/dev/rbd0  
[root@ci-test1 ~]# mkdir /mnt/rbd
[root@ci-test1 ~]# mount /dev/rbd0 /mnt/rbd/
mount: /dev/rbd0 is write-protected, mounting read-only
mount: unknown filesystem type '(null)'
[root@ci-test1 ~]# mkfs.xfs /dev/rbd0
meta-data=/dev/rbd0              isize=512    agcount=8, agsize=32768 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=1024   swidth=1024 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=
[root@ci-test1 ~]# mount /dev/rbd0 /mnt/rbd/                                                                                                 
[root@ci-test1 ~]# cd /mnt/rbd/                                                                                                              
[root@ci-test1 rbd]# ls                                                                            
[root@ci-test1 rbd]# cp ~/go1.20.5.linux-amd64.tar.gz .                                                                                      
[root@ci-test1 rbd]# ls                                                                                                                      
go1.20.5.linux-amd64.tar.gz
[root@ci-test1 rbd]# md5sum go1.20.5.linux-amd64.tar.gz > md5
[root@ci-test1 rbd]# ls                                               
go1.20.5.linux-amd64.tar.gz  md5
  1. 创建快照
[root@ci-test1 ~]# rbd snap create pool/lun1@lun1_snap1
[root@ci-test1 ~]# rbd snap ls pool/lun1
SNAPID  NAME        SIZE     PROTECTED  TIMESTAMP               
     4  lun1_snap1  1 GiB             Fri Nov 10 16:15:46 2023          
[root@ci-test1 ~]# rbd ls -l -p pool
NAME             SIZE     PARENT  FMT  PROT  LOCK
lun1             1 GiB            2            
lun1@lun1_snap1  1 GiB            2 
  1. 导出 rbd 快照
[root@ci-test1 ~]# rbd export pool/lun1@lun1_snap1 lun1.export                                                                               
Exporting image: 100% complete...done. 
[root@ci-test1 ~]# ll lun1.export  -h                                                                                                        
-rw-r--r-- 1 root root 1.0G Nov 10 16:20 lun1.export
  1. 将导出的文件拷贝到 cluster2 节点上
~/go/src/deeproute/smd (udev ✗) scp 10.9.8.95:~/lun1.export .
lun1.export
  1. 在 cluster2 上导入 lun1.export
~/go/src/deeproute/smd (udev ✗) rbd import --image-format 2 --image-feature layering lun1.export new-pool/new-image
Importing image: 100% complete...done.

~/go/src/deeproute/smd (udev ✗) rbd ls -p new-pool
new-image
  1. 在 cluster2 上查看导入的 image
~/go/src/deeproute/smd (udev ✗) rbd map new-pool/new-image
/dev/rbd0
~/go/src/deeproute/smd (udev ✗) mount /dev/rbd0 /mnt/ceph
~/go/src/deeproute/smd (udev ✗) ls /mnt/ceph
go1.20.5.linux-amd64.tar.gz  md5
~/go/src/deeproute/smd (udev ✗) cd /mnt/ceph
/mnt/ceph cat md5
4504f55404e8021531fcbcfc669ebf87  go1.20.5.linux-amd64.tar.gz
/mnt/ceph md5sum go1.20.5.linux-amd64.tar.gz
4504f55404e8021531fcbcfc669ebf87  go1.20.5.linux-amd64.tar.gz

NOTE: 如果 rbd 卷很大,如果导出的话可能占用大量的存储空间,因此可以采用 PIPE 和 SSH 的方式直接从 cluster1 导出,然后导入到 cluster2,在 cluster1 上执行如下命令。

[root@ci-test1 ~]# rbd export pool/lun1@lun1_snap1 - | ssh root@10.9.8.72 "rbd import --image-format 2 --image-feature layering,exclusive-lock - new-pool/new-image"
Exporting image: 100% complete...done.
Importing image: 100% complete...done.

image-feature 可以与源卷保持一致。

参考链接

MachineNIX - How to export a ceph RBD image from one cluster to another without using a bridge serve

相关文章

  • (一) Ceph集群环境准备

    Ceph集群环境准备 基于本机搭建ceph集群及cephfs、cephrgw、cephrbd服务。 集群规划 生产...

  • MySQL部署到k8s实例

    k8s && ceph 环境信息 ceph 部署以及配置 搭建ceph集群 ceph 集群配置 ceph 创建My...

  • ceph 简介

    ceph:对象存储、块设备、文件系统... ceph存储集群的部署都始于一个个ceph节点,网络,ceph存储集群...

  • ceph命令

    ceph集群的监控检查集群的健康情况 # ceph health # ceph health detail 得到集...

  • Ceph I / O

    介绍 Ceph客户端接口从Ceph存储集群读取数据并将数据写入Ceph存储集群。客户端需要以下数据才能与Ceph存...

  • 关于 ip 端口监测的一点思路

    线上有ceph 对象存储集群以及ceph 块存储集群 定位一个nas nfs 挂载时而可以 时而不可以的问题 首先...

  • 集群异常下的IO

    问题 集群出现非致命性故障后,CEPH如何处理IO。 出于对问题的简化,假设分析场景为size为2的情况下rbd的...

  • ceph性能统计实现

    0. ceph是如何查看集群性能数据的 通过ceph -s显示本次查看的集群性能数据 通过ceph -w实时更新集...

  • ceph rbd:Image create

    创建image过程的代码走读。过程中,发现自己对librados aio机制和cls 注册的函数调用机制不太了解,...

  • 2021-08-30 ceph基础

    ceph 集群角色定义 Ceph osd 对象存储守护程序 (节点三个以上)Ceph Monitors 监视器 (...

网友评论

      本文标题:如何将 ceph RBD image 从一个集群导出到另一个集群

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