kvm虚拟机的克隆分为两种情况,本文也就通过以下两种情况进行克隆,克隆虚拟机为OEL5.8X64。

(1) KVM主机本机虚拟机直接克隆。

(2) 通过复制配置文件与磁盘文件的虚拟机复制克隆(适用于异机的静态迁移)。

1.  本机虚拟机直接克隆

(1) 查看虚拟机配置文件

# cat /etc/libvirt/qemu/linux1.xml    

wKioL1drTSnRf6HsAACaXm1YmBw299.png-wh_50

虚拟机磁盘文件: /data/linux1.img

虚拟机名称:linux1

wKioL1drTTrgYmgOAAAWpzdQfbQ988.png-wh_50

(2) 开始克隆

# virt-clone -o linux1 -n linux02 -f /data/linux02.img

说明:以linux1做为源,克隆linux1虚拟机,并创建名称为linux02虚拟机,使用磁盘文件/data/linux02.img

wKioL1drTUqwSgBiAADGYqZzhb0501.png-wh_50

 

(3) 启动虚拟机并配置主机名,IP地址等

可是如果 linux02开机了  那么linux1就无法正常的开机,提示***端口被占用的信息

建议不要先开机,先修改配置文件

vi /etc/libvirt/qemu/linux02.xml

找到***配置

修改*** 的port端口号(添加listen='0.0.0.0')

重新定义一下虚拟机的配置文件   virsh define /etc/libvirt/qemu/linux02.xml

wKioL1drTfzBO3CwAAAl1eP_Gq4781.png-wh_50

virsh console linux02
kvm控制台配置请见  kvm虚拟机控制台登录Linux配置

 

(4) 修改主机名,IP地址等

wKiom1drTg_gQCovAABzRGSqEdA728.png-wh_50

修改IP地址  如果IP是手动配置的记得 修改  、如果是dhcp自动获取的 就不要修改了

# vi /etc/sysconfig/network-script/ifcfg-eth0

 

service network restart
wKioL1drTizDhZ_zAADSic_4GLo918.png-wh_50

 

 

2.  复制配置文件与磁盘文件克隆

(1) 导入kvm虚拟机配置文件

这里采用linux1做为模板,进行克隆。

# virsh shutdown linux1

wKioL1drTj3w1J3zAAA9R2X3C50409.png-wh_50

# virsh dumpxml linux1 > /etc/libvirt/qemu/linux03.xml

wKiom1drTk-hCsPFAABmUiNV9Ow186.png-wh_50

(2) 复制kvm虚拟机磁盘文件

本系列文章都是采用虚拟磁盘文件进行测试,没有使用lvm卷。

通过查看配置文件:虚拟磁盘位置<source file='/data/linux1.img'/>

复制磁盘   时间有点久~

wKioL1drTmSgyorbAAC7h9051TE786.png-wh_50

wKiom1drTnXAx51VAACtSCnjCsA566.png-wh_50

(3) 直接编辑修改配置文件

修改name,uuid,disk位置,vnc端口

此时还是将该配置文件注册进来,无法通过virsh edit进行编辑。

 vi /etc/libvirt/qemu/linux03.xml    


<domain type='kvm'>    
  <name>linux03</name>       
  <uuid>8f2bb4a7-c7ed-32aa-3676-9fb05923260d</uuid>
  <memory unit='KiB'>524288</memory>    
  <currentMemory unit='KiB'>524288</currentMemory>    
  <vcpu placement='static'>1</vcpu>    
  <os>    
    <type arch='x86_64' machine='rhel6.4.0'>hvm</type>    
    <boot dev='hd'/>    
  </os>    
  <features>    
    <acpi/>    
    <apic/>    
    <pae/>    
  </features>    
  <clock offset='utc'/>    
  <on_poweroff>destroy</on_poweroff>    
  <on_reboot>restart</on_reboot>    
  <on_crash>restart</on_crash>    
  <devices>    
    <emulator>/usr/libexec/qemu-kvm</emulator>    
    <disk type='file' device='disk'>    
      <driver name='qemu' type='raw' cache='none'/>    
      <source file='/data/linux03.img'/>
      <target dev='hda' bus='ide'/>    
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>    
    </disk>    
    <disk type='block' device='cdrom'>    
      <driver name='qemu' type='raw'/>    
      <target dev='hdc' bus='ide'/>    
      <readonly/>    
      <address type='drive' controller='0' bus='1' target='0' unit='0'/>    
    </disk>    
    <controller type='usb' index='0'>    
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>    
    </controller>    
    <controller type='ide' index='0'>    
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>    
    </controller>    
    <interface type='bridge'>    
      <mac address='52:54:00:82:39:01'/>    
      <source bridge='br0'/>    
      <model type='virtio'/>    
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>    
    </interface>    
    <serial type='pty'>    
      <target port='0'/>    
    </serial>    
    <console type='pty'>    
      <target type='serial' port='0'/>    
    </console>    
    <input type='tablet' bus='usb'/>    
    <input type='mouse' bus='ps2'/>    
    <graphics type='vnc' port='5913' autoport='no' listen='0.0.0.0'>
      <listen type='address' address='0.0.0.0'/>    
    </graphics>    
    <video>    
      <model type='cirrus' vram='9216' heads='1'/>    
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>    
    </video>    
    <memballoon model='virtio'>    
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>    
    </memballoon>    
  </devices>    
</domain>

 

(4) 定义新虚拟机配置文件

 virsh define /etc/libvirt/qemu/linux03.xml    
wKioL1drTo3SlRkhAABe-uACVXY317.png-wh_50

启动虚拟机

 virsh start linux03   

(5) 登录虚拟机进行主机名,IP等修改

修改主机名

wKioL1drTp7jLFjIAAB8CT70XBM207.png-wh_50

修改IP地址    dhcp自动获取的 可以不用修改的

# vi /etc/sysconfig/network-script/ifcfg-eth0

wKiom1drTq2CmS17AAB3x6hWhD4035.png-wh_50

service network restart
重启虚拟机

reboot
本文到此通过两种方式进行kvm虚拟机克隆,其实各有用处。