总结

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

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

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

将链接克隆镜像数据导入到空盘,此时会将依赖的基础镜像数据一同导入:qemu-img create -f qcow2 -b mcwtemplate.qcow2  mcwlink2.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了。

kvm链接克隆虚拟机迁移到openstack机器的实验的更多相关文章

  1. 单用户模式&救援模式&克隆虚拟机&Linux机器相互登录

    1.13 单用户模式 1.14 救援模式 1.15 克隆虚拟机 1.16 Linux机器相互登录 1.单用户模式 关机:init 0 .poweroff 重启:init 6 .reboot 关机:in ...

  2. 华为云计算IE面试笔记-桌面云中的用户组、虚拟机模板、模板虚拟机、虚拟机组和桌面组的关系及区别。发放完整复制和链接克隆虚拟机时,步骤有什么区别,要怎么选择桌面组?

    概念解释: 模板虚拟机:FC上创建的裸虚拟机,用于制作不同类型的虚拟机模板. 虚拟机模板:用于创建虚拟机的模板,对裸虚拟机(模板虚拟机)进行配置或自定义安装软件后,转为模板.虚拟机模板类型有完整复制, ...

  3. 全自动链接克隆KVM虚拟机

    virt-clone这个命令是基于全克隆的,也就是拷贝虚拟磁盘文件和虚拟配置文件来实现的完整克隆,速度慢,占用空间多 kvm软件包中并没有实现全自动链接克隆的命令或工具,只能手动实现,于是我决定写一个 ...

  4. 抽空学学KVM(七):虚拟机快照和克隆

    前几天学写了KVM中qume-info命令的使用,今天学学在虚拟化里面用处广泛的快照和克隆功能,snapshot和virt-clone.对于snapshot命令的使用其实很简单.进入virsh界面以后 ...

  5. OpenStack 之vmware机器迁移到openstack集群

    原理 openstack本身是支持使用vmware格式的镜像的,但是是需要我们我们在/etc/nova/nova.conf的配置文件中指定该计算节点使用vmware的驱动 1 2 3 4 5 6 7 ...

  6. kvm之十二:虚拟机迁移

    虚拟机迁移该方式要确保虚拟机是关机状态.virsh shutdown snalevirsh dumpxml snale > /etc/libvirt/qemu/snale_qy.xml  // ...

  7. kvm虚拟机迁移

    一.迁移简介 迁移: 系统的迁移是指把源主机上的操作系统和应用程序移动到目的主机,并且能够在目的主机上正常运行.在没有虚拟机的时代,物理机之间的迁移依靠的是系统备份和恢复技术.在源主机上实时备份操作系 ...

  8. kvm虚拟机迁移(6)

    一.迁移简介 迁移:      系统的迁移是指把源主机上的操作系统和应用程序移动到目的主机,并且能够在目的主机上正常运行. 在没有虚拟机的时代,物理机之间的迁移依靠的是系统备份和恢复技术.在源主机上实 ...

  9. 4.kvm克隆虚拟机

    virt-clone 作用简介 virt-clone 主要是用来克隆kvm虚拟机,并且通过 Options.General Option.Storage Configuration.Networkin ...

  10. 克隆虚拟机以及两台linux机器相互登录:linux学习第四篇

    克隆虚拟机 1.      克隆 之后自己命名克隆的虚拟机并自己选择存放位置,完成克隆 2.      克隆虚拟机之后对新的虚拟机修改网络配置,以免冲突(将配置文件里的UUID去掉,并修改IP地址) ...

随机推荐

  1. 使用python获取知乎**话题下的所有回答,并统计后发布。

    第一步:获取话题需要的url需要,并向上取整 for idx in range(0,math.ceil(totals/5)): url = f"https://www.zhihu.com/a ...

  2. vuex合作怎么用仓库

  3. Oracle 查询超级慢之buffer sort

    查询超级慢之buffer sort 在视图中增加了一个临时表作为一个数据源进行id和名称的转换,没加的时候一秒不到,加了以后14秒,感觉有点问题,于是打开了解释计划看了下,发现这个buffer sor ...

  4. 力扣122(java&python)-买卖股票的最佳时机 II(中等)

    题目: 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格. 在每一天,你可以决定是否购买和/或出售股票.你在任何时候 最多 只能持有 一股 股票.你也可以先购买 ...

  5. QUIC技术创新 让视频和图片分发再提速

    ​简介:在1月12日的「阿里云CDN产品发布会-新一代传输协议QUIC让CDN更快一步」之上,阿里云技术专家淮叶分享了QUIC技术及其应用落地实践,内容包含:QUIC协议介绍.相比TCP有哪些优势.应 ...

  6. 一文搞懂物联网Modbus通讯协议

    简介: 一般来说,常见的物联网通讯协议众多,如蓝牙.Zigbee.WiFi.ModBus.PROFINET.EtherCAT.蜂窝等.而在众多的物联网通讯协议中,Modbus是当前非常流行的一种通讯协 ...

  7. 007_Orcad运用Excel表格创建复杂元器件

    007_Orcad运用Excel表格创建复杂元器件 以AD9135为例,有88个引脚,如果一个一个输入引脚名,比较慢.用Excel做出引脚列表,比较快捷. 首先需要查询datasheet,用Solid ...

  8. Winform程序使用app.minifest清单禁止高DPI无法失效问题

    问题:Winform程序使用app.minifest清单禁止高DPI无法失效问题 摘要:因为笔记本基本都会有DPI放大,所以目前程序需要嵌入清单,并将其高DPI支持给禁止掉. 环境搭建:Winform ...

  9. JavaScript前端时间库moment.js

    1.获取当前时间 moment().format("YYYY-MM-DD HH:mm:ss"); moment().format("YYYY-MM-DD"); ...

  10. vue3.4中defineModel中默认值是复杂数据类型 (注意!!!)

    const drillFields = defineModel<string[]>('drillFields', { get(val) { return reactive(val || [ ...