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

kvm,openstack · 浏览次数 : 0

小编点评

本文介绍了如何将完整性克隆的虚拟机迁移到OpenStack中。首先,我们需要确保虚拟机镜像格式正确。接下来,我们通过以下步骤完成了虚拟机的迁移: 1. 创建一个新的镜像文件(例如mcwlink1-new.qcow2),用于存储链接克隆的虚拟机。 2. 使用qemu-img create命令创建一个新的空磁盘文件mcwlink1.qcow2。 3. 将链接克隆镜像数据导入到新创建的空磁盘中。 4. 使用qemu-img create命令创建另一个新磁盘文件mcwlink2.qcow2,并将其格式化为与mcwlink1.qcow2相同。 5. 迁移基础镜像数据到mcwlink2.qcow2。 6. 使用新创建的磁盘文件mcwlink1-new.qcow2启动虚拟机。 完成这些操作后,我们将一个链接克隆的虚拟机成功迁移到了OpenStack中,并且能够在OpenStack上正常使用。

正文

 

总结

如果是完整克隆的那种虚拟机,是可以直接在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机器的实验相似的内容:

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

总结 如果是完整克隆的那种虚拟机,是可以直接在openstack使用的,如果镜像格式没问题的话。 因为kvm虚拟机大部分都是链接克隆出来的镜像,不可用直接复制使用,所以需要创建新的镜像文件 创建空盘:qemu-img create -f qcow2 mcwlink1-new.qcow2 50G 将链

[转帖]KVM打快照

https://www.jianshu.com/p/98e12540d314 virsh snapshot-create-as +虚拟机名称+快照名 1.[root@localhost /]# virsh list #查看当前运行的虚拟机 2.[root@localhost /]# virsh sn

[转帖]KVM创建快照失败 “Operation not supported: internal snapshots of a VM with pflash based firmware are not supported”

https://www.cnblogs.com/anderly/p/14977989.html KVM/QEMU创建虚拟机快照时,报如下错误: Operation not supported: internal snapshots of a VM with pflash based firmware

[转帖]KVM——以桥接的方式搭建虚拟机网络配置

https://www.cnblogs.com/weilu2/p/kvm_bridge_centos7.html 以桥接的方式搭建虚拟机网络,其优势是可以将网络中的虚拟机看作是与主机同等地位的服务器。 在原本的局域网中有两台主机,一台是win7(IP: 192.168.0.236),一台是CentO

[转帖]KVM安装

https://www.cnblogs.com/weilu2/p/linux_kvm_install_config.html 检查CPU是否支持硬件虚拟化 在开始安装KVM之前,需要检查系统中的CPU是否支持硬件虚拟化的特性,执行下面的命令: grep -E '(vmx|svm)' /proc/cp

[转帖]KVM——以桥接的方式搭建虚拟机网络配置

https://www.cnblogs.com/weilu2/p/kvm_bridge_centos7.html 以桥接的方式搭建虚拟机网络,其优势是可以将网络中的虚拟机看作是与主机同等地位的服务器。 在原本的局域网中有两台主机,一台是win7(IP: 192.168.0.236),一台是CentO

[1036]kvm虚拟机访问时提示no route to host分析

环境 宿主机: IP: 10.110.136.43 版本:Kylin Linux Advanced Server release V10 (Sword) KVM vm: IP: 10.110.136.59 版本:UnionTech OS Server 20 故障描述 kvm虚拟机136.59可以被其

[转帖]KVM与ESXi 对比

关于KVM KVM,深受开源、国产虚拟化、云计算厂家欢迎,费用可以无视,可定制,配合的开源云管平台很丰富,但是对入门用户不友好,第三方工具不够多,无代理备份方式受限于KVM所选择的Linux发行版本,导致各个版本的第三方工具支持力度不高。大厂喜欢,企业用户不喜欢。 关于Vmware ESXi,商业版

[转帖]【KVM】KVM和QEMU的关系及区别

KVM架构 KVM(Kernel-based Virtual Machine)包含一个为处理器提供底层虚拟化、可加载的核心 模块kvm.ko(kvm-intel.ko或kvm-amd.ko),使用QEMU(QEMU-KVM)作为虚拟机上层 控制工具。KVM无需改变Linux或Windows系统就能运

[转帖]kvm web管理 webvirtmgr

https://www.jianshu.com/p/8fd2ddadebe9 reference https://blog.csdn.net/yangshihuz/article/details/104055288 https://blog.csdn.net/u010856284/article/d