什么是基于内核的虚拟机 (KVM)?

复制 URL

基于内核的虚拟机(KVM)是一种内建于 Linux® 的开源虚拟化技术。具体而言,KVM 可帮助您将 Linux 转变为虚拟机监控程序,使主机计算机能够运行多个隔离的虚拟环境,即虚拟客户机或虚拟机(VM)。

KVM 是 Linux 的一部分。Linux 2.6.20 或更新版本包括 KVM。KVM 于 2006 年首次公布,并在一年后合并到主流 Linux 内核版本中。由于 KVM 属于现有的 Linux 代码,因此它能立即享受每一项新的 Linux 功能、修复和发展,无需进行额外工程。

免费试用 Linux 和 KVM

KVM 将 Linux 转变为 1 类(裸机)虚拟机监控程序。所有虚拟机监控程序都需要一些操作系统层面的组件才能运行虚拟机,如内存管理器、进程调度程序、输入/输出(I/O)堆栈、设备驱动程序、安全管理器以及网络堆栈等。由于 KVM 是 Linux 内核的一部分,因此它包含了所有这些组件。每个虚拟机都像常规 Linux 进程一样实施,由标准的 Linux 调度程序进行调度,并且使用专门的虚拟硬件,如网卡、图形适配器、CPU、内存和磁盘等。

通过红帽迁移虚拟机

如何实施 KVM?

长话短说,您必须运行 2007 年以后发布的 Linux 版本,并且需要将它安装到支持虚拟化功能的 X86 硬件上。如果同时满足上述两个条件,那么您只需加载 2 个现有的模块(主机内核模块和处理器相关模块)、一个模拟器,以及任何能帮助您运行其他系统的驱动程序。

但是,在受支持的 Linux 发行版(如红帽企业 Linux)上实现 KVM 可以扩展 KVM 的功能,从而使您可以在客户机之间交换资源、共享通用库、优化系统性能等等。

红帽企业 Linux 8

红帽资源

在受合同制约的平台上构建虚拟基础架构,可能会限制您对源代码的访问。这意味着您的 IT 开发可能会沦为"姑息疗法",而不是充满生机的创新工作,而合同的约束,也可能会妨碍您对云、容器和自动化的投资。迁移到基于 KVM 的虚拟化平台,您就可以检查、修改和完善虚拟机监控程序背后的源代码。而且,这里面不牵涉企业许可协议,因为没有要保护的源代码。它完全属于您。

KVM 是 Linux 的一部分。Linux 也是 KVM 的一部分。Linux 有的,KVM 全都有。然而,KVM 的某些特点让它成为了企业的首选虚拟机监控程序。

安全防护

KVM 利用安全增强型 Linux(SELinux)和安全虚拟化(sVirt)组合来加强虚拟机的安全性和隔离性。SELinux 在虚拟机周围建立安全边界。sVirt 则扩展 SELinux 的功能,使强制访问控制 (MAC)安全机制应用到客户虚拟机,并且预防手动标记错误。

存储空间

KVM 能够使用 Linux 支持的任何存储,包括某些本地磁盘和网络附加存储(NAS)。还可以利用多路径 I/O 来增强存储并提供冗余能力。KVM 还支持共享文件系统,因此虚拟机镜像可以由多个主机共享。磁盘镜像支持精简置备,可以按需分配存储,不必预先备妥一切。

硬件支持

KVM 可以使用多种多样的认证 Linux 兼容硬件平台。由于硬件供应商经常助力内核开发,所以 Linux 内核中通常能快速采用最新的硬件功能。

内存管理

KVM 继承了 Linux 的内存管理功能,包括非统一内存访问和内核同页合并。虚拟机的内存可以交换,也可通过大型宗卷支持来提高性能,还可由磁盘文件共享或支持。

实时迁移

KVM 支持实时迁移,也就是能够在物理主机之间移动运行中的虚拟机,而不会造成服务中断。虚拟机保持开机状态,网络连接保持活跃,各个应用也会在虚拟机重新定位期间正常运行。KVM 也会保存虚拟机的当前状态,从而存储下来供日后恢复。

性能和可扩展性

KVM 继承了 Linux 的性能,针对客户机和请求数量的增长进行扩展,满足负载的需求。KVM 可让要求最苛刻的应用工作负载实现虚拟化,而这也是许多企业虚拟化设置的基础,如数据中心和私有云等(通过 OpenStack®)。

调度和资源控制

在 KVM 模型中,虚拟机是一种 Linux 进程,由内核进行调度和管理。通过 Linux 调度程序,可对分配给 Linux 进程的资源进行精细的控制,并且保障特定进程的服务质量。在 KVM 中,这包括完全公平的调度程序、控制组、网络命名空间和实时扩展。

更低延迟,更高优先级

Linux 内核提供实时扩展,允许基于虚拟机的应用以更低的延迟、更高的优先级来运行(相对于裸机恢复)。内核也将需要长时间计算的进程划分为更小的组件,再进行相应的调度和处理。

若不借助管理工具,单一工作站上部署的少数虚拟机尚且可以手动管理。大型企业则必须使用与虚拟环境和底层物理硬件对接的虚拟化管理软件,来简化资源管理、增强数据分析并简化运营。

我们非常信赖 KVM,它是我们所有虚拟化产品的唯一虚拟机监控程序。同时,我们也不断向 KVM 社区做出贡献,致力改进内核代码。不过,因为 KVM 是 Linux 的一个组成部分,所以它已包含在红帽企业 Linux。

中心

红帽官方博客

获取有关我们的客户、合作伙伴和社区生态系统的最新信息。

所有红帽产品试用

我们的免费试用可让您亲身体验红帽的产品功能,为获得认证做好准备,或评估某个产品是否适合您的企业。

扩展阅读

什么是 Podman Desktop?

Podman Desktop 是一款免费的开源工具,可简化在本地开发人员环境中使用容器的过程。

一文带你看懂 Helm 是什么?K8s 和 Helm 的关系

Helm 是一款用于 Kubernetes 的软件包管理器,内含将应用部署到集群所需的各种代码和资源。Helm 可通过 Helm 图表这种打包格式来实现应用的自动分发,从而简化这一过程。

什么是 InstructLab?

InstructLab 是一个用于增强大型语言模型(LLM)的开源项目。

开源 相关资源

相关文章