menu icon

虚拟机 (VM)

构建虚拟计算环境的技术以及第一代云计算的基础 — 虚拟机 (VM) 简介。

什么是虚拟机 (VM)?

虚拟机是物理计算机的虚拟表示形式或仿真环境。虚拟机通常被称为访客机,而它们运行所在的物理计算机被称为主机。

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

虽然这项技术可以用很多名称来表示,包括虚拟服务器、虚拟服务器实例 (VSI) 和虚拟专用服务器 (VPS),但本文仅将其称为虚拟机。

虚拟化如何运作

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

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

通过以下视频了解虚拟化的基础知识 (5:20) 并查看“虚拟化的五大优势”这篇文章:

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

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

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

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

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

要获取虚拟机管理器的完整概述,请查看“虚拟机管理器:完整指南”。

虚拟机的优势和好处

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

  • 资源利用率和 ROI 提高:由于一台物理计算机上可以运行多个虚拟机,客户每当想要运行另一个操作系统时,就不必购买新的服务器,因此他们可以从已经拥有的每一个硬件中获得更多的回报。
  • 可扩展性:借助云计算,可以轻松部署同一虚拟机的多个副本,从而更好地满足负载增加的需求。
  • 可移植性:虚拟机可以根据需要在网络中的物理计算机之间进行重定位。这样就可以将工作负载分配给具有备用计算能力的服务器。虚拟机甚至可以在本地环境和云环境之间进行迁移,使其可以用于混合云场景,支持您在数据中心和云服务提供商之间共享计算资源。
  • 灵活性:创建虚拟机比在物理服务器上安装操作系统更快速更轻松,因为您可以克隆已安装操作系统的虚拟机。开发人员和软件测试人员可以根据需求随时创建新环境以处理新任务。
  • 安全性:与直接在硬件上运行的操作系统相比,虚拟机能够以多种方式提高安全性。虚拟机是一种可以通过外部程序扫描恶意软件的文件。您可以随时创建虚拟机的完整快照,以便在虚拟机感染了恶意软件后将其复原到该状态,从而有效地使虚拟机及时恢复原状。快速轻松的虚拟机创建流程还使我们能够完全删除受感染的虚拟机,然后快速重新创建,从而加快从恶意软件感染中恢复的速度。

虚拟机的用例

对于企业 IT 管理员和用户而言,虚拟机有多种用途。以下是一些选项:

  • 云计算:在过去的 10 多年中,虚拟机一直是云计算的基本单元,使数十种不同类型的应用和工作负载能够成功运行和扩展。
  • 支持 DevOps:虚拟机是为企业开发人员提供支持的有效方法,他们可以使用其软件开发和测试流程的设置来配置虚拟机模板。他们可以创建处理特定任务(例如静态软件测试)的虚拟机,包括自动化开发工作流程中的这些步骤。以上这些都有助于简化 DevOps 工具链
  • 测试新的操作系统:您可以利用虚拟机来在桌面系统上测试新的操作系统,而不会影响主操作系统。
  • 调查恶意软件:虚拟机对于经常需要使用新机器来测试恶意程序的恶意软件研究人员很有帮助。
  • 运行不兼容的软件:某些用户可能更喜欢某一个操作系统,但同时仍需要一个程序,而该程序只能在另一个操作系统中使用。Dragon 系列语音命令软件就是一个很好的例子。其供应商 Nuance 已不再提供 macOS 版本的产品。但是,通过运行面向桌面系统的虚拟机管理器(例如 VMware Fusion 或 Parallels),您可以在虚拟机中运行 Windows,从而能够访问该软件的上述版本。
  • 安全浏览:使用虚拟机进行浏览,您在访问站点时就不必担心感染问题。您可以获取计算机的快照,然后在每次浏览会话之后回滚到此状态。用户可以使用 Type 2 桌面虚拟机管理器对此自行设置。或者,管理员可以提供位于该服务器上的临时虚拟桌面。

虚拟机的类型

这部分将介绍一些不同类型的虚拟机:

  • Windows 虚拟机
  • Android 虚拟机
  • Mac 虚拟机
  • iOS 虚拟机
  • Java 虚拟机
  • Python 虚拟机
  • Linux 虚拟机
  • VMware 虚拟机
  • Ubuntu 虚拟机

Windows 虚拟机

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

Android 虚拟机

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

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

有些项目(例如 Shashlik 或 Genymotion)使用可以在软件中重新创建 ARM 架构的仿真器。一种替代方法是 Android -x86 项目,它可以将 Android 移植到 x86 架构。要运行 Android-x86 程序,就必须使用 Type 2 虚拟机管理器 VirtualBox 将其安装为虚拟机。另一种替代方法是 Anbox,它在主机 Linux 操作系统的内核上运行 Android 操作系统。

Mac 虚拟机

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

iOS 虚拟机

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

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

Java 虚拟机

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

Java 程序包含字节码,这是专门用于 JVM 的指令。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 是一家早期的虚拟化软件供应商,现在是面向企业客户的 Type 1 和 Type 2 虚拟机管理器和虚拟机软件的热门提供商。

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

Ubuntu 虚拟机

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

多租户与单租户

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

公共或多租户虚拟机是指多个用户共享公共物理基础架构的虚拟机。这最具成本效益和可扩展性的虚拟机配置方法,但缺少需要满足严格的安全或合规要求的组织可能喜欢的一些隔离特征。

单租户虚拟机的两个模型是专用主机和专用实例。

专用主机需要租用整个物理计算机,并维护对该计算机、其硬件以及所安装的任何软件的持续访问和控制。该模型提供最大程度的硬件灵活性和透明度、工作负载控制和放置,还可以为某些自带许可证软件提供一些优势。

专用实例提供相同的单租户隔离和对工作负载放置的相同控制,但它未与特定物理计算机实现耦合。因此,假如重新启动专用实例,它可能会在新的物理计算机上运行 — 一台专用于个人帐户的机器,但仍是一台新计算机,可能位于不同的物理位置。

虚拟机的定价模式

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

  • 按使用量付费:在按使用量付费模式中,虚拟机没有前期成本,用户只需为使用的内容付费,通常按小时或秒计费,具体取决于提供商和实例类型。
  • 瞬态/现货实例:这是成本最低的虚拟机定价模式,瞬态实例和现货实例都是利用提供商的多余容量,但提供商可能随时对其进行回收。这种模式通常适用于不需要永续运行或在任何其他模式中过于昂贵的应用。
  • 保留实例:与按使用量付费模式不同,保留实例具有明确的期限承诺,通常为一年至三年,但同时也提供大幅折扣。
  • 专用主机:在专用主机定价模式下,用户通常需要承担整个物理服务器的费用,并按照提供商提供专用服务器的增量计费,通常为按照小时或按月。

虚拟机与裸机服务器

选择在物理机上的虚拟机(也称为裸机服务器)不在于考虑竞争能力,而在于了解您的具体需求以及何时需要。

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

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

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

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

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

虚拟机与容器

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

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

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

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

可通“容器与虚拟机:有何差别?”这篇博客帖子了解更多信息。

在以下视频中,Sai Vennam 分解介绍了容器化基础知识以及它与使用虚拟机的比较 (8:09):

如何选择虚拟机提供商

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

  • 可靠的支持 - 确保通过电话、电子邮件、交谈或自助服务方式能够获得 24/7 的全天候客户支持。您需要通过电话联系人工客服来帮助您应对关键 IT 情况。还需要注意哪些云提供商提供更多实际操作支持服务。
  • 管理选项 - 云提供商是否提供非管理和管理两种解决方案?如果您对虚拟化技术一无所知,请考虑将对安装、维护和持续性能监控全权负责的提供商。
  • 软件集成 - 您的虚拟机环境能否与其他软件有效地协同工作?操作系统、第三方软件、开源技术和应用可帮助您交付更多的企业级解决方案。您需要的虚拟机供应商,既要为业界最常用的软件提供支持,同时还要与这些软件的供应商建立强大的合作伙伴关系。注:避免供应商锁定。
  • 高质量的网络和基础架构 - 您的新虚拟机运行所在的基础架构有多先进?这包括可靠的裸机服务器、现代数据中心和网络主干。云提供商应该能够使用最先进的硬件和高速网络技术来履行其部分交易。
  • 服务站点 - 数据距离用户越近,延迟、安全性和及时服务交付方面的麻烦就越少。拥有良好的全球网络,数据中心和 POP 站点遍布世界各地,对于在最需要的时间和地点获得数据至关重要。
  • 备份与恢复 - 在遇到意外事件时,您的云提供商有什么计划来保持虚拟机正常运行?他们是否还为您的虚拟化环境提供附加的备份和冗余选项?持续运营是您应当高度重视的问题。
  • 易于扩展 - 您能否快速轻松地增加、减少、保留、暂停和更新您的虚拟机?在虚拟机可扩展性方面,您最希望听到的词就是“随需应变”。
  • 多种 CPU 配置 - 配置的种类越多越好。在不同的使用时间,不同工作负载需要不同的虚拟机配置。一定要认准提供满足单租户和多租户需求的多种配置包的虚拟机提供商。
  • 安全层 - 再三向提供商确认是否具备安全层。您的业务数据就是最高形式的货币,尤其是在处理敏感客户信息之时。专用网络线路、联邦数据中心选项、内置加密功能以及符合法规合规性标准对于保护您最宝贵的资产至关重要。
  • 无缝迁移支持 - 您的 IT 优先级始终都在变化。这一点众所周知。任何虚拟机提供商都应该具备帮助您在混合、本地和非本地环境之间进行迁移的能力。需要探索完整数据采集、通过网络和面向应用的迁移选项。

虚拟机和 IBM Cloud

IBM Cloud 使您能够根据不同的技术和定价选项来配置和运行自己的虚拟机。您可以根据所需的计算能力、内存、本地存储和 GPU 功能为虚拟机选择技术概要文件,以针对特定工作负载量身定制系统。您还可以使用 IBM Cloud for VMware Solutions 来管理 VMware 虚拟机。

您可以选择公共或专用节点,以满足您的安全性和合规性需求。我们在全球 19 个国家或地区拥有超过 60 个 IBM 数据中心,您可以从中选择合适的专用主机,并将专用的单租户服务驻留在该主机上。

众多部署选项可供选择,能够满足您的定价需求。提前保留一定时间的公共虚拟机实例比非保留系统更加优惠。或者,您可以选择通过基于现货市场定价模式的虚拟机来处理临时工作负载。

IBM Cloud 还支持混合搭配虚拟服务器和裸机资源,以满足您的工作负载需求。

要了解更多信息,请访问 IBM Cloud 页面并注册 IBM ID