总结

如果是完整克隆的那种虚拟机,是可以直接在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. 跨模态学习能力再升级,EasyNLP电商文图检索效果刷新SOTA

    简介: 本⽂简要介绍我们在电商下对CLIP模型的优化,以及上述模型在公开数据集上的评测结果.最后,我们介绍如何在EasyNLP框架中调用上述电商CLIP模型. 作者:熊兮.欢夏.章捷.临在 导读 多模 ...

  2. [Gse] 高效的Golang中文分析库推荐

    优点:用法简单,支持各种语言,基本满足需求. 缺点:默认分词字典文件有 8M 需测试使用速度. 我们可以直接封装一个简单的辅助方法来实现分词功能: // @author cnblogs.com/far ...

  3. [FAQ] curl SSL_connect: SSL_ERROR_SYSCALL / wget Unable to establish SSL connection

    当客户端访问 https 网站时遇到这些错误提示,通常问题出在服务器,而不是客户端. 因为你换一个 https 网站进行请求,可以验证这一点. 通过浏览器访问正常,大多数浏览器通过重试较低的 TLS ...

  4. [Trading] 专业交易: 专业交易员和散户交易员的不同, 什么是专业交易员

    专业交易员可能用的是公司的钱或者自己的钱 有基本工资支持,散户用的是自己的钱 没有人提供工资来做交易. 目标不同,专业交易员的目的是增长投资账户和获得奖金,散户大部分是为了提取盈利收入而无法增长投资账 ...

  5. IIncrementalGenerator 判断程序集的引用关系

    本文将告诉大家如何在 IIncrementalGenerator 增量 Source Generator 生成代码里面,在 Roslyn 分析器里面判断两个程序集是否存在引用关系 先上核心代码实现,核 ...

  6. 前端如何操作动态渲染的多个checkbox列表单选

    input[type=checkbox]:after{     content:"";     display:inline-block;     width:16px;      ...

  7. 一个可一键生成短视频的AI大模型,亲测可用

    大家好,我是 Java陈序员. 自从 OpenAI 发布 Sora 文本生成视频模型后,文本生成视频的 AI 技术引起了无数圈内圈外人士的关注和实验. 今天,给大家介绍一个大模型,可一键生成短视频. ...

  8. 21°C的冬天

    2023-12-08 16:15:36 星期五 标题没有在胡说,今天穿着初秋的衣服还嫌热,尤其是蒋震图书馆的空调更是燥热. 明天就去考教资面试了,但是一点也没有学习的兴趣,今天下午四点就写完了这周所有 ...

  9. 【zabbix】snmp监控linux主机

    1.安装net-snmp # yum install -y net-snmp 2.配置文件 /etc/snmp/snmpd.conf 添加如下内容 view systemview included . ...

  10. ls的输出格式

    在Linux中,如果在一个目录下面执行ls -al命令,输出格式如下: ls -al总共输出7列,下面对每一列进行说明. 第一列表示这个文件的权限与类型,它总共有10位,每个位的作用如下图所示: 其中 ...