kvm虚拟机的克隆分为两种情况,本文也就通过以下两种情况进行克隆,克隆虚拟机为OEL5.8X64。
(1) KVM主机本机虚拟机直接克隆。
(2) 通过复制配置文件与磁盘文件的虚拟机复制克隆(适用于异机的静态迁移)。
1. 本机虚拟机直接克隆
(1) 查看虚拟机配置文件
# cat /etc/libvirt/qemu/linux1.xml
虚拟机磁盘文件: /data/linux1.img
虚拟机名称:linux1
(2) 开始克隆
# virt-clone -o linux1 -n linux02 -f /data/linux02.img
说明:以linux1做为源,克隆linux1虚拟机,并创建名称为linux02虚拟机,使用磁盘文件/data/linux02.img
(3) 启动虚拟机并配置主机名,IP地址等
可是如果 linux02开机了 那么linux1就无法正常的开机,提示***端口被占用的信息
建议不要先开机,先修改配置文件
vi /etc/libvirt/qemu/linux02.xml
找到***配置
修改*** 的port端口号(添加listen='0.0.0.0')
重新定义一下虚拟机的配置文件 virsh define /etc/libvirt/qemu/linux02.xml
# virsh console linux02
kvm控制台配置请见 kvm虚拟机控制台登录Linux配置。
(4) 修改主机名,IP地址等
修改IP地址 如果IP是手动配置的记得 修改 、如果是dhcp自动获取的 就不要修改了
# vi /etc/sysconfig/network-script/ifcfg-eth0
2. 复制配置文件与磁盘文件克隆
(1) 导入kvm虚拟机配置文件
这里采用linux1做为模板,进行克隆。
# virsh shutdown linux1
# virsh dumpxml linux1 > /etc/libvirt/qemu/linux03.xml
(2) 复制kvm虚拟机磁盘文件
本系列文章都是采用虚拟磁盘文件进行测试,没有使用lvm卷。
通过查看配置文件:虚拟磁盘位置<source file='/data/linux1.img'/>
复制磁盘 时间有点久~
(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
启动虚拟机
virsh start linux03
(5) 登录虚拟机进行主机名,IP等修改
修改主机名
修改IP地址 dhcp自动获取的 可以不用修改的
# vi /etc/sysconfig/network-script/ifcfg-eth0
service network restart
重启虚拟机
reboot
本文到此通过两种方式进行kvm虚拟机克隆,其实各有用处。
转载于:https://blog.51cto.com/xmlgrg/1792060