什么是虚拟机? (为什么以及何时使用它)

如果您在软件行业或周围工作,您可能听说过虚拟机。 如果没有,您可能想知道它们是什么以及它们的用途。

作为一名软件工程师,我每天都使用虚拟机。 它们是软件开发中的有力工具,但它们也有其他用途。 也称为 VM,许多企业使用它们是因为它们的灵活性、可靠性和成本效益; 它们还可以防止因软件测试失控而造成的灾难。

让我们来看看虚拟机是什么以及为什么要使用它们。

什么是虚拟机?

虚拟机是在计算机的主操作系统中运行的操作系统 (OS) 的实例,例如 Windows、Mac OS 或 Linux。

通常,它在您桌面上的应用程序窗口中运行。 虚拟机具有完整的功能,就像一台单独的计算机或机器。 本质上,虚拟机是在另一台称为主机的计算机中运行的虚拟计算机。

虚拟机 1
图 1:在笔记本电脑上运行的虚拟机。

虚拟机没有硬件(内存、硬盘驱动器、键盘或显示器)。 它使用来自主机的模拟硬件。 因此,多个虚拟机(也称为“来宾”)可以在单个主机上运行。

虚拟机 2
图 2:运行多个虚拟机的主机。

该主机还可以运行多个具有不同操作系统的 VM,包括 Linux、Mac OS 和 Windows。 此功能取决于称为管理程序的软件(参见上图 1)。 管理程序在主机上运行,​​允许您创建、配置、运行和管理虚拟机。

管理程序分配磁盘空间、安排处理时间并管理每个 VM 的内存使用情况。 这就是像 Oracle 这样的应用程序 VirtualBox的, VMware的, 相似之处、Xen、Microsoft Hyper-V 和许多其他人都这样做:它们是虚拟机管理程序。

管理程序可以在笔记本电脑、PC 或服务器上运行。 它使本地计算机或分布在网络上的用户可以使用虚拟机。

不同类型的虚拟机和环境需要不同类型的管理程序。 让我们来看看其中的一些。

虚拟机的类型

系统虚拟机

系统 VM,有时称为完全虚拟化,由管理程序运行并提供实际计算机系统的功能。 他们使用主机的本机操作系统来管理和共享系统资源。

系统虚拟机通常需要具有快速或多个 CPU、大量内存和大量磁盘空间的强大主机。 有些运行在个人或笔记本电脑上,可能不需要大型企业虚拟服务器所需的计算能力; 但是,如果主机系统不够用,它们会运行缓慢。

处理虚拟机

进程虚拟机与 SVM 完全不同——您可能让它们在您的机器上运行,但您甚至不知道它。 它们也称为应用程序虚拟机或托管运行时环境 (MRE)。 这些虚拟机在主机操作系统内运行并支持应用程序或系统进程。

为什么要使用 PVM? 它们在不依赖特定操作系统或硬件的情况下执行服务。 他们有自己的小操作系统,只有他们需要的资源。 MRE 在一个单独的环境中; 它是否在 Windows、Mac OS、Linux 或任何其他主机上运行都没有关系。

最常见的进程虚拟机之一是您可能听说过并且可能已经看到在您的计算机上运行的一种。 它用于运行Java应用程序,简称Java虚拟机或JVM。

管理程序的类型

我们关心的大多数虚拟机都使用管理程序,因为它们模拟整个计算机系统。 有两种不同类型的管理程序:裸机管理程序和托管管理程序。 让我们快速看一下它们。

裸机管理程序

BMH 也可以称为本机管理程序,它们直接在主机的硬件上运行,而不是在主机的操作系统中运行。 实际上,它们代替了主机的操作系统,调度和管理每个虚拟机的硬件使用,从而在进程中去掉了“中间人”(主机的操作系统)。

本机管理程序通常用于大型企业虚拟机,公司使用这些虚拟机为员工提供服务器资源。 Microsoft Azure 或 Amazon Web Services 是托管在此类架构上的 VM。 其他示例包括 KVM、Microsoft Hyper-V 和 VMware vSphere。

托管管理程序

托管管理程序在标准操作系统上运行——就像我们在机器上运行的任何其他应用程序一样。 他们使用主机的操作系统来管理和分配资源。 这种类型的管理程序更适合需要在其机器上运行多个操作系统的个人用户。

其中包括 Oracle VirtualBox、VMware Workstations、VMware Fusion、Parallels Desktop 等应用程序。 您可以在我们的文章中找到有关托管管理程序的更多详细信息, 最佳虚拟机软件.

为什么要使用虚拟机?

现在您对虚拟机是什么有了基本的了解,您可能会想到一些优秀的应用程序。 以下是人们使用虚拟机的一些主要原因。

1。 经济有效

虚拟机在许多情况下都具有成本效益。 其中最突出的是企业界。 使用物理服务器为员工提供资源可能非常昂贵。 硬件不便宜,维护成本更高。

使用虚拟机作为企业服务器现在已经成为常态。 使用来自 MS Azure 等提供商的 VM,无需购买初始硬件​​,也无需维护费用。 这些虚拟机的设置、配置和使用时间只需一小时。 它们也可以在不使用时关闭,并且完全不产生任何费用。

在您的机器上使用虚拟机也可以节省大量资金。 如果您需要在多个操作系统或不同的硬件配置下工作,您可以
在一台主机上使用多个虚拟机——无需为每项任务购买单独的计算机。

2. 可扩展和灵活

无论是企业服务器还是笔记本电脑上运行的虚拟机,虚拟机都是可扩展的。 可以轻松调整资源以满足您的需求。 如果您需要更多内存或硬盘空间,只需进入管理程序并重新配置 VM 以获得更多空间。 无需购买新硬件,即可快速完成流程。

3. 快速设置

可以快速设置新的 VM。 我遇到过需要设置新 VM 的情况,打电话给管理它们的同事,并在不到一个小时的时间内让它们准备好使用。

4.灾难恢复

如果您正在尝试防止数据丢失并为灾难恢复做准备,那么虚拟机可能是一个了不起的工具。 它们易于备份,并且可以根据需要分布在不同的位置。 如果像微软或亚马逊这样的第三方托管虚拟机,它们将不在现场——这意味着如果你的办公室被烧毁,你的数据是安全的。

5. 易于复制

大多数虚拟机管理程序允许您制作 VM 的副本或映像。 映像让您可以轻松地在任何情况下启动相同基础 VM 的精确复制品。

在我工作的环境中,我们为每个开发人员提供了一个用于开发和测试的 VM。 这个过程允许我们使用所有需要的工具和软件来配置图像。 当我们有新的开发人员入职时,我们所要做的就是制作该图像的副本,他们拥有开始工作所需的一切。

6. 非常适合开发/测试

使用虚拟机的最大优势之一是它们是软件开发和测试的完美工具。 VM 允许开发人员在一台机器上在多个平台和环境上进行开发。 如果该 VM 损坏或毁坏,则可以快速创建一个新 VM。

它们允许测试人员在每个测试周期都有一个干净的新环境。 我参与过一些项目,我们设置了自动测试脚本来创建一个新的虚拟机,安装最新的软件版本,运行所有必需的测试,然后在测试完成后删除虚拟机。

虚拟机在产品测试和评论方面表现出色,就像我们在 TechFewer.com 上所做的那样。 我可以在我的机器上运行的 VM 中安装应用程序并对其进行测试,而不会弄乱我的主要环境。

当我完成测试时,我总是可以删除虚拟机,然后在需要时创建一个新的。 即使我只有一台 Windows 机器,这个过程也允许我在多个平台上进行测试。

最后的话

如您所见,虚拟机是一种经济高效的多功能工具,可用于许多应用程序。 我们不再需要购买、设置和维护昂贵的硬件来为测试人员、开发人员和其他人提供服务器访问。 VM 使我们能够灵活地随时轻松快速地创建我们需要的操作系统、硬件和环境。