什么是虚拟机?

虚拟机 (VM) 是一种基于软件的计算机,可在主机硬件上提供一个隔离的运行环境。虚拟机可以运行程序和操作系统、存储数据、连接网络,以及执行其他计算功能。如今我们受益的很多技术(例如云计算人工智能)都植根于虚拟机的概念,虚拟机可以将操作系统和软件与物理机器分隔开来。例如,云计算中的虚拟机能够将云服务提供商的服务器资源虚拟化,从而形成多租户云架构。这种架构让客户在共享资源的同时,又能确保彼此之间相互隔离,互不干扰。

虚拟机的工作原理是什么?

虚拟机使用虚拟化技术在物理机器上创建虚拟硬件,即计算机的虚拟版本。运行虚拟机的物理机器称为主机,在主机上运行的虚拟机称为客机

每个客机虚拟机都在主机上的隔离分区上运行,与其他客机完全隔离。您可以在单个宿主机(通常是服务器)上托管多个虚拟机,并在称为 Hypervisor 的软件层上运行。

Hypervisor 将宿主机的物理资源(如 CPU、GPU、TPU、内存、存储或网络)抽象化为资源池,并按需进行预配与动态分配,从而在提供更高灵活性的同时,提升整体资源利用效率。

Hypervisor 的两大主流类型

  • 类型 1:裸金属 Hypervisor:此类 Hypervisor 直接在主机的物理硬件上运行。凭借卓越的性能与效率,此类 Hypervisor 广泛应用于企业级数据中心。例如,Google Cloud 采用基于 KVM 的 Hypervisor 作为核心引擎,为 Compute Engine 虚拟机提供强力支撑。
  • 类型 2:托管式 Hypervisor:此类 Hypervisor 以应用形式运行在现有操作系统之上,更适用于桌面环境。此类 Hypervisor 主要应用于开发与测试场景。

虚拟机类型

通常而言,虚拟机分为两大类:进程虚拟机与系统虚拟机。

进程虚拟机(亦称为应用虚拟机或托管式运行时环境 [MRE])会在应用或单个进程运行期间创建虚拟的操作系统环境,并在进程退出后立即将其销毁。进程虚拟机能够构建一个独立于平台的运行环境,让应用或进程在各类平台上均能保持一致的运行表现。一个具体的实例是 App Engine 上的 Node.js 运行时:它使 Node.js 程序可在 Google Cloud 的托管式环境中运行,从而实现与底层操作系统的解耦。

系统虚拟机(有时称为硬件虚拟机)可模拟完整的操作系统,从而支持多个操作系统环境在同一物理机上并行运行。通常,当人们谈论“虚拟机”时,指的正是这种类型。系统虚拟机可运行自身的操作系统与应用,并由 Hypervisor 负责监控宿主机的物理资源并在各虚拟机之间进行动态分配。

最近,您可能还听到过有人在讨论云端虚拟机或云虚拟机。云虚拟机就是指在云中的虚拟服务器上运行的虚拟机。许多云服务提供商都支持在他们的基础设施上创建和运行云虚拟机,这样您可以将他们强大的服务器用作宿主机,并利用内存和网络存储空间等其他由软件定义的服务。这些云虚拟机通常按资源优化情况分类:

  • 通用虚拟机适合各种任务和工作负载
  • 计算优化型虚拟机专为高性能计算 (HPC) 和计算密集型应用而设计
  • 内存优化型虚拟机非常适合大型企业数据库和需要大量内存的工作负载
  • 专用虚拟机配置了特定的高端资源(例如 GPU),适合 AI/机器学习和高级科学计算
  • 机密虚拟机是一种安全型虚拟机,即使在内存中处理数据时它也能保护数据

虚拟机与容器

虽然虚拟机与容器均用于实现应用隔离,但其底层实现机制存在本质区别。虚拟机可对包括操作系统在内的整个物理硬件堆栈进行虚拟化。这赋予了每个虚拟机独立完备的隔离环境,但也意味着其体量通常较大,且资源占用量更高。

相比之下,容器更显轻量,因为其仅将操作系统层虚拟化。容器无需为每个应用捆绑完整的操作系统,而是通过共享主机的操作系统内核来运行。这有助于容器在保持隔离性的同时,以更低的资源消耗实现更快速的启动。这一优势使容器成为新应用开发的理想架构选择。鉴于过去十年间的大量应用均针对容器构建,包括电子商务、后台办公及 AI 在内的诸多工作负载已实现“容器原生化”。

虚拟机的典型应用场景

虚拟机是虚拟化计算资源的基础组成要素,在构建任何应用、工具或环境(无论是在云端还是本地)时均发挥着关键作用。

以下是企业利用虚拟机的一些典型应用场景:

将多台物理机重新配置为虚拟机,并使其与其他虚拟机在主机上并行运行,可协助组织有效遏制资源扩张。虚拟机久经考验,即使是性能要求最严苛的应用也能流畅运行。

中央 IT 部门可以为各业务部门和职能领域统一预配并管理虚拟机,这不仅能加速资源访问,更能提升企业的治理透明度。

虚拟机可以作为独立的测试和开发环境,它们拥有完整的功能,同时又不会对周围的基础设施造成任何影响。

虚拟机可轻松开关、迁移和调整,最大限度提高了开发和部署灵活性。

虚拟机提供的灵活性和可移植性是提高迁移计划速度的关键。

在云环境中利用虚拟机复制系统,能为您带来更深一层的安全保障和信心。云环境也能持续获得更新。

虚拟机为创建与本地环境并行的云环境奠定了基础,提供了出色的灵活性,而且不需要放弃旧系统。

虚拟机的优势

虚拟机可提供诸多优势(尤其在选择云端虚拟机时),具体包括:

可伸缩性

基于云的虚拟机让您的应用扩缩自如,不仅提升了可用性,更优化了性能。您可以根据需求灵活扩展容量,而无需承担自建物理服务器的资本支出。

可移植性

虚拟机是一种集硬件资源、操作系统及其所有应用于一体的软件程序包。您可以便捷地在服务器之间迁移虚拟机,甚至能将其从本地硬件环境迁移至云端。

减少占用空间和费用

借助虚拟机,您可以在一台机器上运行多个虚拟环境,从而减少物理基础设施占用空间、电费以及维护和管理费用。

资源预配更快

虚拟机可以轻松复制,让企业无需从零开始,就能快速创建出全新的、一模一样的环境。

可靠性

虚拟机及其组件以虚拟方式存在,并与其他客机虚拟机保持隔离状态。如果虚拟机崩溃,其他客机虚拟机依然可正常运行,物理宿主机不会受到影响。

安全性更高

借助虚拟机,您可以在运行多个操作系统的同时,确保主机操作系统不受干扰。使用虚拟机时,您可以创建安全的虚拟环境来测试应用,甚至研究安全漏洞,而且不会给宿主机带来高风险。现代虚拟机产品(例如 Google Cloud 的机密虚拟机)通过基于硬件的可信执行环境 (TEE),为内存中正在处理的数据提供“使用中加密”机制,让您的数据安全无虞。

虚拟机面临的潜在挑战

然而,在运行虚拟机时,仍需考虑以下关键因素。虚拟机的最大潜在挑战之一是,如果宿主机不够强大,运行多个操作系统和一个 Hypervisor 层可能会导致性能下降。此外,虚拟硬件的效率可能不及物理机的硬件。最后,对于大多数云服务提供商提供的虚拟机,CPU 和内存配置都是固定的,这会导致资源利用率欠佳。

然而,通过选择合适的云服务商提供的虚拟机,可以克服上述大部分问题。相较于传统虚拟机,云虚拟机具备诸多优势,因为它们能协助组织获取整个数据中心级别的算力支持,而非受限于单台物理机器。此外,Google Compute Engine 还提供自定义机器类型,赋予您更灵活的规格选择权。采用自定义配置时,您可以针对工作负载精准定制 CPU 与内存比例,无需再选择可能存在冗余容量的预定义机器类型,从而实现按实际使用的资源付费。这一精准策略不仅能最大限度地减少资源浪费,还能显著降低云端成本,对于从本地或其他云服务提供商迁移至 Google Cloud 的场景尤为适用。Compute Engine 还提供针对特定需求优化的虚拟机类型,适合企业级工作负载、高内存配置,以及机器学习高性能计算等高要求工作负载。

Google Cloud 还提供安全强化型虚拟机,旨在增强虚拟机实例的安全性并协助验证其完整性。Google Cloud 安全强化型虚拟机利用先进的平台安全功能和控制措施,保护企业工作负载免受远程攻击、权限提升和恶意内部人员等威胁的侵扰。

对于某些应用,开发者可能会选择完全绕过传统虚拟机。对于特定应用场景,容器编排 (Google Kubernetes Engine - GKE) 和无服务器计算 (Cloud Run) 等现代部署模型是强大的替代方案,可让团队绕过虚拟机操作系统管理,提高部署速度,而且通常可以节省更多成本。

利用 Google Cloud 解决业务难题

新客户可获得 $300 赠金,用于抵扣 Google Cloud 的费用。
与 Google Cloud 销售专员联系,详细讨论您面临的独特挑战。

迈出下一步

获享 $300 赠金以及 20 多种提供“始终免费”用量的产品,开始在 Google Cloud 上构建项目。