什么是虚拟机 (VM)?
虚拟机是物理计算机的虚拟表现形式,是第一代云计算的计算单元。
黑色和蓝色背景
什么是虚拟机 (VM)?

虚拟机是物理计算机的虚拟表现形式,或者说是对物理计算机的模拟。 虚拟机通常被称为访客机,而它们运行所在的物理计算机被称为主机。

虚拟化技术能够在一台物理计算机上创建多个虚拟机,每个虚拟机具有各自的操作系统 (OS) 和应用。 虚拟机无法与物理计算机直接交互。 而是需要借助一个叫做虚拟机管理器的轻量级软件层,在虚拟机与底层物理硬件之间进行协调。   虚拟机管理器将物理计算资源(例如处理器、内存和存储)分配给每个虚拟机。 它使虚拟机之间相互隔离,互不干扰。

虽然这项技术有很多名称,包括虚拟服务器、虚拟服务器实例 (VSI) 和虚拟专用服务器 (VPS),但本文将它们都称为虚拟机。

虚拟化如何工作

在物理计算机或服务器(也称为裸机服务器)上使用的虚拟机管理器可将物理计算机的操作系统和应用与硬件分离。 这样,物理计算机就可以将自己分成多个独立的“虚拟机”。

每个新虚拟机都可以独立运行各自的操作系统和应用,同时仍共享由虚拟机管理器管理的裸机服务器的原始资源。 这些资源包括内存、存储等。

虚拟机管理器的作用类似于交通警察,将裸机的资源分配给每个新虚拟机,确保它们不会相互干扰。

虚拟机管理器主要有两种类型。

类型 1 虚拟机管理器直接在物理硬件(通常是服务器)上运行,作用是取代操作系统。 通常情况下,您需要使用单独的软件产品,在虚拟机管理器上创建和运行虚拟机。 有些管理工具(例如 VMware 的 vSphere)支持用户选择要在虚拟机中安装的访客操作系统。

可将一个虚拟机作为模板,通过复制模板以创建新的虚拟机。 可针对不同用途(例如软件测试、生产数据库和开发环境),按需创建多个虚拟机模板。

类型 2 虚拟机管理器作为应用在主机操作系统中运行,通常以单用户台式机或笔记本电脑平台为目标。 如果使用类型 2 虚拟机管理器,则需要手动创建虚拟机,然后在其中安装访客操作系统。 您可以使用虚拟机管理器为虚拟机分配物理资源,并手动设置虚拟机可以使用的处理器核心数量和内存容量。 根据虚拟机管理器的功能,您还可能设置 3D 图形加速等选项。

下面的视频介绍了虚拟化的基础知识。 还可以阅读文章“虚拟化的 5 个优点”。

虚拟机的优点

与传统的物理硬件相比,虚拟机具有以下优点:

  • 更高的资源利用率和投资回报率:由于一台物理计算机上可以运行多个虚拟机,客户每当想要运行另一个操作系统时,就不必购买新的服务器,因此他们可以从已经拥有的硬件中获得更多的回报。 

  • 规模:借助云计算,可以轻松部署同一虚拟机的多个副本,从而更好地应对负载的增加。  

  • 可移植性:虚拟机可以根据需要在网络中的物理计算机之间重新部署。  这样就可以将工作负载分配给具有空闲计算能力的服务器。 虚拟机甚至可以在本地环境和云环境之间进行迁移,因此可用于混合云场景,能够在数据中心和云服务提供商之间共享计算资源。  

  • 灵活性: 创建虚拟机比在物理服务器上安装操作系统更快、更方便,因为可以克隆已安装操作系统的虚拟机。 开发人员和软件测试人员可以根据需要随时创建新环境以处理新出现的任务。

  • 安全性: 与直接在硬件上运行的操作系统相比,虚拟机能够以多种方式提高安全性。 虚拟机其实是一个文件,可由外部程序扫描,以确定是否存在恶意软件。 您可以创建任何时间点的完整的虚拟机快照,以便在虚拟机感染恶意软件后,可以有效地复原到该时间点的状态。 虚拟机的创建过程非常便捷,因此,我们可以完全删除受感染的虚拟机,然后快速重新创建,从而加快从恶意软件感染中恢复的速度。
VM 用例

对于企业 IT 管理员和用户而言,虚拟机有多种用途。

云计算:在过去的 10 多年中,虚拟机一直是云的基本计算单元,能够成功运行和扩展数十种不同类型的应用和工作负载。

支持 DevOps:虚拟机可以为企业开发人员提供大力支持 — 他们可以配置包含自己的软件开发和测试流程相关设置的虚拟机模板。 他们可以创建用于处理特殊任务(例如静态软件测试)的虚拟机,包含自动化开发工作流程中的相关步骤。 这一切都有助于简化 DevOps 工具链。

测试新的操作系统:您可以使用虚拟机,在桌面系统上测试新的操作系统,而不会影响主操作系统。 

调查恶意软件:对于经常需要刷新机器以测试恶意程序的研究人员来说,虚拟机可以帮上大忙。 

运行不兼容的软件:某些用户可能更喜欢使用某种操作系统,但同时仍需要只能在另一个操作系统中运行的程序。  Dragon 系列语音听写软件就是很好的例子。 其供应商 Nuance 已不再提供 macOS 版本的产品。 但是,通过运行面向桌面系统的虚拟机管理器(例如 VMware Fusion 或 Parallels),您可以在虚拟机中运行 Windows,从而能够访问该软件的 Windows 版本。

安全浏览:如果使用虚拟机浏览网站,那么您在访问时就不必担心病毒感染问题。  可建立计算机的快照,然后在每次浏览会话结束之后回滚到此状态。 用户可以自己使用类型 2 桌面虚拟机管理器,对此进行设置。 或者,管理员可以提供位于该服务器上的临时虚拟桌面。

虚拟机的类型

Windows 虚拟机

大多数虚拟机管理器都支持虚拟机作为访客机来运行 Windows 操作系统。 Windows 操作系统自带了 Microsoft 的 Hyper-V 虚拟机管理器。 安装后,它会创建一个包含自身和 Windows 主操作系统的父分区,二者都具有对硬件的特权访问权限。 其他操作系统(包括 Windows 访客系统)在通过父分区与硬件通信的子分区中运行。

Android 虚拟机

Google 的开源 Android 操作系统通常用在移动设备和互联家居设备(例如家庭娱乐设备)上。 Android 操作系统仅在适用于这些设备的 ARM 处理器架构上运行,但爱好者、Android 游戏玩家或软件开发人员可能希望在个人电脑上运行该 OS。

这会面临许多问题,因为个人电脑在完全不同的 x86 处理器架构上运行,而硬件虚拟化虚拟机管理器只能在虚拟机和 CPU 之间传递指令。 它不会为具有完全不同指令集的处理器转换这些指令。 因此出现了各种项目,用于解决这个问题。

有些项目(例如 Shashlik 或 Genymotion)使用仿真器,在软件中重现 ARM 架构。 而 Android-x86 项目则另辟蹊径,将 Android 移植到 x86 架构。 为运行 Android 操作系统,必须使用类型 2 虚拟机管理器 VirtualBox,将 Android-x86 程序安装为虚拟机。 还有一种解决方案是 Anbox,它在主机 Linux 操作系统的内核上运行 Android 操作系统。

Mac 虚拟机

Apple 只允许其 macOS 系统在 Apple 硬件上运行,根据其最终用户许可协议,禁止人们在非 Apple 硬件上将其作为虚拟机或以其他方式运行。 您可以在 Mac 硬件上使用类型 2 虚拟机管理器,创建包含 macOS 访客系统的虚拟机。

iOS 虚拟机

目前无法在虚拟机中运行 iOS,因为 Apple 对其 iOS 操作系统的控制非常严格,不允许在 iOS 设备之外的任何设备上运行该系统。

与 iOS 虚拟机最接近的是 Xcode 集成开发环境随附的 iPhone 模拟器,它可以在软件中模拟整个 iPhone 系统。

Java 虚拟机

Java 平台是使用 Java 软件开发语言编写的程序的执行环境。 Java 承诺“一次编写,随处运行”。 这意味着,任何 Java 程序都可以在运行 Java 平台的任何硬件上运行。 为实现上述目标,Java 平台包含了 Java 虚拟机 (JVM)。

Java 程序包含字节码,这是专门用于 JVM 的指令。 JVM 将此字节码编译为机器代码,这是主机计算机使用的最低级别的语言。 一个计算平台的 Java 平台中的 JVM 根据处理器所需的机器代码,为另一个计算平台的 Java 平台中的 JVM 创建一组不同的机器代码指令。

因此,JVM 并不运行整个操作系统,也不会像其他虚拟机一样使用虚拟机管理器。 而是转换应用级别的软件程序,使之能够在特定硬件上运行。

有关 Java 的更多信息,请查看“Java:完全指南”。

Python 虚拟机

与 JVM 一样,Python 虚拟机也不在虚拟机管理器上运行,不包含访客操作系统。 该工具支持使用 Python 编程语言编写的程序在各种 CPU 上运行。

与 Java 类似,Python 将其程序转换为一种称为字节码的中间格式,并将它存储在准备执行的文件中。 当程序运行时,Python 虚拟机将字节码转换为机器代码以快速执行。

Linux 虚拟机

Linux 是许多虚拟机中使用的常见访客操作系统。 它也是用于运行虚拟机的常见主机操作系统,甚至拥有自己的虚拟机管理器,称为基于内核的虚拟机 (KVM)。 自 2007 年以来,主流的 Linux 内核已包含 KVM。 尽管这是开源项目,但 Red Hat 现在收购了开发 KVM 的原始公司。

VMware 虚拟机

VMware 以前是虚拟化软件供应商,现在是面向企业客户的类型 1 和类型 2 虚拟机管理器和虚拟机软件的热门提供商。

VMware:完全指南”提供了有关 VMware 的完整概述。

Ubuntu 虚拟机

Ubuntu 是 Canonical 推出的 Linux 分发版。 它提供桌面系统和服务器版本,这两者都支持作为虚拟机进行安装。 Ubuntu 可作为访客操作系统部署在 Microsoft Hyper-V 上。它提供优化的 Ubuntu 桌面系统版本,可以在 Hyper-V 的增强会话模式下有效运行,能够在 Windows 主机和 Ubuntu 虚拟机之间实现紧密集成。 它包含对以下功能的支持:剪贴板集成、动态桌面大小调整、共享文件夹以及在主机和访客桌面之间移动鼠标。

多租户与单租户

在云计算中,虚拟机通常以单租户和多租户形式提供。

公共(即多租户)虚拟机是指多个用户共享公共物理基础架构的虚拟机。 这种配置虚拟机的方法最为经济实惠,可扩展性也最高,但缺少需要满足严格的安全或合规要求的组织可能想要的一些隔离特征。

单租户虚拟机具有两种模式:专用主机和专用实例。

 专用主机 是指租用整台物理计算机,并保持对该计算机、其中的硬件以及所安装的任何软件的持续访问和控制。 这种模式提供了最大程度的硬件灵活性和透明度以及工作负载控制和放置能力,还可以为某些自带许可证的软件带来一些优势。

 专用实例 提供相同的单租户隔离水平以及对工作负载放置的相同控制能力,但它未与特定物理机器绑定。 因此,假如重新启动专用实例,它可能会在新的物理机器上运行 - 一台专用于单个客户的机器,但是一台新机器,可能位于不同的物理位置。

VM 的定价模式

云端虚拟机最常见的定价模式包括按使用量付费(按小时或秒计)、瞬态/现货实例、保留实例和专用主机。

  • 按使用量付费:在按使用量付费模式中,虚拟机没有前期成本,用户只需为使用的资源付费,通常按小时或秒计费,具体取决于提供商和实例类型。

  • 瞬态/现货实例:这是成本最低的虚拟机定价模式,瞬态实例和现货实例都是利用提供商的多余容量,但提供商可随时将其收回。 这种模式通常适用于不需要永续运行或在任何其他模式中运行成本过高的应用。

  • 预留实例:与按使用量付费的模式不同,保留实例具有明确的期限承诺,通常为一年至三年,但同时也提供大幅折扣。

  • 专用主机:在专用主机定价模式下,用户通常需要承担整台物理服务器的费用,并按照提供商提供专用服务器的增量计费,通常为按照小时或按月。
虚拟机与裸机服务器

选择虚拟机而非物理机器(也称为“裸机服务器”)与具有竞争关系的功能无关,更大程度上取决于了解您的具体需求以及何时需要。 

裸机服务器提供原始硬件、计算能力和隔离功能。 它们是单租户的物理服务器,完全没有虚拟机管理器周期(虚拟化软件),而且完全专用于单一客户。

优先考虑性能和隔离的工作负载(如数据密集型应用以及合规任务)通常最适合使用裸机服务器,尤其是在一段持续时间内部署的情况。

电子商务、ERP、CRM、SCM 和金融服务应用只是适用于裸机服务器的一部分工作负载。

那么,何时需要在裸机硬件上部署虚拟机管理器以创建虚拟机呢? 答案是当工作负载需要最大程度的灵活性和可扩展性的时候。

虚拟机可以轻松增加服务器容量和提高利用率 — 适用于将数据从一个虚拟机迁移到另一个虚拟机,调整数据集大小,以及划分动态工作负载的情况。

虚拟机与容器

理解容器的最简单方法是找出它与传统虚拟机 (VM) 之间有何不同。   在传统的虚拟化中 — 无论是在本地还是在云端,都使用虚拟机管理器来虚拟化物理硬件。  每个虚拟机都包含一个访客操作系统、操作系统运行所需硬件的一个虚拟副本以及一个应用及其关联的库和依赖项。

容器的虚拟化对象不是底层硬件,而是操作系统(通常是 Linux),因此每个单独的容器包含应用及其库和依赖项。  由于缺少访客操作系统,容器才如此轻便,因此速度快而且可移植。

容器以及管理容器的编排引擎 Kubernetes 非常适合现代、云原生微服务架构。   尽管容器与无状态服务的关系最为密切,但也可用于有状态服务。

容器在混合云场景中也越来越常见,因为它们可以在笔记本电脑、云端和传统本地 IT 环境中以一致的方式运行。

可通过博客帖子“容器与 VM:有何区别?”了解更多信息。

以下视频详细介绍了容器化基础知识以及它与虚拟机的比较:

选择虚拟机提供商

只要知道自己的需求,选择虚拟机和云提供商就并不困难。 虚拟机必须符合您的工作负载需求和业务预算,当然一些其他因素也在选择虚拟化环境时起到重要作用。 以下是选择虚拟机服务提供商时要考虑的十大因素。

可靠的支持。 确保可通过电话、电子邮件、交谈或自助服务方式,获得 24/7 式全天候客户支持。 您希望电话另一端的人工客服帮助应对关键 IT 情况。 还需要注意哪些云提供商可通过额外服务提供更多的实际支持。

管理选项。 云提供商是否提供非管理和管理两种解决方案? 如果您对虚拟化技术一无所知,请考虑全程负责安装、维护和持续性能监控的提供商。

软件集成。 您的虚拟机环境能否与其他技术有效地协同工作? 操作系统、第三方软件、开源技术和应用可帮助您交付更多的企业级解决方案。 您需要的虚拟机提供商必须为业界最常用的软件提供支持,同时还要与这些软件的供应商建立强大的合作关系。 注意:避免被供应商锁定。

高质量的网络和基础架构。 您的新虚拟机运行所在的基础架构有多先进? 这包括可靠的裸机服务器、现代数据中心和网络主干。 云提供商应该能够使用最先进的硬件和高速网络技术来履行其部分交易。

地点、地点、地点! 数据距离用户越近,延迟、安全性和及时服务交付方面的麻烦就越少。 遍布各地的数据中心和 POP 地点所构成的全球网络,对于确保您在最需要的时间和地点获得相关数据至关重要。

备份与恢复。 云提供商实施了怎样的计划,以确保在发生意外事件时虚拟机仍能正常运行? 他们是否还为虚拟化环境提供附加的备份和冗余选项? 持续运营是必须高度重视的问题。

易于扩展。 启动、停用、保留、暂停和更新虚拟机的速度和难易度如何? 在虚拟机可扩展性方面,您最希望听到的词就是“随需应变”。

多种 CPU 配置。 配置的种类越多越好。 在不同的使用时间,不同工作负载需要不同的虚拟机配置。 一定要认准提供满足单租户和多租户需求的多种配置包的虚拟机提供商。

安全层。 再三向提供商确认是否具备安全层。 您的业务数据就是最高形式的货币,尤其是在处理敏感客户信息之时。 专用网络线路、联合数据中心选项、内置加密功能以及满足合规标准对于保护您最宝贵的资产至关重要。

无缝迁移支持。 您的 IT 优先任务始终在与时俱进。 这一点众所周知。 任何虚拟机提供商必须能够帮助您在混合、本地和非本地环境之间进行迁移。 需要探索完整数据采集、网络传输和应用主导的迁移等选项。

相关解决方案
IBM Cloud

IBM Cloud 与 Red Hat 强强联合,提供市场领先的安全性、企业可扩展性和开放式创新,发挥云计算和 AI 的全部潜力。

探索 IBM Cloud
VMware 解决方案

IBM Cloud for VMware Solutions 旨在帮助您将 VMware 工作负载从本地迁移到 IBM Cloud。

探索 IBM Cloud for VMware Solutions
虚拟服务器

IBM Cloud 虚拟服务器是公有和专用的虚拟服务器,可按需配置和扩展,提供按月和按小时计费选项。

探索虚拟服务器
资源 什么是云计算?

云计算将 IT 基础架构转型为公用事业形式:借助云计算,可通过互联网"插入"计算资源和应用,而无需在本地进行安装和维护。

什么是混合云?

混合云将公有云服务、私有云服务和本地基础架构集成到单个分布式计算环境中。

什么是 DevOps?

DevOps 通过结合并自动执行软件开发和 IT 运营团队的工作,以更快速度交付更高质量的软件。

采取下一步行动

IBM Cloud® Virtual Server for VPC 借助 IBM Cloud 上可用的最高网络速度和最安全的软件定义的网络资源,快速提供计算能力。 这种开发人员友好型基础架构基于 IBM Cloud Virtual Private Cloud (VPC),具备功能强大的第 2 代 Intel® Xeon® 处理器,借助在敏捷的公有云环境中预设的概要文件、快速部署能力和专用网络控制能力,更快速更轻松地推进现代化工作负载的运行。 选择多租户或专用模式,添加 GPU 并根据使用量按小时付费。

探索 IBM Cloud Virtual Servers for VPC