安装 KVM

安装软件包

apt-get install -y qemu-kvm libvirt-bin bridge-utils

来自ubuntu.com 的包装说明:

  • libvirt-bin 提供了 libvirtd,您需要使用 libvirt 管理 qemu 和 kvm 实例
  • qemu-kvm(Karmic 及更早版本中的 kvm)是后端
  • ubuntu-vm-builder 强大的命令行工具,用于构建虚拟机
  • bridge-utils 提供了从您的网络到虚拟机的桥梁

将用户添加到组

adduser `id -un` libvirt
adduser `id -un` kvm

验证安装

virsh list --all


联网

配置网桥

您的网络接口应该立即使用 NetPlan 进行配置。由于安装了bridge-utils,您可以使用NetPlan 来完成剩下的工作。

在执行此操作之前,最好仔细检查您的 IPMI/IDRAC/ILO 是否正常工作。

# Example netplan config defining bridge
network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: no
    eno2:
      dhcp4: no
  bridges:
    br0:
      interfaces: [eno2]
      addresses: ["10.1.0.14/24"]
      gateway4: 10.1.0.1
      mtu: 1500
      nameservers:
        addresses: ["10.1.0.154"]
      parameters:
        stp: true
        forward-delay: 4
      dhcp4: no
      dhcp6: no


使用 virt-install 定义 VM

安装 virt-install - 它有点大,大约 160MB

apt-get install -y virtinst

可选 - 列出操作系统变量选项

apt-get install -y libosinfo-bin

osinfo-query os

创建虚拟机

--disk bus=: 'ide', 'scsi', 'usb', 'virtio' or 'xen'.

从现有的 qcow2 映像启动

virt-install \
  --name MyImportedVM \
  --description "Imported virtual machine" \
  --graphics vnc,listen=0.0.0.0 \
  --noautoconsole \  
  --os-type=linux \
  --memory 8192 \
  --vcpus=4 \
  --disk path=/var/lib/libvirt/images/importedVM.qcow2,bus=virtio\
  --boot hd \
  --network bridge:br0,model=virtio

构建新的 Windows 虚拟机

Windows 在 KVM 上可能很困难,因为它不附带 Virtio 驱动程序。使用非 virtio 磁盘和网络仿真比较慢。事情变得更难了,因为virt-install 不允许您使用 --cdrom 两次。要一次挂载两个 iso 文件(以便可以安装 virtio 驱动程序),请使用 --disk 参数和 device=cdrom。还要确保使用 bus=ide 以便 Windows 在安装 virtio 驱动程序之前可以读取它。

可以在此处下载 virtio 驱动程序

virt-install \
  --name Server2019 \
  --description "Windows Server 2019 Template" \
  --os-type=windows \
  --memory 8192 \
  --vcpus=4 \
  --disk path=/var/lib/libvirt/images/windows2019.qcow2,bus=virtio,size=30 \
  --disk /var/lib/libvirt/isos/WindowsServer2019StandardCore_1909.iso,device=cdrom,bus=ide \
  --disk /var/lib/libvirt/isos/virtio-win.iso,device=cdrom,bus=ide \
  --graphics vnc,listen=0.0.0.0 \
  --noautoconsole \
  --network bridge=br0,model=virtio

  • 通过 VNC 查看器安装操作系统时,不会显示任何驱动器。
  • 单击“加载驱动程序”按钮,然后浏览到已安装的 virtio iso。
  • 展开viostor文件夹并选择您的操作系统。单击amd64子目录。单击确定。
  • RedHat VirtIO SCSI Controller 应该会出现,点击 Next
  • 完成安装

安装完成后,服务器将关闭。

使用virsh edit删除磁盘编辑服务器:

virsh edit Server2019

选择您选择的编辑器(显然是 vim),然后移除引导cdrom盘。离开 virtio 一个,你仍然需要它。它看起来像这样:

<disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/var/lib/libvirt/isos/WindowsServer2019StandardCore_1909.iso'/>
      <target dev='hda' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>

使用virsh start以下方法重新打开它:

virsh start Server2019

修复其他驱动

现在已安装存储驱动程序,但网络驱动程序不存在。由于 VM 是通过 启动的--network bridge=br0,model=virtio,因此需要 VirtIO 驱动程序。不使用 virtio 网卡会导致一些非常糟糕的性能。

登录服务器并打开设备管理器。导航到“其他设备”。右键单击标记为网络驱动程序的问题并更新驱动程序。选择您的 virtio 磁盘并允许搜索子目录,它应该会找到驱动程序并为您安装。

对未识别的 PCI 设备执行相同操作,这将安装 VirtIO Baloon 驱动程序。

服务器现在可以使用了,或者可以制作成模板。如果您打算稍后将此服务器与 OpenStack 一起使用,请考虑从cloudbase-init安装 cloud -init。