跳至内容

什么是虚拟化?您需要了解的一切

从虚拟机监控器到容器与云,了解虚拟化的工作原理及其重要性。
已更新 2026年10月6日  · 14分钟 阅读

使用 AI 探索

ChatGPTClaudePerplexity

不久之前,服务器机房遵循一个简单规则:一台机器干一件事。邮件有自己的主机,文件共享有专用服务器,数据库则在另一个地方。每个系统都有各自的补丁周期、能耗和硬件故障,这些在一屋子利用率偏低的机器上被无限放大。

许多机器都是为一年中最忙的一天而购置,其余时间都在“等”。虚拟化颠覆了这种经济学。团队不再为每个服务配一台主机,而是把多个工作负载打包到更少但更强大的主机上。每个工作负载仍在各自的环境中运行,但物理占地缩小了:需要采购、布线、供电、制冷并最终退役的服务器更少。

本指南涵盖实践中真正重要的部分:虚拟机监控器做什么、Type 1 与 Type 2 的定位、资源分配如何工作,以及虚拟机、容器与云服务之间的关系。目标是帮助您选对工具,并理解当您走出“第一条定义”之后会遇到的约束。

图片来源:Freepik 上的 wirestock。

虚拟化如何工作

虚拟化让一台物理主机同时运行多个“机器”——每个都有自己的操作系统、进程和文件系统。使之可行的组件是虚拟机监控器(hypervisor):这个控制层将 CPU 时间、内存、存储和网络划分给各个来宾系统,并在它们之间强制边界。

虚拟机监控器层

虚拟机监控器就像交通指挥。来宾系统请求 CPU 时间、内存页、磁盘 I/O 和网络访问;监控器对这些请求进行调度,避免某台虚拟机饿死其他虚拟机或接管整台主机。

现代 CPU 内置了虚拟化扩展(英特尔VT-x,AMD 的AMD-V),降低了过去让桌面虚拟化变慢的翻译开销。这些扩展是桌面虚拟化不再像“科研项目”的重要原因。有了现代硬件,在开发者笔记本上跑几台虚拟机通常平平无奇——这是好事。

资源分配是您最常与之交互的部分:

  • CPU: 来宾系统看到的虚拟核心数量
  • 内存: 在发生交换或停滞前可以使用的 RAM 大小
  • 存储: 一个从来宾视角看起来像物理硬盘的虚拟磁盘
  • 网络: 通过虚拟交换机连接到真实网络的虚拟网卡

在来宾系统内部,一切看起来都很正常:操作系统启动、安装软件包、文件被写入、套接字被打开。您在虚拟机内部看不到的是下面的仲裁——下一个获得 CPU 的是谁、谁的磁盘写入被排队、以及主机何时开始饱和。

Type 1 与 Type 2 虚拟机监控器

大多数虚拟机监控器分两类,差别主要在于监控器所在的位置。

  • Type 1(裸金属) 直接运行在主机硬件上,是生产环境的标准做法,因为“底层那一层”的开销更小。ESXi 与用于服务器部署的 Hyper-V 属于此类,KVM 则常作为 Linux 技术栈中的虚拟化层使用。
  • Type 2(托管式) 以应用程序形式运行在现有操作系统之上。您保留 Windows/macOS/Linux 作为主机,然后在其上安装 VirtualBox 或 VMware Workstation。这是用个人设备搭建小型实验环境的最简便方式,通常也是人们的起点。
 

Type 1

Type 2

底层是什么

只有硬件

完整操作系统

速度

更好,开销更小

略有性能损失

常见场景

云服务商、企业数据中心

开发者笔记本、家庭实验室

常见示例

ESXi、Hyper-V、KVM

VirtualBox、Workstation、Parallels

资源分配

创建虚拟机时,您是在下注:“这个工作负载大概需要这么多 CPU、内存和磁盘。” 虚拟机监控器在这些资源的呈现与预留方式上提供了灵活性。

存储供应最容易看出权衡:

  • 厚置备(Thick provisioning) 会在一开始就预留完整的虚拟磁盘大小。创建一个 100GB 的磁盘,主机会立刻划出这块空间,无论虚拟机是否使用。它简单、可预测,但意味着您会预先承担存储成本——即便虚拟机大多时候是空的。
  • 薄置备(Thin provisioning) 则推迟成本。来宾仍看到 100GB 的磁盘,但主机只在写入数据块时实际占用空间。这提高了利用率并使超额分配成为可能,但也带来一种故障模式:如果主机的真实磁盘空间耗尽,虚拟机可能开始报错,而且很难快速恢复。

CPU 和内存通常也以同样的“概率”思路通过超分配(overcommitment)来处理。您可能分配的虚拟 CPU 总量超过物理 CPU,因为预期各工作负载不会同时达到峰值。对于混合型负载,这通常运行良好,但如果所有东西同时繁忙,就会产生争用。超分配并非“错误”——这只是意味着您需要洞察主机的压力点。

快照与实时迁移

有两个特性值得特别强调,因为它们改变的是日常运维,而不仅仅是架构图。

  • 快照 提供回滚点。在冒险打补丁或改配置前拍一个快照,如果虚拟机无法启动或应用异常,您可以快速回退。这也是为什么快照常用于测试/预发环境以及维护窗口。
  • 实时迁移 允许运维人员将一台正在运行的虚拟机迁到另一台主机,且几乎不间断。实践中,大规模维护就是这么进行的:疏散一台主机,打补丁或更换硬件,重平衡负载,同时保持对外服务运行。

重要的虚拟化类型

虚拟化有一些专业形态(网络、存储、数据),但大多数团队反复遇到的是三类。

服务器虚拟化

服务器虚拟化是主力模式:一台物理主机运行多个服务器实例,每个作为虚拟机,拥有各自的操作系统与应用。

这是收益最快显现的地方。想象公司里的“袖珍集群”:一个轻量 Web 应用、一个数据库、内部看板、调度器、文件服务、监控,或许再加一个消息代理。分开看,每个都像该有一台服务器。现实中,它们大多时候都很闲。虚拟化把这些空闲时间转化为共享算力。

许多组织都会看到一个具体的变化:

10 台物理服务器 → 2 台虚拟化主机

整合后改变的不只是成本。供应变快了。容量从一个个孤岛变成了一个池子。当工作负载需要更多资源时,您可以调整分配或迁移它,而不是订购新硬件。

代价是“共同命运”:当一台主机故障时,会有多台虚拟机同时消失。这就是为什么生产环境要围绕冗余、监控和保守的容量边界来构建。

桌面虚拟化(VDI)

VDI 将桌面环境作为虚拟机运行在数据中心(或云)中。用户通过网络连接;计算与存储留在集中式环境,而非终端设备。

VDI 常见于组织希望:

  • 让桌面在不同设备间随用户而动
  • 集中式更新、打补丁与策略执行
  • 降低数据存放在易丢失或被盗终端上的风险

一个快速对比有助于澄清常见的混淆:

  • 远程桌面: 您登录到别处的一台现有机器。
  • VDI: 组织在共享主机基础设施上为用户(或会话)按需供应桌面虚拟机。

屏幕看上去可能类似,但运维模式并不相同。延迟是首要考虑,重度 GPU 工作会迅速推高成本,而运行大型桌面池需要真正的容量规划。

应用虚拟化与容器

容器解决的问题与虚拟机不同。容器不是通过虚拟化硬件来运行完整的来宾操作系统实例,而是在共享主机内核的同时隔离应用。您在进程/文件系统/网络层获得隔离,而无需再启动一个操作系统。

Docker 让这种模式变得易用:将应用及其依赖打包为镜像,然后在开发、CI 和生产中运行同一制品。这种可重复性是容器迅速普及的原因——更少的环境差异带来的意外,更少“先装这十样东西”的安装文档。

容器还在实用体验上占优:

  • 启动通常以秒计,而非分钟
  • 占用往往是 MB 级,而非 GB 级
  • 本地运行许多小服务是现实可行的

虚拟机与容器解决的是重叠但不同的问题:

需求

推荐方式

原因

运行不同的操作系统

虚拟机

容器共享主机内核

微服务部署

容器

轻量且扩展迅速

强隔离边界

虚拟机

各自独立的内核与操作系统实例

CI/CD 流水线执行

容器

速度与一致性优先

遗留应用支持

虚拟机

完整的操作系统兼容性更有帮助

一种常见的生产模式是“容器跑在虚拟机上”。虚拟机边界用于基础设施隔离与集群管理;容器负责应用层的部署与扩缩。我们的 Introduction to Docker 课程涵盖容器基础。我们的 Containerization and Virtualization with Docker and Kubernetes 路线进一步深入编排模式。

虚拟机 vs. 容器 vs. 云:有何不同?

人们把这些术语混在一起,是因为它们常出现在同一技术栈中。将它们按“您实际获得的东西”来区分会更清晰:一个隔离的操作系统(虚拟机)、一个隔离的应用运行时(容器),或一个同时提供二者的托管平台(云)。

虚拟机

一种虚拟机打包了完整的操作系统、虚拟硬件与应用。每台虚拟机都有自己的内核,这在同一主机上的工作负载之间提供了强隔离。

代价是“重量”:完整的操作系统实例需要更多内存、启动更慢、镜像更大。这个开销在生产中往往是可以接受的,因为隔离与兼容性值得付出。

容器

容器在隔离应用运行时的同时共享主机内核。共享内核让容器保持轻量与高速。镜像通常更小、更易分发,这也是容器适配现代部署流程的原因。

容器提供的隔离是真实存在的,但与“独立内核”不是同一层级。容器仍依赖主机内核,这也是为什么工作负载敏感度与安全立场会影响团队选择直接在主机上运行容器,还是把容器运行在虚拟机之内。

云计算

云平台依赖虚拟化(也常用容器),并将其封装在一个托管的控制平面中:API、资源供应、计费、网络,以及您无需自管的服务(数据库、队列、对象存储、监控)。

当您启动一个EC2 实例时,本质上是在从 AWS 的集群中租用一台虚拟机。其他产品——如无服务器函数、托管容器服务——使用更轻量的隔离机制,但共同点相同:云按需暴露资源,并将大量基础设施工作隐藏在 API 之后。

一个简单的决策框架:

  • 当设计受到操作系统隔离或兼容性驱动时,使用虚拟机。
  • 当您需要快速启动与可重复的部署制品时,使用容器。
  • 当弹性与托管运维比控制底层主机更重要时,使用云服务。

实践中,“分层堆叠”的版本很常见:云虚拟机承载 Kubernetes 集群,集群调度容器,容器运行应用。若想更深入了解云架构,请学习我们的Understanding Cloud Computing 课程,以及我们的 Understanding Microsoft Azure Architecture and Services 课程,了解 Azure 专属服务。

虚拟化为何重要

虚拟化之所以经久不衰,是因为它在开发、运维与数据工作中解决了实际问题。

开发与测试

虚拟化让可控环境的创建变得廉价。需要在两个操作系统版本上测试一条流水线?建两台虚拟机,跑同样步骤,对比行为。想尝试一次有风险的升级?先做快照,再执行,需要时回滚。

它也降低了跨平台检查的摩擦。使用 macOS 的开发者无需轮换多台物理机器,就能验证 Windows 上的行为。

对数据工作而言,可复现性是反复出现的主题。结果常取决于特定的包、系统库与配置组合。虚拟化环境有助于让这些依赖保持稳定且可移植。

成本与效率

资源池化是基本优势:您不再为 10 台闲置机器买单,而是更一致地使用同样的硬件。

节省体现在枯燥但可量化的地方:更少的服务器采购、更少机架空间、更低的制冷余量、更少的维保合同,以及更小的一堆最终要更换的硬件。整合并不消除运维工作,但会改变其形态。

灵活性与扩缩

供应变成了软件化任务。不必订购硬件、等待交付、上架布线、镜像系统,团队只需克隆模版、设定分配并部署。

扩缩也不再僵硬。需求上升时,您可以增加虚拟机或调整现有虚拟机规格。需求下降时,可以回收容量,而不是让物理服务器闲置数月。

灾备并不会因此自动化,但虚拟化改变了工具箱。当“服务器”是一份受管的虚拟机镜像加上数据,复制与恢复策略就比“一机一应用”时代更容易标准化。

常见挑战与应对方式

虚拟化消除了某类头疼事,也引入了另一类。多数问题并不神秘,归根结底是资源上限、争用或运维卫生。

性能问题

最常见的性能抱怨是争用:多台虚拟机争抢同一份 CPU 时间、内存带宽或存储 I/O。一切在多个负载同时峰值之前都挺好,随后延迟激增、吞吐下降。

实践中有用的做法:

  • 关注主机指标,而不仅是来宾指标(CPU 就绪时间、内存压力、磁盘延迟/I/O 等待)。
  • 定期重新评估规格。两个极端都糟糕:过度分配浪费容量;分配不足会导致交换与抖动。
  • 将持续的高利用率视为容量信号并据此规划,而不是逐台虚拟机地追逐症状。

少数工作负载仍适合裸金属:对延迟极度敏感、与专用硬件紧耦合,或具有实时约束、无法接受哪怕微小调度抖动的情况。

安全考量

虚拟机隔离很强,但不是“力场”。主机是共享的,虚拟机监控器是关键基础设施,漏洞——虽然并不天天发生——确实存在。

务实的安全姿态包括:

  • 及时为虚拟机监控器与主机打补丁
  • 网络分段,让“同一主机”不等于“同一信任域”
  • 在风险画像要求时隔离高敏工作负载

容器又引入一层选择:是直接在主机上运行容器,还是在虚拟机中运行容器,取决于您的隔离需求与运维模型。

虚拟机泛滥

虚拟化让创建变得容易,环境会迅速增长。没有护栏,您会得到孤儿虚拟机、未知所有者,以及“以防万一”存在的机器。

一个可行的预防模型:

  • 要求标注所有者与用途标签
  • 为开发/测试虚拟机设置到期日
  • 定期审查利用率(并删除真正闲置的)
  • 在非生产环境中自动清理

审计常常会发现相当比例的虚拟机长期几乎不做事。解决办法通常并不复杂;更多是纪律与生命周期管理。

虚拟化的真实世界

虚拟化出现在许多团队每日使用的场景里,即使他们未必这样称呼。

开发与数据科学

CI/CD 系统通常在短暂存在的虚拟机或容器上运行作业,让每次流水线运行都从干净环境开始。这能防止依赖漂移,并让故障更易复现。

隔离还能避免项目相互干扰。某个工作流可能需要较旧的 CUDA 库;另一个则需要更新版本。独立环境避免了依赖“拔河”。

托管笔记本也是虚拟化的重要用武之地。当您在 Colab 等平台运行 Jupyter 时,笔记本是在他人管理的基础设施中执行。理解这一点,会让资源上限、重启与文件系统行为不再神秘。

企业与云

云服务商以极大规模运行虚拟化。他们的业务依赖于在保持隔离边界的同时,高效地将不同客户的负载打包到共享集群上。

企业也用同样的打法来做整合与兼容遗留系统。将老应用虚拟化,可以让它远超原始服务器的服役年限而继续运行在现代硬件上。

对于混合部署,诸如 AWS Outposts 的服务之所以存在,是因为组织仍希望在更靠近自身设施的地方运行部分工作负载,同时保持云式模型。

学习与试验

虚拟化依然是最安全的学习环境之一。您可以运行一台 Linux 虚拟机,自由试验、把系统“搞崩”,再回滚到快照,或者干脆删掉,不会影响您的主系统。

它也适合在一台机器上模拟多服务系统:Web 层、应用层与数据库层通过虚拟网络通信——足够真实,足以理解概念,又不至于产生云账单。

虚拟化的未来走向

未来几年,有几大趋势正在塑造团队使用虚拟化的方式。

边缘计算 将更多工作负载推向数据产生之处。轻量虚拟机与容器有助于在分布式地点标准化部署,但在边缘管理集群自有其复杂性。

更智能的资源管理 持续成熟。平台正越来越多地自动“精调”规格、更积极地重平衡负载、更快速地暴露浪费——尤其在人工调优无法扩展的环境中。

最后,混合栈正在成为常态。Kubernetes 在许多环境中主宰容器编排,而“容器在虚拟机内”仍是常见的生产模式:基础设施层用虚拟机做隔离,应用层用容器求灵活。我们的 Introduction to Kubernetes 课程涵盖基础知识。

结语

虚拟化让现代基础设施在大规模下可行:它把一台物理主机切分成相互隔离的环境,这些环境可以被创建、调整大小、迁移与退役,而无需动机架。

对我们数据从业者而言,这不是背景花絮。它体现在可复现的环境、项目间的依赖冲突,以及那些小小的“为什么这个笔记本重启了?”时刻——当您记起下面有个受管运行时时,就更说得通。

让概念牢固的最快方式是搭个小实验室。安装一个 Type 2 虚拟机监控器,创建一台 Linux 虚拟机,拍个快照,有意“搞坏”点什么,再回滚。然后用容器运行类似的工作负载,比较变化:启动时间、资源占用,以及在各自语境中“隔离”究竟意味着什么。

我们也准备了优质资源,助您持续进阶:


Josep Ferrer's photo
Author
Josep Ferrer
LinkedIn
Twitter

Josep 是一名专注于欧洲项目的自由职业数据科学家,擅长数据存储、处理、高级分析,以及具有影响力的数据叙事。 

作为一名教育者,他在纳瓦拉大学硕士项目教授大数据课程,并在 Medium、KDNuggets 和 DataCamp 等平台发表文章分享见解。Josep 还在其通讯 Databites(databites.tech)撰写有关数据与技术的内容。 

他拥有加泰罗尼亚理工大学工程物理学学士学位,以及庞培法布拉大学智能交互系统硕士学位。

FAQs

Type 1 与 Type 2 虚拟机监控器有何区别?

Type 1 直接跑在硬件上,下面没有其他东西。Type 2 需要先有 Windows 或 Mac 在下面。服务器用 Type 1。如果您在用 VirtualBox,您的笔记本很可能跑的是 Type 2。

我什么时候该用虚拟机而不是容器?

确实要看情况。需要在同一台机器上跑 Windows 和 Linux?用虚拟机。要构建微服务?容器更合适。担心安全隔离?还是回到虚拟机。

我需要昂贵的硬件吗?

16GB 内存的笔记本跑几台虚拟机没问题。VirtualBox 是免费的。

虚拟化和云计算是一回事吗?

云计算使用了虚拟化,但在其之上叠加了更多内容,比如计费系统、供应 API、托管数据库与网络。虚拟化只是该堆栈中的一层。

主题
云计算

与 DataCamp 一起学习

课程

云计算概述

2 小时
257.1K
云计算入门,无需编码,涵盖关键概念、术语和工具。
查看详情Right Arrow
开始课程
查看更多Right Arrow