KVM 使用

Ubuntu 16.04 KVM 安装与使用,包括 KVM 模版与扩容虚拟磁盘。

[TOC]

安装 KVM

apt install -y qemu-kvm virtinst libvirt-bin bridge-utils libguestfs-tools
  1. libvirt-bin提供 libvirt 管理 qemu 和 kvm 实例的 libvirtd。

  2. qemu-kvm是一个后端。

  3. bridge-utils提供桥接网络支持。

  4. virtinst提供 kvm 命令行安装支持。

  5. libguestfs-tools提供后续制作模版支持。

软件安装后,执行kvm-ok,如果显示:

INFO: /dev/kvm exists
KVM acceleration can be used

KVM 可以正常使用。如果显示类似的:

INFO: Your CPU does not support KVM extensions
KVM acceleration can NOT be used

可能仍然能够运行虚拟机,但是速度会很慢。

配置桥接网络

编辑/etc/network/interfaces

允许路由转发:

重启网络:

安装虚拟机

示例:

命令执行后,通过 VNC 连接主机 IP:5910 进行后续安装。

MacOS 可以通过屏幕共享进行 VNC 连接,或通过 realvnc 工具连接。

安装 Win 系统,需要在安装向导中加载 virtio 驱动(驱动在之前挂载的软盘中,需要将 Ethernet 和 SCSI 都安装)

image-20200814113230331
image-20200814113210247

获取虚拟机 IP

先获取虚拟机 mac 地址:mac_address="$(virsh dumpxml ${安装时虚拟机的名称} | awk -F\' '/mac address/{print $2}')"

然后获取 IP 地址:arp -n | grep -i ${mac_address} | awk '{print $1}'

制作 KVM 模版

  1. 暂停虚拟机:virsh shutdown base

  2. 导出虚拟机 XML 文件:virsh dumpxml --domain base > /data/base.xml

  3. /data/base.xml文件中uuidnamemac 地址,以及在安装时挂载上的软盘与 ISO 镜像的 disk 删除。

  4. vnc段添加passwd='123456',如<graphics type='vnc' port='5910' passwd='123456' autoport='no' listen='0.0.0.0'>

  5. 拷贝之前虚拟机磁盘文件:cp /data/base.qcow2 /data/base-disk.qcow2

  6. 清除磁盘文件中一些特定信息:virt-sysprep -a /data/base-disk.qcow2

  7. 从模版中启动虚拟机:

  8. 启动新虚拟机:virsh start kvm2

  9. 查看 VNC 端口:virsh dumpxml kvm2 | grep vnc

  10. 通过 VNC 连接:主机 IP:Port

扩容 KVM 磁盘

  1. 获取虚拟磁盘信息:qemu-img info /data/kvm2.qcow2

  2. 增加 20G 容量:qemu-img resize /data/kvm2.qcow2 +20G

  3. 重启虚拟机后,在控制面板 - 计算机管理 - 磁盘管理,将新加的容量通过扩容卷扩容到 C 盘。

KVM 基础命令

  1. 停止虚拟机:virsh shutdown <虚拟机名>

  2. 强制停止虚拟机:virsh destroy <虚拟机名>

  3. 删除虚拟机:virsh undefine <虚拟机名>,虚拟磁盘需手动删除

  4. 启动虚拟机:virsh start <虚拟机名>

  5. 设置虚拟机开机自启:virsh autostart <虚拟机名>

KVM Installation

Last updated

Was this helpful?