什么是虚拟机?

虚拟机 (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 负责监控宿主机的物理资源并在各虚拟机之间进行动态分配。

以 Google 为代表的部分云服务商还提供进阶功能,支持用户针对每个实例精确自定义虚拟处理器与内存的配额。这有助于针对各类工作负载实现更精准的“规模优化”,旨在避免资源闲置并降低相关的软件许可成本。例如,某些工作负载可能需要极高的核存比,而另一些场景的需求则可能完全相反。通过虚拟机的定制化能力,您可以在满足特定场景需求的同时,有效规避过度预配及资源浪费带来的额外支出。

虚拟机与容器

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

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

虚拟机的典型应用场景

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

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

将多台物理机重新配置为虚拟机,并使其与其他虚拟机在主机上并行运行,可协助组织有效遏制资源扩张。历经长期实践验证,虚拟机已被证明具备承载极高负载及性能敏感型应用的能力。

中央 IT 部门可以为各业务部门与职能领域统一预配并管理虚拟机,在加速资源交付的同时,提升企业的治理透明度。

虚拟机可以用作测试和开发的孤立环境,包含完整的功能,但不会影响周围的基础架构。

虚拟机支持便捷的启停、迁移与适配,旨在为开发和部署环境赋予高度的灵活性。

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

使用虚拟机在云环境中复制系统可提供额外的安全性和确定性。此外,您还可以持续更新这些云环境。

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

虚拟机的优势

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

可伸缩性

基于云的虚拟机可简化应用扩缩流程,旨在提升可用性并优化性能。您可以根据需求灵活扩展容量,而无需承担自建物理服务器的资本支出。

可移植性

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

减少占用空间和费用

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

更快速的资源预配

虚拟机支持便捷复制,可协助企业无需从零开始配置,即可快速部署完全一致的新环境。

可靠性

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

更好的安全性

借助虚拟机,您可以在运行多个操作系统的同时,确保主机操作系统不受干扰。借助虚拟机,您可以创建安全的虚拟环境来测试应用,甚至研究安全漏洞,而且不会给宿主机带来高风险。

虚拟机面临的潜在挑战

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

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

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

利用 Google Cloud 解决业务难题

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

更进一步

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