虚拟机(VM)是 IT 基础设施的核心组成部分。它是对物理计算机的软件仿真,能够提供灵活的物流与计算能力。
在本文中,我将解释什么是虚拟机、它如何工作、有哪些优势、常见使用场景等内容。
什么是虚拟机(VM)?
虚拟机是一种从 CPU、内存、存储、网络接口到操作系统进行完整计算系统仿真的技术。
VM 会从物理计算机借用资源来生成这些虚拟计算机。举例来说,如果一台计算机有 8 个 CPU 和 16 GB 内存,我们可以将其中的 4 个 CPU 和 8 GB 内存虚拟化为一个独立的环境,从物理硬件中划分出来。
我们依赖 虚拟机监控器(hypervisor)来在一套硬件上管理多个虚拟环境。它是一种软件,用于控制硬件资源的虚拟化并管理多个 VM。
虚拟机 vs. 物理机
理解虚拟机与物理机的差异非常重要。
先澄清硬件与软件的区别。硬件指系统的物理组件,如主板、CPU、内存、GPU 和存储。软件(如操作系统或其他程序)运行在硬件之上。
物理机直接运行在硬件上。而 VM 则运行能够创建“虚拟化”硬件的软件。正如前文所述,底层系统或许有 64 GB 内存,但我们可以虚拟出 32 GB 内存供虚拟机使用。
由于 VM 可以共享硬件资源,我们可以高效地只为 VM 分配其所需的资源。例如,如果我们有一台性能强劲的服务器,就可以并行运行多个 VM,让它们各自以所需的最小资源完成任务。这能提升整体资源利用率并降低成本。
下表将虚拟机与物理机进行并列比较:
|
特性
|
虚拟机(VM)
|
物理机
|
|
对硬件的依赖
|
运行在由软件提供的虚拟化硬件之上。
|
直接运行在物理硬件组件上。
|
|
资源分配
|
与其他 VM 共享硬件资源(如内存、CPU)。
|
专享硬件资源。
|
|
可扩展性
|
高度可扩展;单台物理机可运行多个 VM。
|
受物理机硬件限制。
|
|
效率
|
通过仅分配必要资源来提升资源利用率。
|
可能导致硬件未被充分利用。
|
|
灵活性
|
易于重新配置和复制。
|
灵活性较差;需要物理调整或更换。
|
|
成本
|
通过资源共享降低成本。
|
成本更高,因为每台机器都需要独立硬件。
|
|
性能
|
因虚拟化存在少量开销。
|
直接使用硬件,性能更高。
|
虚拟机的类型
虚拟机主要有两类:系统级和进程级。前者仿真整个操作系统,后者仿真单个应用程序:
系统虚拟机
在谈到 VM 时,我们最常想到的就是系统虚拟机。它会模拟完整的操作系统,例如一整台 Linux 计算机。通过这种方式,一台硬件可以模拟多个操作系统实例。当我们需要多个环境来处理不同任务时,这非常有用。
云虚拟机是常见示例。它们将完整的操作系统环境托管在远程,通过互联网访问,非常适合可扩展的基础设施。
进程虚拟机
进程虚拟机是在宿主操作系统上运行的单个进程。它本身并非一个完整系统,而是较小的环境,使任意计算机都能运行不属于其原生操作系统的应用程序。例如,Java 虚拟机允许任何机器原生运行 Java 应用。
与系统虚拟机相比,进程虚拟机更为轻量,广泛用于运行特定的隔离应用,尤其在开发与调试场景中。
|
VM 类型
|
描述
|
使用场景
|
|
系统虚拟机
|
模拟完整的物理机器,包括硬件和操作系统。
|
运行多个操作系统、服务器整合与测试。
|
|
进程虚拟机
|
运行单个应用或进程,提供隔离环境。
|
跨平台应用执行、开发与调试。
|
虚拟机的组成
每个虚拟机都有一些核心组件。尽管具体实现可能不同,但它们应包含相似的部分。本节我们来逐一了解。
1. 虚拟机监控器(Hypervisor)
通常而言,虚拟机监控器是用于管理和初始化虚拟机的软件层。它在 VM 与物理机之间管理资源。
虚拟机监控器有两种类型:
- Type 1 虚拟机监控器直接运行在裸机之上,由服务器本身驱动。它通常可以直接访问服务器资源。
- Type 2 虚拟机监控器通常安装在宿主操作系统之上。它无法对计算机资源进行完全控制,而是受宿主操作系统管理。
2. 虚拟硬件
虚拟机监控器会为 VM 分配虚拟硬件。这意味着将物理资源进行虚拟化隔离并赋予虚拟环境。可能包括划分内存、CPU 核心及其他计算资源,以便 VM 运行进程。
3. 客户操作系统
客户操作系统在 VM 内运行。它不必与宿主一致,可以是任意操作系统。同一虚拟机监控器或服务器上的不同 VM 也可根据其用途运行不同的操作系统。
4. 虚拟磁盘
VM 通常配有虚拟磁盘,用于在运行时临时存储信息。有时我们会将虚拟磁盘中的数据转移到宿主计算机的实际存储系统,但需要谨慎操作以避免对宿主造成损害。

一台服务器运行三个虚拟机的架构示意图。图片来源: DataCamp。
虚拟机 vs. 容器
容器化是另一种流行的虚拟化方式。尽管目标相似,虚拟机与容器在实现上有很大不同。我们来看看二者的差异。
- 虚拟机旨在复制设备的全部,包括其硬件。这意味着 VM 会复制主板、CPU、网络设备等,使在 VM 上运行的任何应用看起来都像是在独立硬件上运行。
- 容器则旨在无论环境如何都能运行特定的软件应用。它们不会自行初始化资源,而是使用宿主计算机的资源。

一台服务器运行三个容器的架构示意图。图片来源: DataCamp。
何时使用 VM 与容器
当您需要并行运行多个操作系统并要求对资源进行离散管理时,使用 VM。如果您的进程需要一致且可预测的资源配额,VM 也更为合适。
另一方面,容器非常适合轻量级的应用部署。由于容器共享资源,务必确保您的服务器能够同时承载多个容器并合理分配资源。
如果您对这些概念还不熟悉,可以参考容器化与虚拟化概念课程来了解它们的使用场景。若想更深入比较 VM 与容器的差异,请查看关于容器与虚拟机对比的博文。
虚拟机的优势
虚拟机的优势众多,包括更高的资源效率与安全性。恰当使用 VM 能让您的技术基础设施更简单、更健壮。我们来具体看看这些优势:
资源效率与成本节约
由于多个 VM 共享相同硬件,您可以显著提升物理服务器的利用率。将不同环境整合在一起,减少了为特定用例采购专用硬件的需求,转而通过共享资源来实现整体成本节约。
隔离性与安全性
每个 VM 独立于宿主系统运行,天然具备隔离性。这通过降低单个系统崩溃或被入侵所带来的连带风险来提升安全性。VM 之间通常没有通信,也不相互依赖,因此可以快速关闭存在问题的 VM 或迅速隔离安全隐患。
灵活性与可移植性
VM 为 IT 基础设施提供了极大的灵活性,因为它们易于复制。这简化了需要同时启动多个环境的流程,因为它们可以共享相同的启动指令。这也便于测试、备份与灾难恢复。
虚拟机的常见使用场景
我们来讨论一些 VM 的常见用途。它几乎能完成普通计算机可以执行的任何任务,在各类运营活动中都极具价值。
测试与开发环境
开发者常用 VM 来创建新软件或补丁的测试与开发环境。VM 便于在多种生态中测试程序改动,以实现全面验证且不影响宿主机器。同一脚本可用于在大量 VM 上部署相同变更以进行测试。
服务器整合
专业人员利用 VM 将多台物理服务器整合为更少的服务器。这可降低硬件维护成本,并节省机房空间。同时,由于物理机不再绑定于单一环境或任务,资源利用率得到提升。
运行遗留应用
随着技术演进,现代操作系统可能不再支持遗留流程。通过 VM 可以在现代化改造期间维持这些遗留应用的运行,确保业务不中断。
灾难恢复与备份
随着数据与信息量的增长,VM 可作为整个环境的快速备份,提升系统的健壮性。如果某台物理服务器上的单个 VM 崩溃,其他副本可以继续运行或接管。这是云计算的核心组成部分。
云计算
云的主体运行在虚拟化之上。像 AWS、Azure 与 Google Cloud 这样的云平台能够提供可扩展、灵活的基础设施,是因为创建与关闭虚拟机非常便捷。它们可以快速复制整站或程序以应对增长的需求,并在不再需要时将其关闭。
若想进一步了解云计算如何利用虚拟化,请查看云计算基础课程。
虚拟机在数据科学中的应用
得益于其灵活性与实用性,VM 是数据科学中的优秀工具。以下是其在该领域的一些用途:
隔离的开发环境
就像软件工程师使用 VM 构建专用开发环境一样,数据科学家也可以利用 VM 为不同的数据项目创建隔离环境。
例如,您可以用一个 VM 来用 Python 构建预测模型,再用另一个 VM 通过 R 进行数据预处理。这样的分离允许多个计算密集型项目在不同环境中同时运行,从而提升效率。
数据科学实验的可复现性
数据科学家通常需要能够复现实验结果。比如在训练深度学习模型时,您可以与同事共享一个包含相同版本的 TensorFlow、依赖库与数据集的 VM。这能确保实验一致性,避免环境差异影响结果。
大数据项目的可扩展性
随着项目规模增长,可能需要在云中使用多个虚拟机集群。设想在 TB 级文本数据上训练自然语言处理模型;像 AWS 这样的云服务商可以自动将工作负载分布到多个 VM 上。例如,Apache Spark 等工具可利用虚拟集群高效处理大规模计算。
常用虚拟机软件
有许多工具可让您在个人计算机与企业环境中运行虚拟机。以下是一些最受欢迎的选择:
VMware
VMware 是企业环境中最流行的虚拟化工具之一,提供强大的技术支持与云端解决方案。VMware 可根据需求为桌面与服务器虚拟化提供工具。其主要虚拟机监控器是 VMware ESXi Type 1,便于进行服务器虚拟化,并配有易用的 HTML 5 界面。
Microsoft Hyper-V
Microsoft 的 Hyper-V 是针对 Windows Server 环境定制的虚拟机监控器。这意味着所有虚拟化都需要在 Windows 操作系统上运行,并利用磁盘分区。它便于在 Windows Server 环境中虚拟化桌面,对于希望留在 Windows 生态或使用 Azure 的用户来说是不错的方案。
VirtualBox
VirtualBox 是最流行的开源虚拟化软件之一。用户可以在本机上创建任意类型的虚拟桌面。它提供直观的界面,并可利用磁盘镜像实现轻松复现。对于入门虚拟化世界而言,这是极佳的工具,非常适合练习与积累经验。
KVM(基于内核的虚拟机)
Linux 内核允许您创建称为 KVM 的虚拟机。所有现代 Linux 系统都包含 KVM,使用户可以将任何基于 Linux 的硬件转换为虚拟机监控器。它利用现有硬件,通常结合 Red Hat 等虚拟化软件进行管理。
结语
虚拟机是 IT 生态系统不可或缺的一部分,它使您能够从一台服务器快速创建多个虚拟环境。它们通常由虚拟机监控器软件进行管理,按需创建并分配资源。这在需要并行运行多个进程时,能够带来更高的资源利用率、可复现性、弹性与效率。
若想进一步探索这些概念,并了解 VM 与容器等技术的比较,请查看容器化与虚拟化概念课程。这将有助于您加深对这些关键技术的理解。
虚拟机(VM)是 IT 基础设施的核心组成部分。它是对物理计算机的软件仿真,能够提供灵活的物流与计算能力。
在本文中,我将解释什么是虚拟机、它如何工作、有哪些优势、常见使用场景等内容。
什么是虚拟机(VM)?
虚拟机是一种从 CPU、内存、存储、网络接口到操作系统进行完整计算系统仿真的技术。
VM 会从物理计算机借用资源来生成这些虚拟计算机。举例来说,如果一台计算机有 8 个 CPU 和 16 GB 内存,我们可以将其中的 4 个 CPU 和 8 GB 内存虚拟化为一个独立的环境,从物理硬件中划分出来。
我们依赖 虚拟机监控器(hypervisor)来在一套硬件上管理多个虚拟环境。它是一种软件,用于控制硬件资源的虚拟化并管理多个 VM。
虚拟机 vs. 物理机
理解虚拟机与物理机的差异非常重要。
先澄清硬件与软件的区别。硬件指系统的物理组件,如主板、CPU、内存、GPU 和存储。软件(如操作系统或其他程序)运行在硬件之上。
物理机直接运行在硬件上。而 VM 则运行能够创建“虚拟化”硬件的软件。正如前文所述,底层系统或许有 64 GB 内存,但我们可以虚拟出 32 GB 内存供虚拟机使用。
由于 VM 可以共享硬件资源,我们可以高效地只为 VM 分配其所需的资源。例如,如果我们有一台性能强劲的服务器,就可以并行运行多个 VM,让它们各自以所需的最小资源完成任务。这能提升整体资源利用率并降低成本。
下表将虚拟机与物理机进行并列比较:
特性
虚拟机(VM)
物理机
对硬件的依赖
运行在由软件提供的虚拟化硬件之上。
直接运行在物理硬件组件上。
资源分配
与其他 VM 共享硬件资源(如内存、CPU)。
专享硬件资源。
可扩展性
高度可扩展;单台物理机可运行多个 VM。
受物理机硬件限制。
效率
通过仅分配必要资源来提升资源利用率。
可能导致硬件未被充分利用。
灵活性
易于重新配置和复制。
灵活性较差;需要物理调整或更换。
成本
通过资源共享降低成本。
成本更高,因为每台机器都需要独立硬件。
性能
因虚拟化存在少量开销。
直接使用硬件,性能更高。
虚拟机的类型
虚拟机主要有两类:系统级和进程级。前者仿真整个操作系统,后者仿真单个应用程序:
系统虚拟机
在谈到 VM 时,我们最常想到的就是系统虚拟机。它会模拟完整的操作系统,例如一整台 Linux 计算机。通过这种方式,一台硬件可以模拟多个操作系统实例。当我们需要多个环境来处理不同任务时,这非常有用。
云虚拟机是常见示例。它们将完整的操作系统环境托管在远程,通过互联网访问,非常适合可扩展的基础设施。
进程虚拟机
进程虚拟机是在宿主操作系统上运行的单个进程。它本身并非一个完整系统,而是较小的环境,使任意计算机都能运行不属于其原生操作系统的应用程序。例如,Java 虚拟机允许任何机器原生运行 Java 应用。
与系统虚拟机相比,进程虚拟机更为轻量,广泛用于运行特定的隔离应用,尤其在开发与调试场景中。
VM 类型
描述
使用场景
系统虚拟机
模拟完整的物理机器,包括硬件和操作系统。
运行多个操作系统、服务器整合与测试。
进程虚拟机
运行单个应用或进程,提供隔离环境。
跨平台应用执行、开发与调试。
虚拟机的组成
每个虚拟机都有一些核心组件。尽管具体实现可能不同,但它们应包含相似的部分。本节我们来逐一了解。
1. 虚拟机监控器(Hypervisor)
通常而言,虚拟机监控器是用于管理和初始化虚拟机的软件层。它在 VM 与物理机之间管理资源。
虚拟机监控器有两种类型:
2. 虚拟硬件
虚拟机监控器会为 VM 分配虚拟硬件。这意味着将物理资源进行虚拟化隔离并赋予虚拟环境。可能包括划分内存、CPU 核心及其他计算资源,以便 VM 运行进程。
3. 客户操作系统
客户操作系统在 VM 内运行。它不必与宿主一致,可以是任意操作系统。同一虚拟机监控器或服务器上的不同 VM 也可根据其用途运行不同的操作系统。
4. 虚拟磁盘
VM 通常配有虚拟磁盘,用于在运行时临时存储信息。有时我们会将虚拟磁盘中的数据转移到宿主计算机的实际存储系统,但需要谨慎操作以避免对宿主造成损害。
一台服务器运行三个虚拟机的架构示意图。图片来源: DataCamp。
虚拟机 vs. 容器
容器化是另一种流行的虚拟化方式。尽管目标相似,虚拟机与容器在实现上有很大不同。我们来看看二者的差异。
一台服务器运行三个容器的架构示意图。图片来源: DataCamp。
何时使用 VM 与容器
当您需要并行运行多个操作系统并要求对资源进行离散管理时,使用 VM。如果您的进程需要一致且可预测的资源配额,VM 也更为合适。
另一方面,容器非常适合轻量级的应用部署。由于容器共享资源,务必确保您的服务器能够同时承载多个容器并合理分配资源。
如果您对这些概念还不熟悉,可以参考容器化与虚拟化概念课程来了解它们的使用场景。若想更深入比较 VM 与容器的差异,请查看关于容器与虚拟机对比的博文。
虚拟机的优势
虚拟机的优势众多,包括更高的资源效率与安全性。恰当使用 VM 能让您的技术基础设施更简单、更健壮。我们来具体看看这些优势:
资源效率与成本节约
由于多个 VM 共享相同硬件,您可以显著提升物理服务器的利用率。将不同环境整合在一起,减少了为特定用例采购专用硬件的需求,转而通过共享资源来实现整体成本节约。
隔离性与安全性
每个 VM 独立于宿主系统运行,天然具备隔离性。这通过降低单个系统崩溃或被入侵所带来的连带风险来提升安全性。VM 之间通常没有通信,也不相互依赖,因此可以快速关闭存在问题的 VM 或迅速隔离安全隐患。
灵活性与可移植性
VM 为 IT 基础设施提供了极大的灵活性,因为它们易于复制。这简化了需要同时启动多个环境的流程,因为它们可以共享相同的启动指令。这也便于测试、备份与灾难恢复。
虚拟机的常见使用场景
我们来讨论一些 VM 的常见用途。它几乎能完成普通计算机可以执行的任何任务,在各类运营活动中都极具价值。
测试与开发环境
开发者常用 VM 来创建新软件或补丁的测试与开发环境。VM 便于在多种生态中测试程序改动,以实现全面验证且不影响宿主机器。同一脚本可用于在大量 VM 上部署相同变更以进行测试。
服务器整合
专业人员利用 VM 将多台物理服务器整合为更少的服务器。这可降低硬件维护成本,并节省机房空间。同时,由于物理机不再绑定于单一环境或任务,资源利用率得到提升。
运行遗留应用
随着技术演进,现代操作系统可能不再支持遗留流程。通过 VM 可以在现代化改造期间维持这些遗留应用的运行,确保业务不中断。
灾难恢复与备份
随着数据与信息量的增长,VM 可作为整个环境的快速备份,提升系统的健壮性。如果某台物理服务器上的单个 VM 崩溃,其他副本可以继续运行或接管。这是云计算的核心组成部分。
云计算
云的主体运行在虚拟化之上。像 AWS、Azure 与 Google Cloud 这样的云平台能够提供可扩展、灵活的基础设施,是因为创建与关闭虚拟机非常便捷。它们可以快速复制整站或程序以应对增长的需求,并在不再需要时将其关闭。
若想进一步了解云计算如何利用虚拟化,请查看云计算基础课程。
虚拟机在数据科学中的应用
得益于其灵活性与实用性,VM 是数据科学中的优秀工具。以下是其在该领域的一些用途:
隔离的开发环境
就像软件工程师使用 VM 构建专用开发环境一样,数据科学家也可以利用 VM 为不同的数据项目创建隔离环境。
例如,您可以用一个 VM 来用 Python 构建预测模型,再用另一个 VM 通过 R 进行数据预处理。这样的分离允许多个计算密集型项目在不同环境中同时运行,从而提升效率。
数据科学实验的可复现性
数据科学家通常需要能够复现实验结果。比如在训练深度学习模型时,您可以与同事共享一个包含相同版本的 TensorFlow、依赖库与数据集的 VM。这能确保实验一致性,避免环境差异影响结果。
大数据项目的可扩展性
随着项目规模增长,可能需要在云中使用多个虚拟机集群。设想在 TB 级文本数据上训练自然语言处理模型;像 AWS 这样的云服务商可以自动将工作负载分布到多个 VM 上。例如,Apache Spark 等工具可利用虚拟集群高效处理大规模计算。
常用虚拟机软件
有许多工具可让您在个人计算机与企业环境中运行虚拟机。以下是一些最受欢迎的选择:
VMware
VMware 是企业环境中最流行的虚拟化工具之一,提供强大的技术支持与云端解决方案。VMware 可根据需求为桌面与服务器虚拟化提供工具。其主要虚拟机监控器是 VMware ESXi Type 1,便于进行服务器虚拟化,并配有易用的 HTML 5 界面。
Microsoft Hyper-V
Microsoft 的 Hyper-V 是针对 Windows Server 环境定制的虚拟机监控器。这意味着所有虚拟化都需要在 Windows 操作系统上运行,并利用磁盘分区。它便于在 Windows Server 环境中虚拟化桌面,对于希望留在 Windows 生态或使用 Azure 的用户来说是不错的方案。
VirtualBox
VirtualBox 是最流行的开源虚拟化软件之一。用户可以在本机上创建任意类型的虚拟桌面。它提供直观的界面,并可利用磁盘镜像实现轻松复现。对于入门虚拟化世界而言,这是极佳的工具,非常适合练习与积累经验。
KVM(基于内核的虚拟机)
Linux 内核允许您创建称为 KVM 的虚拟机。所有现代 Linux 系统都包含 KVM,使用户可以将任何基于 Linux 的硬件转换为虚拟机监控器。它利用现有硬件,通常结合 Red Hat 等虚拟化软件进行管理。
结语
虚拟机是 IT 生态系统不可或缺的一部分,它使您能够从一台服务器快速创建多个虚拟环境。它们通常由虚拟机监控器软件进行管理,按需创建并分配资源。这在需要并行运行多个进程时,能够带来更高的资源利用率、可复现性、弹性与效率。
若想进一步探索这些概念,并了解 VM 与容器等技术的比较,请查看容器化与虚拟化概念课程。这将有助于您加深对这些关键技术的理解。