虚拟化

何为虚拟化?

虚拟化是一种技术,可以利用以往局限于硬件的资源来创建有用的 IT 服务。它让您能够将物理计算机的工作能力分配给多个用户或环境,从而充分利用计算机的所有能力。

举一个实际例子,假定您有 3 台物理服务器,分别用于不同的专门用途,一台是邮件服务器,一台是 Web 服务器,最后一台运行企业内部的传统应用。每台服务器仅使用了大约 30% 的能力,没有完全发挥它们的潜能。但是,由于传统应用对内部运营非常重要,您必须保留它们,以及运行它们的第三台服务器,对吗?

Server usage

过去确实如此。我们通常在单独的服务器上运行单独的任务:1 台服务器,使用 1 个操作系统,运行 1 个任务。这种做法比较简单和可靠。我们很难让 1 台服务器有多个大脑。但是,借助虚拟化技术,您可以将邮件服务器分为 2 个单独的服务器,能够处理独立的任务,从而实现传统应用的迁移。您仍然使用相同的硬件,但可以更加高效地利用这些资源。

Server usage: virtualization

考虑到安全问题,您可以再次划分第一台服务器,让它能够处理另一项任务,将其使用率从 30% 提高到 60%,再提高到 90%。现在空闲的服务器可以用于其他任务或 停用,以降低散热和维护成本。


虚拟化简史

虽然虚拟化技术可以追溯到上世纪 60 年代,但它直到 21 世纪初才得以广泛应用。实现虚拟化的技术,例如Hypervisor (虚拟机监控程序),是在几十年前开发的,它让多个用户能够同时访问执行批处理的计算机。批处理是在一种在商业领域很流行的计算处理方式,能够非常快速地运行例行任务数千次(例如工资单计算)。

但是,在接下来的几十年内,解决多用户/单计算机问题的其他解决方案变得日益盛行,而虚拟化却裹足不前。其中一种解决方案是分时(time-sharing),在操作系统内部让各个用户按时间分段使用资源 — 这在无意中催生了  UNIX 等其他操作系统,它们最终让位于 Linux®。与此同时,虚拟化始终没有得到广泛采用,只是一种小众技术。

我们将时间快进至上世纪 90 年代。大多数企业都使用物理服务器和单家供应商的 IT 堆栈,不允许在不同供应商的硬件上运行旧有应用。随着公司更新各自的 IT 环境,开始使用由多家供应商提供的价格相对低廉的商用服务器、操作系统和应用程序,他们必然面临着物理硬件利用率不足的问题 — 每台服务器只能运行 1 个供应商特定的任务。

在这个方面,虚拟化正好可以大展身手。它非常顺畅地解决了 2 个重要问题:公司可对服务器进行分区, 在多种类型和版本的操作系统上运行传统应用。自此,服务器开始得到更高效利用,从而降低与采购、设置、散热和维护相关的成本。

虚拟化的广泛适用性有助于减少对单家供应商的依赖,并为云计算的发展奠定了基础。现在它在很多企业得到了广泛使用,通常需要专业的 虚拟化管理软件进行跟踪。


虚拟化的工作原理是什么样的?

一种叫做 Hypervisor (虚拟机监控程序)的软件可有效分隔物理资源,并将这些资源分配给不同虚拟环境(也就是需要这些资源的任务)使用。虚拟机监控程序可能位于操作系统的顶层(例如在便携式计算机上),或者直接安装在硬件上(例如服务器),这是大多数企业使用虚拟化的方式。虚拟机监控程序接管物理资源,并对它们进行划分,以便虚拟环境能够对其进行使用。

How virtualization works

来自物理环境的资源根据需要进行了分区,分配给了很多虚拟环境使用。用户在虚拟环境(通常称为客户机或虚拟机)内部,能够与计算任务交互,并运行计算。虚拟机作为单个数据文件运行。与任何数字文件相同,虚拟机可从一台计算机迁移至另一台计算机,在任何一台计算机上打开,工作方式都是相同的。

当虚拟环境正在运行时,用户或程序发出一条指令,请求来自物理环境的更多资源, 虚拟机监控程序会将请求传递到物理系统并缓存更改 — 所有这些必须在接近本机的速度下进行(特别是在通过脱离基于内核的虚拟机的开源虚拟机监控程序发送请求的情况下)。


虚拟化的类型

最常见的虚拟化资源包括服务器、操作系统和网络。

服务器虚拟化

Server virtualization

服务器是用于处理大量特定任务的计算机,这样可让其他计算机(例如便携式计算机和台式机)能够执行其他各种任务。通过虚拟化服务器,可以让它们执行特定功能,这需要进行分区,以便使用各个组件来运行多种功能。

操作系统虚拟化

Operating system virtualization

操作系统虚拟化在内核中进行,内核则是操作系统的中央任务管理器。这是并行运行 Linux 和 Windows 环境的实用方式。此外,企业还可将虚拟操作系统应用于多台计算机,以实现以下功能:

  • 降低批量硬件成本,因为计算机不需要具备很强的开箱即用能力。
  • 提高安全性,因为所有虚拟实例都被监控和隔离。
  • 节省花费在 IT 服务(例如软件更新)上的时间。

网络功能虚拟化

Network function virtualization

网络功能虚拟化可以隔离网络的关键功能(例如目录服务、文件共享和 IP 配置),并将它们分到各个不同的环境中。一旦软件功能独立于物理计算机,特定功能便可以组合成为新网络,并分配给环境。虚拟化网络可以减少物理组件的数量,例如交换机、路由器、服务器、线缆和集线器,它们都是创建多个独立网络所必需的资源,这种虚拟化方式在电信行业中使用尤其广泛。

虚拟化还有很多其他用途