• kvm链接克隆虚拟机迁移到openstack机器的实验


     


     

    总结

    如果是完整克隆的那种虚拟机,是可以直接在openstack使用的,如果镜像格式没问题的话。

     

    因为kvm虚拟机大部分都是链接克隆出来的镜像,不可用直接复制使用,所以需要创建新的镜像文件

     

    创建空盘:qemu-img create -f qcow2 mcwlink1-new.qcow2 50G

    将链接克隆镜像数据导入到空盘,此时会将依赖的基础镜像数据一同导入:qemu-img convert -f qcow2 -O qcow2 mcwlink1.qcow2 mcwlink1-new.qcow2 

    迁移部分信息

    基础镜像:mcwtemplate.qcow2

    链接克隆镜像,依赖上面基础镜像:mcwlink1.qcow2

    链接克隆镜像,依赖上面基础镜像:mcwlink2.qcow2

    根据链接克隆镜像mcwlink1.qcow2,创建的可以在openstack正常使用的镜像: mcwlink1-new.qcow2

     

    可正常在openstack使用的链接克隆迁移镜像制作过程

    创建两个链接克隆磁盘
    [root@kvm008.bj.mcw.com img]# ls
    mcwtemplate.qcow2 v012-c73-st1-extend.qcow2 vm1-c73-history001.qcow2 vq25-cloudservice020.qcow2 vq42-cloudservice38.qcow2
    mcwtestbase.qcow2
    [root@kvm008.bj.mcw.com img]# qemu-img create -f qcow2 -b mcwtemplate.qcow2 mcwlink1.qcow2
    Formatting 'mcwlink1.qcow2', fmt=qcow2 size=53687091200 backing_file='mcwtemplate.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off
    [root@kvm008.bj.mcw.com img]# qemu-img create -f qcow2 -b mcwtemplate.qcow2 mcwlink2.qcow2
    Formatting 'mcwlink2.qcow2', fmt=qcow2 size=53687091200 backing_file='mcwtemplate.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off
    [root@kvm008.bj.mcw.com img]# pwd
    /data/kvm/img
    [root@kvm008.bj.mcw.com img]#

    定义两个实例的配置
    [root@kvm008.bj.mcw.com ares]# ls
    mcwlink1.xml mcwlink2.xml mcwtest.xml
    [root@kvm008.bj.mcw.com ares]# virsh define mcwlink2.xml
    Domain mcwlink2 defined from mcwlink2.xml

    [root@kvm008.bj.mcw.com ares]# virsh start mcwlink2
    Domain mcwlink2 started

    [root@kvm008.bj.mcw.com ares]#

    两个虚拟机都做点改动
    [root@kvm008.bj.mcw.com ares]# virsh console mcwlink1
    Connected to domain mcwlink1
    Escape character is ^]

    [root@mcwlink1 ~]# ls
    anaconda-ks.cfg ks-post.log ks-pre.log original-ks.cfg
    cobbler.ks ks-post-nochroot.log mcw.txt
    [root@mcwlink1 ~]# cat mcw.txt
    mcwlink1
    [root@mcwlink1 ~]#
    [root@kvm008.bj.mcw.com ares]# virsh console mcwlink2
    Connected to domain mcwlink2
    Escape character is ^]

    [root@mcwlink2 ~]# cat mcw.txt
    mcwlink2
    [root@mcwlink2 ~]#
    [root@kvm008.bj.mcw.com ares]#


    查看两个链接克隆的磁盘,是依赖基础镜像磁盘的

    [root@kvm008.bj.mcw.com img]# qemu-img info mcwlink1.qcow2
    image: mcwlink1.qcow2
    file format: qcow2
    virtual size: 50G (53687091200 bytes)
    disk size: 8.1M
    cluster_size: 65536
    backing file: mcwtemplate.qcow2
    Format specific information:
    compat: 1.1
    lazy refcounts: false
    [root@kvm008.bj.mcw.com img]# qemu-img info mcwlink2.qcow2
    image: mcwlink2.qcow2
    file format: qcow2
    virtual size: 50G (53687091200 bytes)
    disk size: 14M
    cluster_size: 65536
    backing file: mcwtemplate.qcow2
    Format specific information:
    compat: 1.1
    lazy refcounts: false
    [root@kvm008.bj.mcw.com img]#

     

    mcwlink1-new.qcow2

    创建空磁盘,然后使用转换格式的命令将磁盘数据写入到新磁盘,这样做,是会将依赖的基础磁盘backing file一同写入到新磁盘的,这样这个新磁盘就可以在openstack上用了,不然用它创建实例会报错无法创建openstack实例,会去找依赖的基础镜像backing file,
    我们也可以看到,下面的磁盘也不是几十m的链接克隆的磁盘了
    [root@kvm008.bj.mcw.com img]# qemu-img convert -f qcow2 -O qcow2 mcwlink1.qcow2 mcwlink1-new.qcow2
    [root@kvm008.bj.mcw.com img]# qemu-img info mcwlink1-new.qcow2
    image: mcwlink1-new.qcow2
    file format: qcow2
    virtual size: 50G (53687091200 bytes)
    disk size: 3.5G
    cluster_size: 65536
    Format specific information:
    compat: 1.1
    lazy refcounts: false
    [root@kvm008.bj.mcw.com img]#


    使用新的磁盘创建虚拟机,可以看到,原本的数据mcw.txt还在
    [root@kvm008.bj.mcw.com ares]# virsh define mcwlink1-new.xml
    Domain mcwlink1-new defined from mcwlink1-new.xml

    [root@kvm008.bj.mcw.com ares]# virsh start mcwlink1-new
    Domain mcwlink1-new started

    [root@kvm008.bj.mcw.com ares]# virsh console mcwlink1-new
    Connected to domain mcwlink1-new
    Escape character is ^]

    CentOS Linux 7 (Core)
    Kernel 4.14.15-1.el7.elrepo.x86_64 on an x86_64

    mcwlink1 login: root
    Password:
    Last login: Fri Jun 7 02:09:14 on ttyS0
    [root@mcwlink1 ~]# cat mcw.txt
    mcwlink1
    [root@mcwlink1 ~]#
    [root@kvm008.bj.mcw.com ares]# ls
    mcwlink1-new.xml mcwlink1.xml mcwlink2.xml mcwtest.xml
    [root@kvm008.bj.mcw.com ares]# cd /data/kvm/img/
    [root@kvm008.bj.mcw.com img]# ls
    mcwlink1-new.qcow2 v009-servicetest012.qcow2 v024-infotest001.qcow2 vq22-cloudservice017.qcow2 vq39-cloudservice35.qcow2
    mcwlink1.qcow2 v010-servicetest013.qcow2 v030-c73-bitest001.qcow2 vq23-cloudservice018.qcow2 vq40-cloudservice36.qcow2
    mcwlink2.qcow2


    然后用这个镜像,上传到openstack,启动实例,不过这里需要再配置下它的IP,我是设置的自动获取,然后重启网络,就有了openstack给它分配的IP了。

     

  • 相关阅读:
    web前端面试题附答案038-拼接字符串你平时怎么搞?
    【0227】smgr设计机制之新建一个磁盘表文件
    【Python从0到1】第三篇:基础语法(三)
    深入剖析多重背包问题(下篇)
    内卷?泡沫?变革?十个问题直击“元宇宙”核心困惑丨《问Ta-王雷元宇宙时间》精华实录...
    如何管理付费媒体预算:分配、风险与扩展
    程序设计与算法(三)C++面向对象程序设计笔记 第七周 输入输出和模板
    分类预测 | Matlab实现基于MIC-BP-Adaboost最大互信息系数数据特征选择算法结合Adaboost-BP神经网络的数据分类预测
    润和软件HopeStage与上海瑞美云LIS系统管理软件完成产品兼容性互认证
    五个元素的整形数组
  • 原文地址:https://www.cnblogs.com/machangwei-8/p/18238918