6 个 2020 年值得了解的开源虚拟化技术

使用开源 Virt Tools 运行、自定义和管理您的虚拟机。 此外,获取关键虚拟化术语的词汇表。
97 位读者喜欢这个。
What is virtualization

Opensource.com

虚拟化工具,更广为人知的名称是 Virt Tools,是由多个贡献者创建的六个开源虚拟化工具的集合,旨在让虚拟化世界变得更美好。

其中一些工具,如 KVM 和 QEMU,Linux 爱好者可能很熟悉,但像 libvirt 和 libguestfs 这样的工具可能就不那么熟悉了。

如果您更喜欢通过观看视频而不是阅读来学习,我创建了本文的视频版本,您可以在 YouTube 上观看。

在了解这些工具之前,最好先了解一些基本的虚拟化术语。 我从维基百科中提取了许多这些定义,并在表格中链接了页面。

术语 定义
虚拟化 在计算中,虚拟化是指创建某物的虚拟(而非物理)版本的行为,包括虚拟计算机硬件平台、存储设备和计算机网络资源。
模拟器 模拟器是一种硬件或软件,使一个计算机系统(称为主机)的行为类似于另一个计算机系统(称为 guest 客户机)。
虚拟机 (VM) 也称为“guest 客户机机器”,这些是对真实物理硬件计算机的模拟。
主机 硬件虚拟化中,运行一个或多个虚拟机的 hypervisor 虚拟机监控程序的计算机。
Hypervisor 虚拟机监控程序 这是创建和运行虚拟机的计算机软件、固件或硬件。
内核 这是一个计算机程序,位于计算机操作系统的核心,可以完全控制系统中的一切。
守护进程 这是一个作为后台进程运行的计算机程序,而不是在交互用户的直接控制下运行。

此表总结了每个 Virt Tool,包括许可信息以及指向每个工具的网站和源代码的链接。 大部分信息来自 Virt Tools 网站和每个工具的站点。

名称 它是什么 许可证 源代码
基于内核的虚拟机 (KVM) Linux 内核中的虚拟化模块,允许内核充当虚拟机监控程序 GNU GPL 或 LGPL 源代码
快速模拟器 (QEMU) 通用且开源的机器模拟器和虚拟化器 GPLv2 源代码
Libvirt 一个库和守护程序,提供稳定的开源 API,用于管理虚拟化主机 GNU 源代码
Libguestfs 一套用于访问和修改虚拟机磁盘映像的工具 LGPL, GPL 源代码
Virt-manager 用于通过 libvirt 管理虚拟机的桌面用户界面 GPLv2+ 源代码
Libosinfo 提供有关操作系统版本的数据库信息,以帮助在部署虚拟机时优化配置硬件 LGPLv2+ 源代码

基于内核的虚拟机管理器 (KVM)

KVM 是适用于 Linux 的完整虚拟化解决方案,它基于包含虚拟化扩展的硬件。 KVM 为各种 guest 客户机操作系统(包括 Linux、Windows、macOS、ReactOS 和 Haiku)提供硬件虚拟化。 使用 KVM,您可以在未修改的 Linux 或 Windows 映像上运行多个虚拟机。 每个虚拟机都具有私有的虚拟化硬件:网卡、磁盘、图形适配器等。

大多数时候,您不会直接与 KVM 交互。 相反,您必须使用 QEMU、virt-manager 或其他虚拟化管理工具来利用 KVM。

您可以在 KVM 网站上找到完整的文档,以及访问其源代码

快速模拟器 (QEMU)

QEMU 是通用的开源机器模拟器和虚拟化器。 当用作模拟器时,QEMU 可以在不同的机器(例如,您自己的 x86_64 PC)上运行为一台机器(例如,ARM 板)制作的操作系统和程序。 当用作虚拟化器时,QEMU 通过使用 KVM 直接在主机 CPU 上执行 guest 客户机代码来实现接近原生的性能。

QEMU 在多个操作系统上受支持,并且其安装过程就像运行一些简单的命令一样容易; 在这里,您可以看到如何在 macOS 上使用 Homebrew 安装 QEMU。

安装后,通过阅读其文档来学习如何使用它,您还可以访问其源代码

Libvirt

Libvirt 是一个库和守护程序,提供稳定的开源 API,用于管理虚拟化主机。 它的目标是多个 hypervisor 虚拟机监控程序,包括 QEMU、KVM、LXC、Xen、OpenVZ、VMWare ESX、VirtualBox 等。

关于 libvirt 的另一个有趣之处是,KubeVirt,一个用于在 Kubernetes 平台内部创建和管理虚拟机的开源项目,在很大程度上利用了 Libvirt。 (我将在以后的文章中介绍 KubeVirt。)Libvirt 是一个值得探索的有趣项目,您可以在其官方网站上找到大量信息,并下载其源代码

Libguestfs

Libguestfs 是一套用于访问和修改虚拟机磁盘映像的工具。 您可以使用它来查看和编辑 guest 客户机内部的文件; 编写脚本来更改虚拟机; 监控磁盘已用/可用统计信息; 创建 guest 客户机、物理到虚拟 (P2V) 或虚拟到虚拟 (V2V) 机器; 执行备份; 克隆虚拟机; 构建虚拟机; 格式化磁盘; 调整磁盘大小; 以及更多。 我最近在使用一个名为 OpenShift Virtualization 的基于 KubeVirt 的项目时一直在使用它,您可以在我的视频教程中了解更多信息。

Libguestfs 的官方网站包含有关如何使用每个命令的广泛文档,您还可以从 GitHub 下载其源代码

Virt-manager

Virt-manager 是一个桌面用户界面,用于通过 libvirt 管理虚拟机。 它主要针对 KVM 虚拟机,但也管理 Xen 和 LXC。 它还包括命令行配置工具 virt-install。 将 virt-manager 视为易于使用的虚拟机管理工具。 例如,您可以使用 virt-manager 在 Linux 工作站上运行 Microsoft Windows 环境,反之亦然。

Virt-manager 的源代码可在 GitHub 上找到,文档在其网站上。 目前,virt-manager 仅适用于 Linux 平台。

Libosinfo

Libosinfo 提供有关操作系统版本的数据库信息,以帮助在部署虚拟机时配置硬件。 它包括一个 C 库,用于查询数据库中的信息,该库也可以从 GObject 自省支持的任何语言访问。 您可能会猜到,libosinfo 更像是启用操作系统功能的构建块——但非常重要。

Libosinfo 的源代码可在 GitLab 上找到,其文档可在其网站上找到。

结论

Virt-tools 是一组六个强大的工具,可以简化虚拟化并启用重要的虚拟化功能。 它们都是开源项目,因此我鼓励您进一步探索,甚至可能为它们做出贡献。

您怎么看? 欢迎随意留言分享您的想法或提出问题。

接下来阅读什么
标签
User profile image.
Bryant Jimin Son 是 GitHub 的 Octocat,这不是正式的头衔,但喜欢这样称呼自己。GitHub 是一家以托管世界上大多数开源项目而闻名的公司。 在工作中,他正在探索不同的 git 技术、GitHub Actions、GitHub 安全等。 此前,他曾在 Red Hat 担任高级顾问,Red Hat 是一家以其 Linux 服务器和开源贡献而闻名的技术公司。

1 条评论

引用
“例如,您可以使用 virt-manager 在 Linux 工作站上运行 Microsoft Windows 环境,反之亦然。

(..)目前,virt-manager 仅适用于 Linux 平台。”

嗨! 请问,您能解释一下为什么是“反之亦然”吗? 提前感谢!

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.