万字长文 | 什么是虚拟机?它们如何工作?

了解虚拟机

虚拟机(VM)是对实际计算机系统的模拟或虚拟化,它提供物理计算机的所有功能,但以软件形式存在。它取代了对物理计算基础设施或硬件的需求,创建了一个部署软件应用程序的环境。

简单来说,虚拟机是一种模拟物理机运行的特殊软件。

虚拟机(也称为“客户机”)是在物理计算机(称为“宿主机”)上构建的,使用宿主机的 CPU 核心和内存等资源。单个宿主机可以同时托管多个 虚拟机。每个 虚拟机 都独立运行,拥有自己的操作系统、内存、存储、CPU 和网络接口,独立于硬件主机上的其他 VM 运行。

虚拟机所安装的操作系统称为宿主机操作系统,而虚拟机本身的操作系统称为客户操作系统。每个客户操作系统都会在主机操作系统上的单独窗口中启动并运行,类似于普通程序。

使用虚拟机,您可以在一台计算机上同时运行各种操作系统。例如,一台宿主机上可以同时运行 macOS 或 Linux 虚拟机。每个虚拟机都能提供与在物理机上几乎相同的用户体验,

但是,虚拟机无法直接与物理计算机交互;它依赖于一个轻量级软件层(称为虚拟机管理程序)来协调虚拟机与底层物理硬件之间的通信。

虚拟机管理程序将物理计算机的资源(例如CPU、内存和存储)分配给每个虚拟机,并保证各虚拟机之间的独立性,避免相互干扰。

为什么需要虚拟机

虚拟机的必要性可以通过一个具体的例子来说明:跨平台应用程序的软件开发和测试。

想象一下,开发人员和测试人员正在开发一个软件应用,需要在Windows、macOS和Linux等不同的操作系统上测试其功能和性能。在编码阶段,开发人员需要不同的开发环境,例如Windows或macOS。然而,在物理机器上复制这些环境可能面临挑战。

虚拟机通过创建相似的开发环境来解决这个问题。这些环境可以轻松复制到不同的机器上,确保一致性,从而减少“在我机器上能正常运行”之类的尴尬局面。

另外,软件应用在多个平台上运行,而需要为每个网络建立独立的物理系统显然不切实际。虚拟机允许团队在单个物理机器上创建标准化的Windows、macOS和Linux配置的隔离环境。

因此,虚拟机的出现简化了软件开发和测试流程。

虚拟机的特点

虚拟机的一些主要功能包括:

  • 它允许生成快照,快照代表虚拟机当前状态的瞬时副本。
  • 它支持实时迁移,可以将虚拟机从一个主机实时移动到另一个主机。
  • 其基本组件是虚拟机管理程序,用于更好地管理和分配虚拟机的资源。
  • 它可以配置虚拟网络接口并连接虚拟网络。

虚拟机的优点

虚拟机的主要优势包括:

  • 资源扩展:可以运行与主机不兼容的软件,拓展设备功能。
  • 效率提升:在单个物理主机上同时运行macOS和Windows,节省成本和空间。
  • 安全性:如果一个虚拟机受到攻击,它不会危及同一台机器上的其他虚拟机。
  • 灵活:创建新环境处理新任务更加快捷简单,尤其是可以克隆预装操作系统的虚拟机。
  • 安全措施:外部程序可扫描虚拟机中的恶意软件,快照功能可以在检测到威胁时迅速将虚拟机恢复到未感染状态。

虚拟机的局限性

虚拟机的限制因您的使用情况和工作负载而异,以下是一些需要注意的事项:

  • 性能上限:虚拟机的性能受主机的计算能力和资源限制影响。虚拟机在单个主机上运行时,会降低整体性能。另外,虚拟机通过软件层与主机交互,可能在重负载情况下引发延迟问题。
  • 应用程序兼容性:依赖特定硬件配置、驱动程序或依赖项的应用程序在虚拟环境中可能出现兼容性问题。例如,某些图形密集型软件可能无法在虚拟机中运行得到最佳,限制了其在游戏等应用中的适用性。
  • 许可限制:许多软件供应商要求为每个虚拟机单独购买许可证,这增加了使用虚拟机的成本,例如 Microsoft SQL Server、Adobe Creative Cloud 和 VMware vSphere 等。
  • 单点故障:将多个虚拟机集中在一台物理计算机上,可能会导致单点故障的风险。为了降低这一风险,需要创建虚拟机备份和替代方案,以确保故障主机时仍能继续运行。

由于上述限制,虚拟机与物理主机相比面临许多挑战。

虚拟机的使用

虚拟机的用途非常广泛,例如,如果 Mac 用户需要访问 Microsoft 工具,则可以使用 Windows 虚拟机,而不必购买新计算机。

同样,想要在 Mac 上预览其软件应用程序的 PC 开发人员可以通过虚拟机来实现。它允许用户在 Windows PC 上运行不同的操作系统,而无需额外的硬件。

另一个常见用途是创建不影响主机的软件或操作系统的“虚拟”版本。此功能允许开发人员和安全专家在安全环境中测试软件,隔离损坏的文件,从而减少恶意软件或对系统其他部分的错误的影响。

下面,我们将了解虚拟机的分类。

虚拟机的类别

虚拟机可以根据其用途和功能进行分类。以下是一些常见的类别:

系统虚拟机

系统虚拟机通过提供对主机物理功能(如RAM和存储)的访问来模拟完整的操作系统。例如,它们允许 Windows PC 通过运行 macOS 来模仿 Mac 计算机。

这些虚拟机位于物理服务器或计算工作站上的独立分区中,每个分区都有自己独立的操作系统、配置、应用程序和服务。这是通过将共享资源分配给特定虚拟机的虚拟机管理程序实现的。

进程虚拟机

此类虚拟机也称为应用程序虚拟机或托管运行时环境 (MRE),允许执行特定工具,就好像它们是 PC 的固有或集成功能一样。例如,Windows 主机可以利用 Java 虚拟机来运行 Java 应用程序。

虚拟机可以解决哪些问题?

虚拟机是解决不同类型问题的多功能工具。以下是虚拟机可以解决的一些关键问题:

  • **未充分利用的服务器:**通过在单个服务器上运行多个应用程序来提高服务器利用率。整合未充分利用的服务器有助于提高组织的运营效率并降低成本。
  • **硬件成本高且资源效率低:**通过将多个应用程序整合到一台服务器上,组织可以降低硬件成本并显著减少空间和电力需求。例如,组织可以在一台服务器上放置十台虚拟机,而不是在利用率低的单独服务器上运行十个应用程序。
  • **移动应用程序和灵活的工作需要经济高效的解决方案:**随着组织部署的扩展以满足动态移动应用程序和灵活工作安排的需求,它有助于计算环境的成本管理。
  • **影响多个应用程序的维护或更新期间的停机时间:**通过启用单个应用程序的更新而不影响整个服务器来最大限度地减少停机时间,从而确保在影响各种应用程序的维护或更新期间持续运行。
  • **一个应用程序中的错误或漏洞造成的附带损害:**它隔离应用程序,减轻错误或漏洞而不影响其他依赖项,从而减少附带损害。
  • **管理具有众多应用程序的大型企业系统的挑战:**通过提供高效的管理、扩展和响应不断发展的业务目标的系统,使管理这些系统更易于管理。
  • **第三方云计算环境资源优化难度大:**通过提供部署灵活性、可扩展性等优势,有助于优化第三方云计算环境资源,但需要谨慎部署、资源规模和成本管理,防止成本上升。

现在我们已经了解了虚拟机有助于解决的问题,让我们来探索各种可用的虚拟机软件选项。

虚拟机软件

以下是一些您可以用于软件项目的知名虚拟机软件:

  • **VMware Workstation Player:**该软件是一款虚拟化工具,可在一台机器上支持多种操作系统,无需重启。它允许主机和客户机之间高效共享数据,专为 IT 专业人士设计。
  • **Parallels Desktop:**该软件可实现硬件可视化,让 Windows 无需重启即可在 Mac 上运行。它被认为是实现此目的的最有效选项之一,因其卓越的功能、速度和用户友好性而受到认可。
  • **Oracle VM VirtualBox:**该软件是一款面向家庭和企业用户的开源虚拟化应用程序。它支持 X86 和 AMD64 架构,具有直观的布局和添加新虚拟机的指南。它为企业用户提供高性能,并与大多数 Windows 版本具有广泛的兼容性。
  • **Citrix Hypervisor:**该软件简化了操作管理,允许用户在虚拟化环境中执行资源密集型任务,这对 Windows 10 尤其有益。主要功能包括支持增强的图形工作负载以及用于存储、访问和处理大文件的安全环境。

现在,让我们深入学习虚拟机的工作原理。在上一节中,我们重点介绍了不同的虚拟机软件。现在,让我们通过用例来检查和了解这些用途。

虚拟机的用例

虚拟机对于企业 IT 管理员和用户来说有各种用途。

  • 云计算: 虚拟机一直是云计算的核心组成部分,通过云计算,企业能够动态扩展其计算资源,根据需求灵活调整,帮助优化资源分配。这种灵活性彻底改变了企业管理 IT 基础设施的方式,不仅提高了运营效率,还为企业提供了经济高效的解决方案。
  • 支持 DevOps: 虚拟机为企业开发人员提供了极大的支持,开发人员可以根据软件开发和测试流程预先配置虚拟机模板。比如,他们可以为某些任务(如静态代码测试)创建虚拟机,轻松集成到自动化开发工作流中,从而简化了 DevOps 工具链的管理。
  • 测试新的操作系统: 虚拟机使用户可以在本地测试新操作系统,而不会影响现有的主操作系统。这为用户提供了一个安全的测试环境。
  • 恶意软件分析: 虚拟机有利于测试恶意程序,因为它们通常需要新的机器。
  • 运行不兼容的软件: 虚拟机允许用户选择一种操作系统并在其上运行只能在其他操作系统上运行的软件。比如,通过 VMware Fusion 或 Parallels 这样的虚拟机管理程序,用户可以在 macOS 上运行 Windows,从而访问需要的应用程序和版本。

什么是虚拟化?

虚拟化是通过软件创建抽象层的过程,它将操作系统与物理硬件平台及相关应用程序分离。

虚拟化是云计算的核心,允许生成虚拟资源,如服务器、桌面、操作系统、文件、存储和网络。

下图说明在非虚拟化计算机中,宿主机操作系统(及其驱动程序)和物理硬件之间保持直接连接。各个应用程序则与宿主机操作系统进行交互。

然而,在虚拟化环境中,虚拟机监视器 (VMM) 软件是虚拟化计算机中的中介,它将软件应用程序的操作系统和硬件分开。因此,VMM 软件有助于虚拟机的创建、管理和调节,监督物理主机上虚拟化环境的运行。

虚拟化的优点/特点

  • 多虚拟机创建:在同一个物理服务器上可以创建多个虚拟机,方便测试人员模拟不同的测试环境。
  • 快照功能:提供快照功能,帮助保存虚拟机当前状态并快速恢复。测试人员可以安全地进行破坏性测试,并快速重置测试环境。
  • 可扩展性:轻松扩展,根据测试需求快速启动更多虚拟机,尤其适用于负载测试,以模拟高流量场景。
  • DevOps支持:在DevOps实践中,借助Docker、Kubernetes和Vagrant等工具,可以轻松管理虚拟机,方便集成到开发和测试工作流程中。

虚拟化的类型

虚拟化类型多种多样,包括应用程序、桌面、网络、硬件、存储、服务器和数据中心。下面列出了最关键的虚拟化类型。

  • 应用程序虚拟化: 它允许用户从服务器远程访问应用程序。服务器存储所有个人信息和其他应用程序特征,但应用程序仍可在本地工作站在线运行。例如,用户可能需要运行同一软件的两个不同版本。使用应用程序虚拟化的技术包括托管应用程序和打包应用程序。
  • 网络虚拟化: 网络虚拟化支持在单一物理网络上创建多个虚拟网络,每个网络都有独立的控制和数据平面。这些虚拟网络可以由不同的用户或组织独立管理,网络虚拟化提供了在几天或几周内创建和配置虚拟网络、逻辑交换机、路由器、防火墙、负载平衡器、虚拟专用网络 (VPN) 的能力。
  • 桌面虚拟化: 桌面虚拟化让用户可以将操作系统远程存储在数据中心的服务器上,允许用户从任何位置通过不同的设备访问其桌面。这对于需要特定操作系统的用户特别有用,需要除 Windows Server 以外的特定操作系统的用户可以从虚拟桌面中受益。桌面虚拟化的主要优势包括用户移动性、可移植性以及简化的软件安装、更新和补丁管理。
  • 存储虚拟化: 存储虚拟化能够将多个存储设备整合成一个虚拟的存储池进行统一管理和使用。无论底层存储设备的类型或状况如何,存储虚拟化软件都能保证系统的平稳运行、性能一致,即使面对底层设备的变化、故障和差异。
  • 服务器虚拟化: 服务器虚拟化通过将服务器资源抽象化,能够从一个物理服务器上创建多个虚拟服务器。每个虚拟服务器都可以独立运行操作系统,并拥有自己的标识号和处理器。虚拟服务器都知道它依赖于中央服务器,但它们能够作为独立的个体运行。这种虚拟化方法通过利用合理的主服务器资源提高了性能,降低了系统和基础成本设施,并使虚拟服务器迁移更加顺利方便。
  • 数据虚拟化: 数据虚拟化通过从各种来源收集的数据并在一个集中位置进行管理,使得用户可以轻松访问和使用数据。它抽象了数据收集、存储、格式化和排列的技术细节,提供了一个统一的逻辑视图,用户可以通过各种云服务远程访问该视图。主要的数据虚拟化务公司包括 Oracle、IBM、AtScale 和 CData。

如前所述,还有其他类型的虚拟化,例如服务虚拟化和半虚拟化。您可能想知道服务器虚拟化和服务虚拟化是否是同一件事。它们有时可能会令人混淆,但它们实际上有明显的区别。

服务器虚拟化是将物理设备划分为多个唯一且隔离的虚拟服务器的过程。每个虚拟服务器可以独立运行网络和应用程序。

另一方面,服务虚拟化是为创建新的应用程序并模拟其所依赖系统的行为。这些依赖项可以是数据库、服务或API,服务虚拟化允许开发人员和测试人员在这些依赖系统不可用的情况下,模拟它们的行为从而继续开发和测试工作。

虚拟机如何工作?

VM 使用虚拟机管理程序(虚拟机监视器或管理器 (VMM))将真实硬件转换为虚拟硬件,以便在虚拟环境中使用。

虚拟机管理程序模拟主机的主要组件和硬件资源。它充当物理主机和客户虚拟机之间的中介,它根据具体需求和主机的容量为虚拟机分配资源,从而可以将一个物理主机划分为多个独立的虚拟机。

这些新建的虚拟机可以独立运行,运行其操作系统和应用程序。但是,它们仍然共享宿主机服务器的原始资源,由虚拟机管理程序进行专业管理。这些资源包括内存、RAM、存储等。

虚拟化在虚拟机工作中的作用

如上文所述,虚拟化创建一台基于软件的计算机,该计算机具有指定的内存、存储和 CPU 数量。虚拟机管理程序软件管理此过程,根据需要将资源从宿主机转移到客户机。此外,它还协调虚拟机内部的操作,以防止在使用资源时发生冲突和干扰。

例如,当虚拟机正在运行时,如果用户或应用程序发出需要更多资源的请求,而当前可用资源不足,虚拟机管理程序会迅速识别这一需求,并从宿主机的资源池中重新分配部分资源以满足要求。

虚拟机管理程序在虚拟化中的作用

为了使虚拟机管理程序(VMM)有效运行,宿主机的处理器和主板必须支持硬件级别的虚拟化。这种集成需要特殊命令,使虚拟机管理程序能够分配处理器资源并控制对不同系统内存的访问。

  • VMM保证客户虚拟机仅在分配的资源内运行,避免干扰主机系统。
  • VMM监控虚拟机系统的运行状态,并在出现异常情况时及时发出报警。
  • VMM 可以提供对磁盘扇区或内存寄存器的直接访问

大多数虚拟机管理程序可分为以下两类之一:

  • 第 1 类虚拟机管理程序
  • 第 2 类虚拟机管理程序

第 1 类虚拟机管理程序:

虚拟机管理程序直接在物理硬件上运行(通常在服务器上),并可以访问所有物理计算机资源。它取代了传统操作系统,使用单独的软件工具来创建和管理虚拟机。

管理工具(例如 VMware 的 vSphere)允许用户选择要在虚拟机内安装的客户操作系统。一个虚拟机可以作为其他虚拟机的模板,从而轻松复制并生成新的实例。根据具体需求,可以建立多个虚拟机模板用于各种用途,包括软件测试、生产数据库和开发环境。

第 2 类虚拟机管理程序:
这种虚拟机管理程序作为主机操作系统中的应用程序运行程序,通常设计用于单用户台式机或笔记本电脑。

在这种情况下,用户手动创建虚拟机,然后安装客户操作系统。VMM 允许将物理资源分配给虚拟机,用户可以手动配置分配给虚拟机的处理器核心数和内存等参数

虚拟机管理

管理虚拟机包括多项任务,例如启动和停止虚拟机、调整虚拟机设置以及其他类似的任务。设置虚拟机后,您可以使用虚拟化软件的界面对其进行管理。它包括创建、配置、监控和维护虚拟化环境。正确的管理可确保稳定性、安全性和系统性能。

以下是虚拟机管理的一些常见指南:

  • 选择虚拟化平台:选择最适合您需求和测试环境的虚拟化平台。
  • 安装虚拟机管理程序:在选定的物理主机上安装虚拟机管理程序软件,以便创建和管理虚拟机。
  • 创建虚拟机:通过虚拟化平台的管理界面创建新的虚拟机,您可以指定虚拟机的名称、操作系统及其他详细信息。
  • 安装操作系统:在虚拟机上安装操作系统。
  • 设置网络:为已创建的虚拟机配置网络,可以通过分配动态或静态IP地址、配置DNS设置等方式。
  • 调整资源分配:在配置虚拟机时,可以调整分配RAM、CPU内核和磁盘空间等参数。
  • 拍摄快照:在关键时刻拍摄虚拟机的快照,以保存当前状态,方便在需要时恢复到特定时间点。
  • 文档记录:保留虚拟机配置的文档,以便进行有效管理。

在下文中,我们将了解容器和虚拟机,并探讨它们结构的差异。

容器和虚拟机

了解虚拟机时,区分容器和虚拟机之间的主要区别非常重要。虽然两者的功能相似,但其核心工作原理有所不同。

虚拟机能够模拟计算机整个系统,包括对虚拟硬件单元的建模;而容器则专注于虚拟化软件应用程序及其相关文件。

市面上的虚拟机(例如 VMWare 或 Parallels)利用主机的物理资源来创建带有操作系统的虚拟化计算机。

相比之下,容器直接与主机共享内核操作系统。这样容器比虚拟机更轻巧、更快速,非常适合支持微服务架构,在这种架构中,不同的容器管理着独立的组件应用或服务。

由于多个容器可以在一个虚拟机内运行,因此这两种技术经常一起使用。虽然这种结合可能会带来额外的开支,但它为容器提供了缺乏的额外安全层。

虚拟机和云计算

公共云提供商越来越多地整合云计算技术,包括虚拟化和虚拟机(VM),目标是支持各种操作系统上的不同软件应用程序。

在云中,虚拟机的运行方式与数据中心内的虚拟机类似,主要区别在于,云虚拟机托管在云服务提供商提供的数据中心,而不是组织自己的数据中心。

例如,像 LambdaTest 这样的云平台可以帮助您设置和管理虚拟机,满足各种测试需求。LambdaTest 是一个由 AI 驱动的测试编排和执行平台,可让您使用 3000 多种真实设备、浏览器和操作系统组合进行大规模手动和自动测试。

该平台提供了一种简单便捷的方式来访问各种虚拟机配置,帮助您节省了设置和维护测试基础架构的时间和精力。

此外,它还提供可扩展性和按需访问,以便根据需要快速启动虚拟机进行测试。

云端虚拟机分类

在云计算领域,虚拟机通常以单租户和多租户配置提供。

多租户虚拟机

这种配置允许多个用户共享公共物理基础设施。这种方法是一种经济高效且可扩展的虚拟机配置方法,但可能缺少一些对安全性或合规性有严格要求的组织所青睐的隔离功能。

单租户虚拟机

这些虚拟机专门为单个用户(通常是一个组织)创建。这些虚拟机可以表现为专用主机或专用实例:

  • 专用主机包括租用物理机器并确保对机器、硬件和已安装软件的持续访问和控制。此模式提供最大的硬件灵活性、透明度和工作负载控制,并为特定的自带许可软件提供某些优势。
  • 相反,专用实例提供相同的单租户隔离和对工作负载放置的控制,但不与特定物理计算机绑定。例如,如果重新启动专用实例,它可能会最终在一台新的物理计算机上 — 专用于个人帐户,但仍然是一台新机器,可能位于不同的物理位置。

虚拟机和安全

虚拟机在网络安全解决方案的开发和威胁管理中扮演关键角色。它们对于抵御计算机病毒和阻止黑客攻击至关重要。

虚拟机能够帮助IT专业人员创建安全的沙盒环境,让他们能够安全地打开和检查潜在的危险文件,而不会影响他们的设备或更广泛的网络。

单个受感染文件在网络中的快速传播可能会造成严重损害和破坏。通过利用虚拟机,开发人员或 IT 团队可以隔离受感染的应用程序或文件,保护主机并防止恶意软件传播。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值