在 DaDesktop 中使用 Virt Manager 创建虚拟机

简介

在准备课程时,常常在 DaDesktop 中虚拟化一台服务器会很有帮助,也可能以同样的方式虚拟化一两台客户端机器,可以使用相同的操作系统,也可以采用 Windows/Linux 的混合环境。

运行“嵌套虚拟机”可以通过多种方式实现:在 Linux 系统上可以使用 Virt Manager 或者 VirtualBox(可选配合 Vagrant),如果 DaDesktop 机器运行的是 Windows 10,则可以使用 VirtualBox。

DD Machines Nested Virt

经过广泛测试,我们建议优先使用 Virt Manager,因为 VirtualBox 存在一些问题;因此目前我们不推荐以这种方式使用 VirtualBox。

VirtManager 应用程序利用 libvirt 库提供虚拟机管理服务。它拥有桌面界面,可帮助创建、删除和管理多个虚拟机。它主要用于 KVM 虚拟机,但也支持其他虚拟化管理器,如 Xen 和 LXC。

Virt Manager 也能很好地配合 Vagrant 使用,只需运行:

apt install vagrant-libvirt

值得注意的是,与 VirtualBox 相比,可供 libvirt/kvm 使用的 Vagrant boxes 较少,但可以按如下方式轻松转换后配合 libvirt 使用:

https://medium.com/@gamunu/use-vagrant-with-libvirt-unsupported-boxes-12e719d71e8e
 

用户界面提供了所有虚拟机的概要视图,包括虚拟机状态、CPU 使用情况、运行中虚拟机的实时性能图表以及资源利用率统计信息。

如果你之前没有使用过 Virt Manager,它与 VirtualBox 非常相似,但存在一些如下所述的重要区别。

这是一个关于在 Ubuntu Linux 上使用 virt-manager 的不错的指南 - https://www.debugpoint.com/virt-manager/

 

为什么我应该使用 Virt Manager 而不是 Virtualbox?

优点
  1. 性能更佳 - Virt Manager 为存储、网络和图形使用 VirtIO 驱动程序,这能显著提升性能。virtio 驱动程序是 KVM 的半虚拟化设备驱动程序,适用于在 KVM 主机上运行的 Linux 和 Windows 客户虚拟机。virtio 包支持块(存储)设备、网络接口控制器和图形设备。VirtIO 驱动程序是开源的,如果 Linux 发行版尚未预装,也可以轻松安装。
  2. 更多可配置选项
  3. 与 Vagrant 配合良好
  4. VirtualBox 的某些部分并非完全开源
  5. Virt Manager 在每次内核升级时不需要像 VirtualBox 那样重新编译模块。
  6. VirtualBox 有时会在需要升级内核时出现故障。
缺点
  1. 也许可以说 VirtualBox 的学习曲线稍短
  2. 在 VirtualBox 上设置“主机网络”而非 NAT 更容易,不过 NAT 在两种系统上都能轻松应对大多数网络场景。
  3. VirtualBox 可在多种平台上使用,而 Virt Manager 仅适用于 Linux


总而言之,我们发现对于在 DaDesktop 机器中运行服务器,Virt Manager 是更优选择。

 

安装

由于 libvirt 在持续改进,请始终使用最新的非 LTS 版 Ubuntu 或 Debian。

安装 kvm 和 virt-manager。以下是简要的安装说明,不过请根据你选择的 DaDesktop 操作系统参考最新的指南。这里有一个指南 https://www.debugpoint.com/virt-manager/

sudo apt install virt-manager
sudo adduser student libvirt
sudo systemctl restart libvirtd

重启 DaDesktop 机器,从应用程序菜单中运行 Virt Manager。

 

配置

  1. 如何导入或转换虚拟机? 虽然可以根据所需操作系统和规格轻松地创建虚拟机,但对于更复杂的设置,通常更倾向于导入现有特定服务器或设备的虚拟机配置。这些通常以 VMDK 镜像形式提供,可以直接添加到 Virt Manager,尽管当前版本是否支持这一点并不明确。对于 VirtualBox 服务器镜像,不能直接导入(添加)到 Virt Manager,但可以轻松地导出为其他虚拟化格式,如开放虚拟化格式(.OVF),Virt Manager 可以轻松导入。另外,你也可以使用 Vmware Converter(如果有的话),或者改用 Virt-V2V(https://www.redhat.com/en/blog/importing-vms-kvm-virt-v2v)。Qemu-convert 也是一个很好的开源工具,可以方便地在不同虚拟机格式之间进行转换。
    要将 VirtualBox 转换为 Virt Manager KVM 格式,请按照以下说明操作:https://ostechnix.com/how-to-migrate-virtualbox-vms-into-kvm-vms-in-linux/
  2. 在独立环境中导入大文件的最佳方法。 最近新增了一种将文件从你的机器轻松上传到 DaDesktop 机器内部的方法。

    或者,也可以考虑使用云文件工具,如 Google Drive、Microsoft 365 等。在 DaDesktop 机器内登录这些工具即可访问文件。

  3. 在导入其他虚拟机时,特别是从其他格式导入时,你通常需要更改图形和/或磁盘类型。 Virt Manager 的一大优势就是它对 VirtIO 驱动程序提供了极好的支持。这些是开源的全虚拟化驱动程序,相比原始的磁盘、网络或图形驱动程序能提供更好的性能,并且适用于几乎所有的操作系统,包括对 Windows 10 客户机的出色支持。如果你的客户操作系统支持,这些通常是使用 Virt Manager (KVM) 时在兼容性和性能方面的首选。https://wiki.archlinux.org/title/Libvirt
  4. 使用 Virt Manager 时虚拟机的最佳设置 如今几乎所有开源服务器操作系统都包含了 VirtIO 驱动程序,并且在 Windows 中也可以轻松安装。通常最好的驱动程序是 virtio,但在某些情况下,你可能需要使用其他许多类型之一。对于大多数网络场景,NAT 通常就足够了,除非你需要更复杂的设置,可能需要桥接主机网络,但通常这比较难顺利实现。
    https://wiki.manjaro.org/index.php?title=Virt-manager 是一个很好的入门指南。
    运行 Windows 需要一些额外步骤,并且需要集成 VirtIO 驱动程序才能使 Windows 10 ISO 启动。
    在选择硬盘格式时,如果需要快照功能,为了速度 .raw 文件最好,但若需要快照则应使用 qcow2 格式,不过速度会稍慢。
  5. 尽管 Wayland 在大多数情况下作为显示管理器表现良好,我们建议你目前仍继续使用 X11。话虽如此,在你自己的特定设置中尝试 Wayland 也是值得的,各个发行版对 Wayland 的支持也在不断提升。
  6. 不必费心使用 ksm,因为尽管它在嵌套环境下和 Virt Manager 中都能工作,但在实践中作用不大。
  7. 技术支持 在转换磁盘镜像以在 Virt Manager 上使用,以及为 DaDesktop 课程设置使用 Virt Manager 时,如有需要,可提供。
  8. 磁盘镜像文件在文件系统中的存放位置在哪里?Virt Manager 默认使用以下位置存储镜像文件,不过这是可配置的,如果愿意,也可以使用其他位置。

    /var/lib/libvirt/images