随着组织寻求在保持与日新月异的技术和客户期望同步的同时最大化资源效率,虚拟机(VM)的使用正在呈指数增长。实际上,美国虚拟机价值年同比增长11.8%,达到约290亿美元。预计到2033年,市场规模将扩大,复合年增长率(CAGR)达到令人印象深刻的14.2%(《FMI》,2023年1月)。
了解虚拟机对IT和商业专业人士同样关键,因为它们成为增长和IT战略的核心。继续阅读,以增强您对虚拟机和虚拟化的理解,了解虚拟机是如何工作的,虚拟机是如何使用的,以及如何设置自己的虚拟机。
虚拟机(VM)是一种应用,它作为虚拟计算机运行,但位于物理计算机(例如,主机计算机)中。通常被称为客户机,虚拟机作为独立的独立机器工作,但在主机机器的操作系统上作为进程运行。然而,物理计算机和虚拟机都认为它们各自正在与一个单独的物理机交互。这一点很重要,因为它阻止了主机和客户机相互消耗对方资源,同时也使得虚拟机可以使用客户操作系统,因为它们专注于与物理机功能分离的特定任务。
下图中展示了非虚拟化计算机(例如,物理机)和虚拟化计算机(例如,虚拟机)。
要了解虚拟机是如何工作的,首先需要了解虚拟化的概念和可用的不同虚拟化类型。
虚拟化是一种使用软件创建抽象层(将操作系统从物理硬件平台及其上运行的应用程序解耦)的过程。这是云计算的基础,使虚拟资源的创建成为可能,例如虚拟服务器、桌面、操作系统、文件、存储和网络。
如图所示,未虚拟化的计算机的单一操作系统及其驱动程序与物理机器的硬件直接连接或相关联,然后各个应用程序利用单一的操作系统。然而,在虚拟化的计算机中,应用程序使用的硬件和操作系统由虚拟机监控程序(VMM)软件隔开。VMM软件能够创建、管理和治理虚拟机,并管理物理主机机顶上的虚拟化环境的运行(Technopedia,2023)。
值得注意的是,在讨论虚拟机时,通常指的是整个计算机的虚拟化,但许多组件也可以单独虚拟化。
虚拟化有多种类型,包括应用、桌面、网络、硬件、存储、数据、数据中心、GPU、Linux和云虚拟化。为了讨论的目的,以下类型的虚拟化最为相关。
应用虚拟化
与VMM软件协同工作的虚拟化软件充当虚拟资源和底层物理硬件之间的接口。虚拟机管理程序不仅确保每个虚拟资源都能访问它需要的物理资源,而且通过从其他虚拟资源中获取资源或以其他方式中断计算周期,防止虚拟资源之间相互干扰。还应注意,有两种类型的虚拟机管理程序。
桌面虚拟化
桌面虚拟化使多个桌面操作系统可以在同一台计算机上的各自的虚拟机上运行。此类虚拟化允许许多轻量级桌面在共享的物理机器上运行,从而在更少的硬件和维护下提供更高的用户生产力。
硬件虚拟化
硬件虚拟化使物理硬件可以被当作可以通过网络访问的独立虚拟设备。一个例子包括CPU虚拟化,它使虚拟机管理程序、虚拟机和客户操作系统成为可能。它允许将单个CPU划分为多个虚拟CPU,供多个虚拟机使用。
存储虚拟化
磁盘空间可以分割成更小的部分,专门用于虚拟机。同样,服务器也可以组合虚拟存储空间来创建更大的虚拟磁盘。
网络虚拟化
可以在软件网络上创建虚拟子网络。这些网络可用于在不同的基础设施资源之间路由流量。
请注意,如图所示,每个虚拟机网络都提供了与虚拟机管理程序内核的连接。这表明我们示例中使用的虚拟机管理程序是类型2虚拟机管理程序,因为它不是KVM。
虚拟机用于将主机计算机的部分资源分配给特定的任务。在隔离环境中运行,不会与主机计算机发生冲突,这允许将更多资源集中于特定的进程或任务,而不会减慢主机计算机的处理速度或打断主机计算机的周期。此外,如果客户虚拟机崩溃,可以重新启动或恢复,而不会影响主机计算机。
鉴于这些特性,组织越来越依赖虚拟机工作来从每台物理计算机中提取更多生产力,也就不足为奇了。以下是虚拟机最常见的使用方式。
组织通常使用虚拟机在单个物理服务器上托管多个虚拟机。这显著减少了在多个服务器之间分配工作负载的需求,这在管理和资源方面既昂贵又低效。
通过使用虚拟化软件,组织可以扩展计算资源,使其工作负载和流量支持资源具有灵活性。具体来说,而不是购买额外的硬件来支持波动的工作负载,单个物理机可以被虚拟化以包含多个虚拟机,在需要时可以填补空缺。一些虚拟机软件的例子包括Microsoft Hyper-V、IBM Power VM、Oracle VM和Java虚拟机。
在遭受网络攻击的情况下,如果物理主机计算机通过访问受病毒感染的数据感染了病毒,造成的损害可能很大。然而,如果一个虚拟机感染了病毒,可以简单地快速删除该虚拟机,最大限度地减少损害和暴露给其他物理和虚拟环境实体的风险。此外,恢复虚拟机到最近的备份要比恢复真实计算机机要简单得多,耗时也更少。
在物理计算机上,只有一个主机操作系统。因此,软件、任务和管理都受限于该主机操作系统的约束。然而,通过使用多个虚拟机,可以在同一台物理计算机上运行不同的操作系统(例如,客户操作系统或虚拟操作系统)。以下是运行不同操作系统作为虚拟或客户操作系统与主机操作系统相比可能有益的例子。
当组织的老旧操作系统支持至关重要的旧系统,由于成本或工作量,组织不愿意更换时,通过VM使用不同的操作系统可能是有益的。具体来说,通过运行新的虚拟机运行最新的操作系统,可以利用新的技术和相关软件,而不需要移除支持内部旧系统的旧操作系统。
无论组织是将物理资源迁移到云环境、将功能转移到云计算还是实施新的操作系统,创建新的操作系统虚拟机都可以降低过渡风险,并给开发人员提供时间和空间来测试新系统,而无需完全集成到物理机和底层硬件中。此外,如上所述,旧系统将不会受到影响,因为主机操作系统保持不变,直到进行完全迁移时。
虚拟机有两种基本类型。它们是系统虚拟机和进程虚拟机。
系统虚拟机:系统虚拟机可以完全安装操作系统。这使多个虚拟机可以运行与主机机不同的操作系统。
进程虚拟机:进程虚拟机专注于应用程序的功能,不允许完整安装操作系统。相反,它们在运行特定应用程序或程序时创建操作系统的虚拟环境,然后在应用程序或程序关闭时销毁操作系统环境。
设置虚拟机的方法有很多。然而,在开始之前,提出一些基本问题以创建虚拟机计划是很重要的。
您的虚拟机的主要预期用途是什么,您将构建哪种类型的虚拟机(例如,系统或进程)?
您的虚拟机需要哪些资源(例如,内存、存储)?
您的虚拟机需要哪种类型的连接或其他虚拟机或应用程序的访问?
您将构建自己的虚拟机,还是使用大多数云服务提供商提供的预置虚拟机向导更实用?
您将如何解决虚拟机的网络安全和备份问题?
一旦您有了基本的虚拟机计划,就可以开始设置了。对于第一次构建虚拟机,大多数人都会利用云服务提供商的虚拟机向导。通过这样做,可以快速完成以下步骤来构建虚拟机。
在云服务提供商的平台中找到云引擎。
选择“创建”标签或窗口,并回答有关您的虚拟机需求的问题。请注意,您所做的某些选择无法更改(例如,物理位置),因此在输入之前请仔细考虑您的答案。
您可能会遇到以下问题
a. 您的虚拟机名称是什么?
b. 您的虚拟机物理位置在哪里?
c. 您要构建哪种类型的虚拟机(例如,通用型或内存优化型)?
d. 您将在虚拟机中使用容器吗?
e. 您的虚拟机将使用哪种操作系统?
f. 您希望为您的虚拟机寻求哪些类型的访问(例如,API、防火墙、用户访问)?
如果您更愿意在个人计算机上运行虚拟机,许多软件应用程序,如 VirtualBox,也可以帮助您设置和运行虚拟机。
虚拟机可以用于将多个硬件资源组合成一个单一的虚拟资源,在单个物理机器或服务器上。这可以简化管理、提高效率、降低成本,同时提高可伸缩性和性能。VM的某些其他用途包括
同时运行多个操作系统
在单个网络安全环境中合并各种应用程序,以增加安全性同时减少管理时间和成本
在封闭、安全的环境中访问疑似病毒感染的数据或其他恶意软件影响的文件
作为补丁、升级和潜在配置更改的测试环境
运行过时、不再与新操作系统(OS)或环境兼容的旧版软件
许多人每天都在使用虚拟机(VM),甚至没有意识到。例如,每次访问Microsoft Office 365、Google Workspace或流行的在线存储服务时,用户实际上是通过由虚拟化后端基础设施(例如,VM)支持的Web界面与这些应用程序交互的。
另一个例子涉及到模拟,用户在Apple iOS环境中运行Android应用程序,反之亦然。虽然用户可能知道他们在计算机或物联网(IoT)设备上运行Android应用程序,但他们可能没有意识到正在使用模拟技术,该技术涉及通过VM创建的虚拟化。
从更技术性的角度来看,“实际”的VM(例如,创建/使用VM所需的软件)来自各种来源。其中一些最常用的包括
还有各种开源应用程序可以帮助创建VM。
使用虚拟机是完全合法的。但话虽如此,VM开发者可能在以下情况下遇到法律问题
许可:在您的物理计算机上运行操作系统(OS)时,您需要从该OS的所有者(例如,Microsoft、Apple)或指定的经销商那里获得许可。然而,拥有单个OS许可证并在物理计算机和VM上运行它可以构成法律问题。在这种情况下,需要允许多个OS实例化的许可证或两个单独的许可证。
Apple限制:Apple不允许在非Apple机器、设备等上安装macOS。这意味着如果开发者正在运行运行macOS的VM,该VM的主机计算机也必须运行macOS,并且可能是经过Apple产品硬件和软件批准的组合。