KVM管理

作者:狂客

bios使用 OVMF_CODE.fd

虚拟机管理

virsh list --all #可以查看所有虚拟机
virsh undefine 虚拟机名  #删除虚拟机
virsh undefine 虚拟机名 --nvram #删除虚拟机并忽略硬盘

磁盘管理

qemu-img create -f 类型 磁盘名 大小 #磁盘创建
qemu-img info 磁盘名 #查看磁盘信息
qemu-img convert -O 目标格式 源磁盘名 新磁盘名  #转换磁盘格式
qemu-img resize 磁盘名 +大小 #改变磁盘大小

快照管理

qemu-img snapshot -l 磁盘名 #查看快照
qemu-img snapshot -c 快照名 磁盘名 #创建快照
qemu-img snapshot -a 快照ID 磁盘名 #快照恢复 - 快照ID 换成 快照名 应该也可以 没试过
qemu-img snapshot -d 快照ID 磁盘名 #快照删除 - 同上

派生镜像

这里的 镜像名 与 磁盘名 可以理解为一个东西

  1. 派生镜像是什么 和 vmware的克隆一个意思。

qemu-img create -f 格式 派生镜像名 -o backing_file=源镜像名 派生镜像大小  #创建派生镜像

       如果镜像不断派生。既 父镜像也是派生出来的则需要添加以下代码来指定派生所有节点

<disk type="file" device="disk">
<driver name="qemu" type="qcow2"/>
<source file="xxxx" index="1"/>
<backingStore type="file" index="3">
<format type="qcow2"/>
<source file="xxx"/> <!--父类-->
<backingStore/>
</backingStore>
</disk>

  1. 如果在派生镜像做了很多操作 想以派生镜像作为源镜像 又不想牵扯镜像太多 可以使用以下方式将 派生镜像和源镜像合并。但是不建议这么搞。完全可以继续派生。

qemu-img convert -O 格式 派生镜像 新生成的源镜像名 #源镜像和派生镜像合并

磁盘清理

在基于qcow2格式的虚拟机中进行删除文件操作后,物理磁盘文件并不会变小。可以用以下方法对磁盘文件瘦身。

  1. linux系统

dd if=/dev/zero of=~/junk #已删除的空间全填充0
rm junk #执行完成关闭客户机
#上面两步是在客户机完成的。如果是派生镜像需要加 -B 来指定back_file原镜像,不够要注意清理后 快照 都会消失
qemu-img convert -O 格式 源磁盘名 新磁盘名

  1. win系统

#需要安装 SDelete 软件
C:\>sdelete -z c:
#上面两步是在客户机完成的。如果是派生镜像需要加 -B 来指定back_file原镜像,不够要注意清理后 快照 都会消失
qemu-img convert -O 格式 源磁盘名 新磁盘名

双机调试

host

<domain xmlns:qemu="http://libvirt.org/schemas/domain/qemu/1.0" type="kvm">
......
<qemu:commandline>
<qemu:arg value="-serial"/>
<qemu:arg value="tcp::6666,server=on,nowait"/>
</qemu:commandline>
</domain>

guest

<domain xmlns:qemu="http://libvirt.org/schemas/domain/qemu/1.0" type="kvm">
......
<qemu:commandline>
<qemu:arg value="-serial"/>
<qemu:arg value="tcp:0.0.0.0:6666,reconnect=3"/>
</qemu:commandline>
</domain>