虚拟机使用虚拟化技术在物理机器上创建虚拟硬件,即计算机的虚拟版本。运行虚拟机的物理机器称为主机,在主机上运行的虚拟机称为客机。
每个客机虚拟机都在主机上的隔离分区上运行,与其他客机完全隔离。您可以在单个宿主机(通常是服务器)上托管多个虚拟机,并在称为 Hypervisor 的软件层上运行。
Hypervisor 将宿主机的物理资源(如 CPU、GPU、TPU、内存、存储或网络)抽象化为资源池,并按需进行预配与动态分配,从而在提供更高灵活性的同时,提升整体资源利用效率。
通常而言,虚拟机分为两大类:进程虚拟机与系统虚拟机。
进程虚拟机(亦称为应用虚拟机或托管式运行时环境 [MRE])会在应用或单个进程运行期间创建虚拟的操作系统环境,并在进程退出后立即将其销毁。进程虚拟机能够构建一个独立于平台的运行环境,让应用或进程在各类平台上均能保持一致的运行表现。一个具体的实例是 App Engine 上的 Node.js 运行时:它使 Node.js 程序可在 Google Cloud 的托管式环境中运行,从而实现与底层操作系统的解耦。
系统虚拟机(有时称为硬件虚拟机)可模拟完整的操作系统,从而支持多个操作系统环境在同一物理机上并行运行。通常,当人们谈论“虚拟机”时,指的正是这种类型。系统虚拟机可运行自身的操作系统与应用,并由 Hypervisor 负责监控宿主机的物理资源并在各虚拟机之间进行动态分配。
最近,您可能还听到过有人在讨论云端虚拟机或云虚拟机。云虚拟机就是指在云中的虚拟服务器上运行的虚拟机。许多云服务提供商都支持在他们的基础设施上创建和运行云虚拟机,这样您可以将他们强大的服务器用作宿主机,并利用内存和网络存储空间等其他由软件定义的服务。这些云虚拟机通常按资源优化情况分类:
虽然虚拟机与容器均用于实现应用隔离,但其底层实现机制存在本质区别。虚拟机可对包括操作系统在内的整个物理硬件堆栈进行虚拟化。这赋予了每个虚拟机独立完备的隔离环境,但也意味着其体量通常较大,且资源占用量更高。
相比之下,容器更显轻量,因为其仅将操作系统层虚拟化。容器无需为每个应用捆绑完整的操作系统,而是通过共享主机的操作系统内核来运行。这有助于容器在保持隔离性的同时,以更低的资源消耗实现更快速的启动。这一优势使容器成为新应用开发的理想架构选择。鉴于过去十年间的大量应用均针对容器构建,包括电子商务、后台办公及 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) 等现代部署模型是强大的替代方案,可让团队绕过虚拟机操作系统管理,提高部署速度,而且通常可以节省更多成本。
解决方案
解决方案