KVM日常管理和克隆
常用安装管理
创建虚拟机的桥接网卡,并原来物理网卡上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地址,虚拟机迁移完成。