KVM日常管理和克隆

goawalk 2017-04-17

常用安装管理
创建虚拟机的桥接网卡,并原来物理网卡上IP自动添加到桥接网卡上:
virsh iface-bridge eth0  br0

不创建虚拟磁盘,一次性创建KVM虚拟机(默认为qcow2磁盘格式,网络为桥接模式,在此前最好安装virt-manager):
virt-install  --virt-type kvm --name CentOS-7-x86_64 --ram 2048 \
 -vcpus=1 -s 20 -c /vm/iso/CentOS-7-x86_64-DVD-1511.iso --hvm  \
  --os-type=linux -f /vm/CentOS-7-x86_64-tmp.img --graphics vnc,listen=0.0.0.0 \
  --noautoconsole

查看镜像信息:
# qemu-img info CentOS-6.5-x86_64.raw
 
image: CentOS-6.5-x86_64.raw
file format: raw
virtual size: 5.0G (5368709120 bytes)
disk size: 939M

把文件从qcow2格式装换成raw格式(转换之后需要修改对应xml文件):
qemu-img  convert -f qcow2 -O raw  CentOS-6.img CentOS-6.raw

转换之后需要修改xml中对应的镜像路径,格式。

本地虚拟机克隆
1、首先关闭虚拟机,虚拟机运行状态下无法clone

2、以CentOS-6-x86_64为源镜像,克隆一个新的CS6的镜像,新镜像磁盘为CS-6.raw
# virt-clone -o CentOS-6-x86_64 -n CS6 -f /vm/image/CS-6.raw

3. 对比新镜像和源镜像的xml文件,发现自动更新了镜像路径和MAC地址信息,其他不变,同时,新镜像自动加入了虚拟机列表 virsh list --all。
4、启动配置即可。

通过复制配置文件与磁盘文件的虚拟机地址克隆(适用于异机的迁移)
1、备份出需要迁移的虚拟机xml文件
virsh  dumpxml CentOS-6-x86_64 > /vm/image/CS-6-new.xml

2、使用vim编辑修改此xml文件中的name,uuid,mac address 虚拟磁盘路径source file,vnc端口等。
3、复制一份源镜像文件,并重命名为新镜像名称
cp CentOS-6-x86_64.raw  CS-6-new.raw

3、重新定义此xml文件:
virsh  define /vm/image/CS-6-new.xml

4、启动虚拟机

virsh start CS-6-new

5、当发生UUID或者mac地址冲突的情况,先修改对应的xml文。启动虚拟机,配置网络并修改mac  地址,和xml文件中信息统一。
6、拷贝xml文件和镜像到另一台宿主机,修改xml文件中的souce file 路径,定义虚拟机并启动:
virsh  define /vm/CS-6-new.xml
virsh start CS-6-new

7、启动如果报错:
error: Failed to start domain CS-6-new
error: unsupported configuration: guest and host CPU are not compatible: Host CPU does not provide required features: fma, movbe, fsgsbase, bmi1, avx2, smep, bmi2, erms, invpcid
这是由于CPU信息不兼容造成的,可以修改xml的配置文件,使其兼容:
virsh edit CS-6-new
 
    <cpu mode'custom' match='exact'>                                 
        <model>qemu64</model>                                       
        <feature name='svm' policy='disable'/>                       
    </cpu>

8、启动虚拟机,配置IP地址,虚拟机迁移完成。

相关推荐