Linux KVM及其优势介绍
什么是虚拟化?
简单来说,虚拟化是主机节点之上的模拟平台或环境,对用户来说是相当抽象的。
这些模拟的虚拟环境可以是操作系统,也可以是一些开发环境等。
这使我们能够有效地使用主机节点的硬件资源。
什么是 KVM?
KVM 代表基于内核的虚拟化。
实施基于内核的虚拟化是为了利用新一代 Intel 和 AMD CPU 提供的硬件辅助虚拟化支持的优势。
在虚拟化技术发展的初始阶段,CPU 完全由软件模拟,最终由于没有直接硬件访问而导致性能下降。
如今,市场上的 CPU 支持虚拟化,这是其架构从早期阶段发生变化的结果。
这也称为硬件辅助虚拟化。
如果您对虚拟化完全陌生,这是一个很好的起点,我们已经解释了虚拟化的三个领域和两种类型的管理程序:服务器虚拟化技术和管理程序类型简介
以下是虚拟化技术早期开发阶段采用的各种方法。
- 在主机系统处理器上运行虚拟机,而不是使用二进制翻译技术模拟处理器。它无需修改客户操作系统即可工作。
- 修改来宾系统操作系统以与可以直接访问硬件的 Hypervisor 通信。Xen 管理程序平台就是一个实现 Para 虚拟化的例子。
- 修改主机系统处理器,使其易于与管理程序通信,从而支持虚拟化。它消除了二进制翻译和仿真的需要。它导致完全虚拟化而不是半虚拟化。
- 修改主机系统操作系统,使其能够支持虚拟化。它产生了本机管理程序而不是托管管理程序。
基于内核的虚拟化利用了上述第 3 和第 4 方法的优点。
什么是管理程序?
Hypervisor 只是程序的中间层,位于客户操作系统和主机系统硬件之间。
它管理所有连接的客户操作系统的实际硬件。
管理程序可以有两种类型:本机或托管。管理程序也称为 VMM-[虚拟机管理器]。请参考下图。它代表一个裸机本机管理程序。
托管管理程序的良好示例可以是 VMware 或虚拟盒软件。
如果您是 VMWare 新手,这将有所帮助:VMware 虚拟化基础知识 – VMware Server 和 VMware ESXi
如果您是 Virtualbox 的新手,这是一个很好的起点:如何安装 Oracle VM VirtualBox 并创建虚拟机
KVM 演进
因此,作为有效虚拟化的现代解决方案,基于内核的虚拟机 (KVM) 不断发展。
它本质上是通过一个带有主机操作系统内核的模块来使用现代硬件虚拟化支持 CPU 提供的 CPU 扩展。
通过使用这个基于内核的虚拟化模块,主机操作系统的内核作为一个虚拟机管理程序,利用 Linux 内核和支持虚拟化的硬件的特性。
因此,将 KVM 与 XEN 和 QEMU 进行比较,我们可以说,KVM 使用处理器扩展来进行虚拟化,而 QEMU 则完全模拟 CPU,另一方面,XEN 作为主机操作系统的外部管理程序而不是使用内核来工作.
使用 KVM,我们可以在单个机器或主机系统上运行具有任何操作系统的多个虚拟机。KVM 从 2.6.20 稳定版开始在 Linux Kernel 中引入。KVM 的一个很好的例子是基于 RPM 的 Red Hat 和 Fedora 发行版附带的虚拟化解决方案。
Linux KVM 的好处
如果您是 Linux KVM 的新手,这将帮助您入门:如何安装 Linux KVM 并使用示例创建来宾 VM
以下是基于内核的虚拟化的一些特性和优势。
- 在 KVM 模块的帮助下,它通过基于内核的 I/O 仿真来管理中断和定时器的性能关键部分。它提供了对虚拟机和主机之间的 I/O 请求设置限制的能力。
- KVM 模块允许在此模拟物理处理器和指令不支持的 CPU 模式。
- 使用的 KVM 模块是上游 Linux 内核的一部分,因为它被添加到其中以增强虚拟化。
- 这里使用的 KVM 模块为支持硬件虚拟化的 Intel 和 AMD x86 处理器提供通用接口。对于 Intel,它被称为用于虚拟化的 Intel VMX 硬件辅助,对于 AMD,它被称为用于虚拟化的 AMD SVM 硬件辅助。
- 它从内核中创建了一个裸机管理程序。我们可以说它创建了一个本地管理程序。
- 利用硬件中 MMU(内存管理单元)的能力来虚拟化内存,从而提高性能。
- 由它创建的虚拟机是一个标准的 Linux 进程,由其本机标准 Linux 调度程序调度。
- 它支持 Intel 的 EPT(扩展页表)和 AMD 的 RVI(快速虚拟化索引)功能,用于 CPU 供应商的内存虚拟化。
- 它支持主流Linux内核支持的所有文件系统。
- 通过提供灵活的存储来提高资源的利用率和对资源的访问。在 Linux KVM 中添加内存、vCPU、硬盘非常容易。
- 支持广泛的客户操作系统,包括 windows、UNIX、Solaris 和 DOS。
- Linux 的所有特性,如使用 SELinux 实现安全性、广泛的硬件支持和支持设备驱动程序,都被继承到基于内核的虚拟机中。
- 通过虚拟化模块提供的 API 进行安全远程管理。
- 通过添加模块以利用更多功能,可以扩展作为 Linux 内核主流的增强可扩展性。
- 点赞
- 收藏
- 关注作者
评论(0)