kvm支持的镜像很多,常用的是原始镜像(*.img),还有支持动态大小扩张的qocw2格式(首选)。
更优的选择是系统盘如C盘用img格式,数据盘用qcow2格式以减少服务器磁盘闲置空间。
本文仅记录如何用ubuntu.iso制作系统镜像VM_NAME.qcow2并创建启动虚拟机
制作虚拟机镜像模板
创建qcow2镜像文件
创建qcow2镜像,但是其实际占有磁盘大小仅为193K左右,而虚拟机内部显示磁盘大小为10G,也就是磁盘空间使用时才分配,即所谓动态扩张。
1 | qemu-img create -f qcow2 VM_NAME.qcow2 10G |
准备iso等文件
复制ubuntu官方iso镜像到指定目录,本文将所有镜像及配置文件放到 /home/createvm 目录下,创建配置文件setup.xml,内容如下
1 | <domain type='kvm'> |
ppc64le的模板文件
1 | <domain type='kvm' id='7'> |
启动虚拟机模板
1 | # virsh define setup.xml //创建虚拟机 查看当前系统所有的虚拟机信息:virsh list --all |
使用vnc登录虚拟机
登录后能看到操作系统安装的初始界面,开始安装系统,安装完成即表示镜像制作完成(ubuntu.qcow2)。
准备qcow2镜像模板
上面安装结束之后,需要关机,当作模板镜像
1 | virsh shutdown test_ubuntu //关闭虚拟机 |
如果无法关闭,那么:
命令行virsh reboot vm-name
kvm目前仍不支持reboot命令,’reboot’ is not supported by the hypervisor
虚拟机内部重启操作不成功,状态为关机,重启失败。
原因配置文件中:
1 | <on_poweroff>destroy</on_poweroff> |
其中<on_reboot> 选项设置为restart则表示在虚拟机内部执行reboot但不关机, 如果设置为destroy则表示执行reboot命令后直接关机。
更多参数设置可参考liibvirt官网http://libvirt.org/drvqemu.html#xmlconfig
- kvm环境下可以使用shutdown命令让虚拟机关机,但不生效。
1
virsh shutdown vm-name
由于关机通过acpi电源管理接口来实现的
首先配置文件里需要有这个选项1
2
3
4
5<features>
<acpi/>
<apic/>
<pae/>
</features>
虚拟机内部需要有acpi服务并运行
Windowns的虚拟机一般情况是默认已安装且运行的
linux虚拟机例如Ubuntu虚拟机如果没有安装acpi服务,
先执行apt-get install acpid进行安装并启动该服务,即可让虚拟机响应shutdown命令
依此方法通过ubuntu server 10.04.2,redhat6.0企业版,windows xp sp3 ,windows server2003操作系统进行验证均可以实现自然关机。
1 | virsh destory VM_NAME //强制关闭虚拟机 |
启动虚拟机
创建文件start.xml,内容如下:
1 | <domain type='kvm'> |
启动
使用制作好的镜像和start.xml配置文件来创建并启动虚拟机。1
2virsh define VM_NAME.xml
virsh start VM_NAME