一 KVM宿主机内克隆

1.1 查看虚拟机配置

 [root@kvm-host ~]# cat /etc/libvirt/qemu/vm01-centos6.8.xml
…………
[root@kvm-host ~]# ll /data/images/ #虚拟机磁盘文件
total 1.3G
-rw-------. 1 qemu qemu 21G May 27 00:45 vm01-centos6.8.img [root@kvm-host ~]# virsh list --all #虚拟机名称
Id Name State
----------------------------------------------------
- vm01-centos6.8 shut off

1.2 克隆操作

 [root@kvm-host ~]# virt-clone -o vm01-centos6.8 -n vm02-centos6.8 -f /data/images/vm02-centos6.8.img

注意:也可使用下列语法——

 virt-clone --connect qemu:///system --original vm01-centos6.8 --name vm02-centos6.8 --file /data/images/vm02-centos6.8.img 
 [root@kvm-host ~]# virsh list --all
Id Name State
----------------------------------------------------
- vm01-centos6.8 shut off
- vm02-centos6.8 shut off

建议:建议克隆的时候关机操作,也可挂起状态。

1.3 启动新虚机并配置

 [root@kvm-host ~]# virsh start vm02-centos6.8
[root@kvm-host ~]# virsh console 3 #进入虚机
[root@localhost ~]# vi /etc/hosts #根据需要修改
[root@localhost ~]# vi /etc/sysconfig/network #根据需要修改
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=52:54:00:b0:6b:dc
ONBOOT=yes #开机启动
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=172.24.8.41
NETMASK=255.255.255.0
GATEWAY=172.24.8.2
[root@localhost ~]# vi /etc/udev/rules.d/70-persistent-net.rules
# PCI device 0x1af4:0x1000 (virtio-pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:b0:6b:dc", ATTR{type}=="", KERNEL=="eth*", NAME="eth0"
[root@localhost ~]# shutdown -r now #重启生效

提示:

1:若局域网内存在DHCP可开启,若不存在,可配置和宿主机同网段的静态IP。

#ifconfig eth0 up

#dhclient eth0

2:Mac地址需要和kvm的xml配置文件中一直,全局唯一,查看地址为<mac address='52:54:00:b0:6b:dc'/>。

3:建议修改IP、MAC、UUID等信息,防止和源主机冲突。

二 异机之间克隆

2.1 查看虚拟机配置

  • 源主机名:vm01-centos6.8
  • 源主机配置文件:/etc/libvirt/qemu/vm01-centos6.8.xml
  • 源主机磁盘文件:/data/images/vm01-centos6.8.img
  • 克隆主机名:vm03-centos6.8
  • 克隆主机配置文件:/etc/libvirt/qemu/vm03-centos6.8.xml
  • 克隆主机磁盘文件:/data/images/vm03-centos6.8.img

建议:建议克隆的时候关机操作,也可挂起状态。

2.1 复制配置文件

 [root@kvm-host ~]# virsh dumpxml vm01-centos6.8 > /etc/libvirt/qemu/vm03-centos6.8.xml

2.2 复制磁盘文件

 [root@kvm-host ~]# cp /data/images/vm01-centos6.8.img /data/images/vm03-centos6.8.img

2.3 修改相关配置信息

 [root@kvm-host ~]# vi /etc/libvirt/qemu/vm03-centos6.8.xml
……
<name>vm03-centos6.8</name>
<uuid>1a35bbaf-988f-4467-abe4-5e43a97094cd</uuid>
……
<source file='/data/images/vm03-centos6.8.img'/>
……
<graphics type='vnc' port='5903' autoport='no' listen='0.0.0.0'>
……
<mac address='52:54:00:7d:99:10'/>
……

注意:需要将以上相关参数修改为和源虚机不一致。

2.4 重新定义新虚机配置

 [root@kvm-host ~]# virsh define /etc/libvirt/qemu/vm03-centos6.8.xml

2.5 启动新虚机

 [root@kvm-host ~]# virsh start vm03-centos6.8

2.6 进入新虚机并配置

 [root@kvm-host ~]# virsh console vm03-centos6.8

略,参考1.3.

006.KVM虚机克隆的更多相关文章

  1. 远程管理 KVM 虚机 - 每天5分钟玩转 OpenStack(5)

    上一节我们通过 virt-manager 在本地主机上创建并管理 KVM 虚机.其实 virt-manager 也可以管理其他宿主机上的虚机.只需要简单的将宿主机添加进来 填入宿主机的相关信息,确定即 ...

  2. 启动第一个 KVM 虚机 - 每天5分钟玩转 OpenStack(4)

    本节演示如何使用 virt-manager 启动 KVM 虚机. 首先通过命令 virt-manager 启动图形界面 # virt-manager 点上面的图标创建虚机 给虚机命名为 kvm1,这里 ...

  3. KVM 介绍(8):使用 libvirt 迁移 QEMU/KVM 虚机和 Nova 虚机 [Nova Libvirt QEMU/KVM Live Migration]

    学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...

  4. KVM 介绍(6):Nova 通过 libvirt 管理 QEMU/KVM 虚机 [Nova Libvirt QEMU/KVM Domain]

    学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...

  5. KVM(六)Nova 通过 libvirt 管理 QEMU/KVM 虚机

    1. Libvirt 在 OpenStack 架构中的位置 在 Nova Compute 节点上运行的 nova-compute 服务调用 Hypervisor API 去管理运行在该 Hypervi ...

  6. 启动第一个 KVM 虚机

    本节演示如何使用 virt-manager 启动 KVM 虚机. 首先通过命令 virt-manager 启动图形界面 1 # virt-manager 点上面的图标创建虚机 给虚机命名为 kvm1, ...

  7. 远程管理 KVM 虚机

    上一节我们通过 virt-manager 在本地主机上创建并管理 KVM 虚机.其实 virt-manager 也可以管理其他宿主机上的虚机.只需要简单的将宿主机添加进来 填入宿主机的相关信息,确定即 ...

  8. O005、远程管理 KVM 虚机

    参考https://www.cnblogs.com/CloudMan6/p/5256018.html   上一节我们通过 virt-manager 在本地主机上创建并管理 KVM 虚机,其实 virt ...

  9. O004、启动第一个KVM虚机

    参考https://www.cnblogs.com/CloudMan6/p/5249270.html   本节演示如何使用 virt-manager 启动 KVM 虚机,   提前下载一个 cirro ...

随机推荐

  1. 团队Git使用教程

    团队git使用教程(不要使用IDE自带版本控制功能) 角色分配:项目观察者.项目拥有者.项目开发人员 场景:项目拥有者创建项目 1. 在当前目录新建一个git代码库 git init "te ...

  2. 1.Unix,Linux起源与编译原理

    一.UNIX操作系统   作者:丹尼斯.里奇,肯.汤普逊  版权:贝尔实验室  时间:1971  特点:多用户,多任务(多进程),多CPU(多种CPU架构),高安全,高可靠,高性能,高稳定  应用:构 ...

  3. linux 系统文件类型、系统安装时间、系统启动时间、系统运行时间、设置及显示时间、系统时间和硬件时间

    系统文件类型: 1) $mout 2) df -l:仅列出本地文件系统:-h (--human-readable):-T:文件系统类型 $df -lhf 3) file -s (--special-f ...

  4. SQL Server 执行计划的理解

    要理解执行计划,怎么也得先理解,那各种各样的名词吧.鉴于自己还不是很了解.本文打算作为只写懂的,不懂的懂了才写. 在开头要先说明,第一次看执行计划要注意,SQL Server的执行计划是从右向左看的. ...

  5. Scala进阶之路-面向对象编程之类的成员详解

    Scala进阶之路-面向对象编程之类的成员详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Scala中的object对象及apply方法 1>.scala 单例对象 ...

  6. Android改进版CoverFlow效果控件

    最近研究了一下如何在Android上实现CoverFlow效果的控件,其实早在2010年,就有Neil Davies开发并开源出了这个控件,Neil大神的这篇博客地址http://www.inter- ...

  7. Python super() 函数

    super() 函数是用于调用父类(超类)的一个方法. super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果重定义某个方法,该方法会覆盖父类的同名方法,但有时 ...

  8. TC-572-D1L2 (双向搜索+记忆化)

    solution: 这一题是比较难实现的双向搜索题:(字符串+双向搜索+hash记忆化) 我们可以先把K的前半部分枚举出来,并将得出的所有结果和题目给的n个数的每一个数的前半部分都比对一遍,得到它和每 ...

  9. sqlserver2008R2数据库自动备份脚本

    CREATE proc [dbo].[usp_autoBackupDB] @dbname sysname=null --要备份的数据库名,不指定即为全部备份 ,)='d:\' --备份目录路径 ,)= ...

  10. 直接读取修改exe文件

    1. 前言 配置器的编写有很多的方式,主要是直接修改原始的受控端的程序,有的方式是把受控端和配置信息都放到控制端程序的内部,在需要配置受控端的时候直接输入配置信息,生成受控端:也有的方式是在外部直接修 ...