Table of contents
如果你在软件行业工作,你可能听说过虚拟机。 如果没有,你可能想知道它们是什么,它们有什么用途。
作为一名软件工程师,我每天都在使用虚拟机。 它们是软件开发的有力工具,但它们也有其他用途。 也被称为虚拟机,许多企业使用它们是因为它们的灵活性、可靠性和成本效益;它们还可以防止软件测试失控的灾难。
让我们来看看什么是虚拟机以及为什么使用虚拟机。
什么是虚拟机?
虚拟机是一个操作系统(OS)的实例,如Windows、Mac OS或Linux,在计算机的主操作系统中运行。
通常情况下,它在你的桌面上的应用程序窗口中运行。 虚拟机具有完整的功能,就像一台独立的计算机或机器。 从本质上讲,虚拟机是在另一台被称为主机的计算机内运行的虚拟计算机。
图片1:在笔记本电脑上运行的虚拟机。
虚拟机没有硬件(内存、硬盘、键盘或显示器)。 它使用主机的模拟硬件。 正因为如此,多个虚拟机,也被称为 "客人",可以在一台主机上运行。
图片2:运行多个虚拟机的主机。
主机还可以运行具有不同操作系统的多个虚拟机,包括Linux、Mac OS和Windows。 这种能力取决于称为管理程序的软件(见上面的图片1)。 管理程序在主机上运行,允许你创建、配置、运行和管理虚拟机。
管理程序为每个虚拟机分配磁盘空间、安排处理时间和管理内存使用。 这就是甲骨文VirtualBox、VMware、Parallels、Xen、微软Hyper-V和其他许多应用程序所做的:它们是管理程序。
管理程序可以在笔记本电脑、PC或服务器上运行。 它使本地计算机或分布在网络上的用户可以使用虚拟机。
不同类型的虚拟机和环境需要不同类型的管理程序。 让我们来看看其中一些。
虚拟机的类型
系统虚拟机
系统虚拟机,有时被称为完全虚拟化,由管理程序运行并提供实际计算机系统的功能。 它们使用主机的本地操作系统来管理和共享系统资源。
系统虚拟机通常需要一个强大的主机,具有快速或多个CPU,大量的内存和大量的磁盘空间。 一些在个人或笔记本电脑上运行的虚拟机,可能不需要大企业虚拟服务器所需要的计算能力;然而,如果主机系统不充分,它们会运行缓慢。
处理虚拟机
进程虚拟机与SVM完全不同--你可能有它们在你的机器上运行而不自知。 它们也被称为应用程序虚拟机或管理运行环境(MRE)。 这些虚拟机在主机操作系统内运行,支持应用程序或系统进程。
为什么使用PVM? 它们在执行服务时不依赖于特定的操作系统或硬件。 它们有自己的小操作系统,只有它们需要的资源。 MRE在一个独立的环境中;如果它运行在Windows、Mac OS、Linux或任何其他主机上,这都不重要。
最常见的进程虚拟机之一,你可能听说过,也可能看到过在你的电脑上运行。 它用于运行Java应用程序,被称为Java虚拟机或简称JVM。
管理程序的类型
我们关注的大多数虚拟机都使用了管理程序,因为它们模拟了整个计算机系统。 有两种不同类型的管理程序:裸机管理程序和托管管理程序。 让我们快速看一下这两种程序。
裸机管理程序
BMHs也可以被称为本地管理程序,它们直接在主机的硬件上运行,而不是在主机的操作系统中运行。 事实上,它们取代了主机的操作系统,调度和管理每个虚拟机的硬件使用,从而在这个过程中砍掉了 "中间人"(主机的操作系统)。
原生管理程序通常用于大规模的企业虚拟机,公司用它来为员工提供服务器资源。 微软Azure或亚马逊网络服务就是在这种类型的架构上托管的虚拟机。 其他例子有KVM、微软Hyper-V和VMware vSphere。
托管的管理程序
托管型管理程序在标准操作系统上运行--就像我们在机器上运行的任何其他应用程序一样。 它们使用主机的操作系统来管理和分配资源。 这种类型的管理程序更适合需要在机器上运行多个操作系统的个人用户。
这些包括像Oracle VirtualBox、VMware Workstations、VMware Fusion、Parallels Desktop等应用程序。 你可以在我们的文章《最佳虚拟机软件》中找到关于托管虚拟机的更详细的信息。
为什么使用虚拟机?
现在你对什么是虚拟机有了基本的了解,你可能可以想到一些优秀的应用。 以下是人们使用虚拟机的一些首要原因。
1.成本效益高
虚拟机在许多情况下都具有成本效益。 其中最突出的是在企业界。 使用物理服务器为员工提供资源可能是非常昂贵的。 硬件并不便宜,维护它的成本就更高。
现在,使用虚拟机作为企业服务器已经成为常态。 通过MS Azure这样的供应商提供的虚拟机,不需要购买初始硬件,也不需要维护费用。 这些虚拟机的设置、配置和使用只需每小时几分钱。 它们也可以在不使用时关闭,完全不产生费用。
在你的机器上使用虚拟机也是一个巨大的节省。 如果你需要在多个操作系统或不同的硬件配置下进行工作,你可以
在一台主机上使用多个虚拟机--不需要为每个任务购买单独的计算机。
2.可扩展性和灵活性
无论是企业服务器还是在你的笔记本电脑上运行的虚拟机,都是可扩展的。 很容易调整资源以适应你的需求。 如果你需要更多的内存或硬盘空间,只需进入管理程序并重新配置虚拟机以拥有更多。 不需要购买新的硬件,而且这一过程可以迅速完成。
3.快速设置
一个新的虚拟机可以很快建立起来。 我曾有过需要建立一个新的虚拟机的情况,打电话给我管理这些虚拟机的同事,不到一个小时就可以使用了。
4.灾难恢复
如果你试图防止数据丢失并为灾难恢复做准备,那么虚拟机可以是一个非常好的工具。 它们很容易备份,并可以在需要时分布在不同的地方。 如果像微软或亚马逊这样的第三方托管虚拟机,它们将在现场之外,这意味着如果你的办公室被烧毁,你的数据是安全的。
5.易于复制
大多数管理程序允许你制作一个虚拟机的副本或镜像。 镜像可以让你在任何情况下轻松地旋转出同一基础虚拟机的精确复制品。
在我工作的环境中,我们给每个开发人员一个虚拟机,用于开发和测试。 这个过程让我们有一个配置了所有需要的工具和软件的镜像。 当我们有一个新的开发人员入职时,我们所要做的就是制作一个镜像的副本,他们就有了他们需要的东西来工作。
6.完美的开发/测试
使用虚拟机的最佳优势之一是它们是软件开发和测试的完美工具。 虚拟机允许开发人员在一台机器上进行多个平台和环境的开发。 如果该虚拟机被损坏或破坏,可以迅速创建一个新的。
我曾经参与过一些项目,我们设置了自动测试脚本,创建一个新的虚拟机,安装最新的软件版本,运行所有需要的测试,然后在测试完成后删除该虚拟机。
虚拟机对于像我们在SoftwareHow.com所做的产品测试和评论来说是非常有用的。我可以在我的机器上运行的虚拟机中安装应用程序,并对它们进行测试,而不会使我的主环境变得混乱。
当我完成测试时,我可以随时删除虚拟机,然后在我需要时创建一个新的虚拟机。 这个过程也允许我在多个平台上进行测试,尽管我只有一台Windows机器。
最后的话
正如你所看到的,虚拟机是一个具有成本效益的多功能工具,可用于许多应用。 我们不再需要购买、设置和维护昂贵的硬件来为测试人员、开发人员和其他人提供服务器访问。 虚拟机使我们能够灵活地在任何时候轻松和快速地创建我们需要的操作系统、硬件和环境。