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

Virt Tools 网站

图片来源:

(科比儿子,CC BY-SA 4.0)

Linux 爱好者可能熟悉一些工具,如 KVM 和 QEMU,但 libvirt 和 libguestfs 等工具可能不太熟悉。

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

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

学期

定义

虚拟化

在计算中,虚拟化是指创建事物的虚拟(而不是物理)版本的行为,包括虚拟计算机硬件平台、存储设备和计算机网络资源。

模拟器

模拟器是一种硬件或软件,它使一个计算机系统(称为主机)能够像另一个计算机系统(称为客户机)一样工作。

虚拟机 (VM)

也称为“来宾机器”,它们是真实的物理硬件计算机的仿真。

主机

在硬件虚拟化中,虚拟机管理程序在其上运行一个或多个 VM 的计算机。

管理程序

这是创建和运行 VM 的计算机软件、固件或硬件。

内核

这是计算机操作系统核心的计算机程序,可以完全控制系统中的所有内容。

守护进程

这是一个作为后台进程运行的计算机程序,而不是在交互式用户的直接控制下。

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

姓名

这是什么

执照

源代码

基于内核的虚拟机 (KVM)

Linux 内核中的一个虚拟化模块,允许内核作为管理程序运行

GNU GPL 或 LGPL

源码

快速仿真器 (QEMU)

一个通用的开源机器模拟器和虚拟器

GPLv2

源码

Libvirt

一个库和守护进程,为管理虚拟化主机提供稳定的开源 API

GNU

源码

Libguestfs

一组用于访问和修改 VM 磁盘映像的工具

LGPL, GPL

源码

虚拟管理器

用于通过 libvirt 管理 VM 的桌面用户界面

GPLv2+

源码

Libosinfo

提供有关操作系统版本的信息数据库,以帮助在部署 VM 时优化配置硬件

LGPLv2+

源码

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

KVM 网站

图片来源:

(科比儿子,CC BY-SA 4.0)

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

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

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

快速仿真器(QEMU)

QEMU 网站

图片来源:

(科比儿子,CC BY-SA 4.0)

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

QEMU支持多种操作系统,安装过程只需运行几个简单的命令即可;在这里,您可以看到如何使用Homebrew在 macOS 上安装 QEMU。

QEMU macOS 安装信息

图片来源:

(科比儿子,CC BY-SA 4.0)

安装后,通过阅读其文档了解如何使用,也可以访问其源代码。

Libvirt

Libvirt 网站

图片来源:

(科比儿子,CC BY-SA 4.0)

Libvirt 是一个库和守护进程,为管理虚拟化主机提供了稳定的开源 API。它针对多个管理程序,包括 QEMU、KVM、LXC、Xen、OpenVZ、VMWare ESX、VirtualBox 等。

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

Libguestfs

Libguestfs 网站

图片来源:

(科比儿子,CC BY-SA 4.0)

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

Libguestfs 的官方网站包含有关如何使用每个命令的大量文档,您也可以在 GitHub 上下载其源代码。

虚拟管理器

Virt-manager 网站

图片来源:

(科比儿子,CC BY-SA 4.0)

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

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

Libosinfo

Libosinfo 网站

图片来源:

(科比儿子,CC BY-SA 4.0)

更多 Linux 资源

  • Linux 命令备忘单

  • 高级 Linux 命令备忘单

  • 免费在线课程:RHEL 技术概述

  • Linux 网络备忘单

  • SELinux 备忘单

  • Linux常用命令备忘单

  • 什么是 Linux 容器?

  • 我们最新的 Linux 文章

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

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

结论

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

你怎么看?随时发表评论以分享您的想法或提出问题。

Logo

更多推荐