当今的许多IT创新都源于虚拟机以及软件与硬件的分离。
如今的许多尖端技术,如云计算、边缘计算和微服务,都源于虚拟机的概念——将操作系统和软件实例与底层物理计算机分离。
什么是虚拟机?
虚拟机(VM)是运行程序或应用程序而不绑定到物理机的软件。在虚拟机(VM)实例中,一台或多台来宾计算机可以在主机上运行。
每个虚拟机都有自己的操作系统,并且与其他虚拟机分开运行,即使它们位于同一物理主机上。虚拟机通常运行在服务器上,但也可以运行在桌面系统甚至嵌入式平台上。多个虚拟机可以共享来自物理主机的资源,包括CPU周期、网络带宽和内存。
虚拟机的起源可以追溯到上世纪60年代早期的计算,当时大型机用户的时间共享被用于将软件与物理主机系统分开。虚拟机在上世纪70年代初被定义为“真实计算机机器的高效、独立副本”。
我们今天所知道的虚拟机在过去20年中获得了发展,因为公司采用服务器虚拟化以更有效地利用其物理服务器的计算能力,减少物理服务器的数量并节省数据中心的空间。因为具有不同操作系统要求的应用程序可以在单个物理主机上运行,所以每个应用程序不需要不同的服务器硬件。
虚拟机如何工作?
一般来说,有两种类型的虚拟机:进程虚拟机,将单个进程分开,系统虚拟机,将操作系统和应用程序与物理计算机完全分离。进程虚拟机的示例包括Java虚拟机、.NETFramework和Parrot虚拟机。
系统虚拟机依赖管理程序作为中间人,让软件可以访问硬件资源。管理程序模拟计算机的CPU、内存、硬盘、网络和其他硬件资源,创建一个资源池,可以根据其特定要求分配给各个虚拟机。Hypervisor可以支持多个相互隔离的虚拟硬件平台,使VM能够在同一物理主机上运行Linux和Windows Server操作系统。
虚拟机管理程序领域的知名企业包括VMware(ESX/ESXi)、Intel/Linux Foundation(Xen)、Oracle(适用于SPARC的MV服务器和适用于x86的OracleVM服务器)和微软(Hyper-V)。
台式计算机系统也可以利用虚拟机。此处的示例是Mac用户在其物理Mac硬件上运行虚拟Windows实例。
管理程序有哪两种类型?
管理程序管理资源并将它们分配给虚拟机。它还可以根据管理程序和虚拟机的配置方式来调度和调整资源的分配方式,并且可以根据需求波动重新分配资源。大多数虚拟机管理程序属于以下两类之一:
- Type1。裸机管理程序直接在物理主机上运行,并可以直接访问其硬件。1类管理程序通常在服务器上运行,被认为比2类管理程序更高效、性能更好,因此非常适合服务器、桌面和应用程序虚拟化。类型1管理程序的示例包括MicrosoftHyper-V和VMwareESXi。
- Type2。有时称为托管管理程序,Type2管理程序安装在主机操作系统的顶部,它管理对硬件资源的调用。类型2管理程序通常部署在最终用户系统上以用于特定用例。例如,开发人员可能使用类型2管理程序来创建特定环境来构建应用程序,或者数据分析师可能使用它在隔离环境中测试应用程序。示例包括VMwareWorkstation和OracleVirtualBox。
虚拟机有什么优势?
由于软件与物理主机分离,用户可以在单个硬件上运行多个操作系统实例,从而节省企业时间、管理成本和物理空间。另一个优势是虚拟机可以支持旧版应用程序,从而减少或消除将旧版应用程序迁移到更新或不同操作系统的需求和成本。
此外,开发人员使用虚拟机在安全的沙盒环境中测试应用程序。希望查看他们的应用程序是否可以在新操作系统上运行的开发人员可以利用虚拟机来测试他们的软件,而不是提前购买新的硬件和操作系统。例如,微软最近更新了其免费的Windows VM,允许开发人员下载带有Windows11的评估虚拟机,以便在不更新主计算机的情况下试用该操作系统。
这也有助于隔离可能感染给定虚拟机实例的恶意软件。由于虚拟机内的软件无法篡改主机,恶意软件无法传播同样多的损害。
虚拟机的缺点是什么?
虚拟机确实有一些缺点。在一台物理主机上运行多个虚拟机可能会导致性能不稳定,尤其是在不满足特定应用程序的基础架构要求的情况下。与物理计算机相比,这也使它们在许多情况下效率较低。
如果物理服务器崩溃,在其上运行的所有应用程序都会崩溃。大多数IT商店利用物理和虚拟系统之间的平衡。
还有哪些其他形式的虚拟化?
虚拟机在服务器虚拟化中的成功导致将虚拟化应用到其他领域,包括存储、网络和桌面。如果数据中心正在使用某种类型的硬件,则很有可能正在探索虚拟化它的概念(例如,应用程序交付控制器)。
在网络虚拟化方面,公司已经探索了网络即服务选项和网络功能虚拟化(NFV),它使用商品服务器代替专用网络设备,以实现更灵活和可扩展的服务。这与软件定义网络略有不同,后者将网络控制平面与转发平面分开,以实现对网络资源进行更自动化的供应和基于策略的管理。第三种技术,虚拟网络功能,是可以在NFV环境中运行的基于软件的服务,包括路由、防火墙、负载平衡、WAN加速和加密等过程。
例如,Verizon使用NFV为其虚拟网络服务提供支持,使客户能够按需启动新的服务和功能。服务包括虚拟应用程序、路由、软件定义的广域网、广域网优化,甚至会话边界控制器即服务(SBCaaS),以集中管理和安全部署基于IP的实时服务,例如VoIP和统一通信。
虚拟机和容器
虚拟机的增长导致容器等技术的进一步发展,使这一概念又向前迈进了一步,并在Web应用程序开发人员中获得了吸引力。在容器设置中,可以虚拟化单个应用程序及其依赖项。与虚拟机相比,容器的开销要少得多,因此容器仅包含二进制文件、库和应用程序。
虽然有些人认为容器的开发可能会扼杀虚拟机,但虚拟机有足够的功能和优势来推动技术向前发展。例如,在同时运行多个应用程序或在旧操作系统上运行遗留应用程序时,虚拟机仍然很有用。
此外,有些人认为容器不如虚拟机管理程序安全,因为容器只有一个应用程序共享的操作系统,而虚拟机可以隔离应用程序和操作系统。
IDC软件定义计算部门的研究经理GaryChen表示,即使客户探索云架构和容器,VM软件市场仍然是一项基础技术。“尽管虚拟机软件市场非常成熟且接近饱和,但在未来五年内将继续保持正增长,”Chen在IDC的《2019-2022年全球虚拟机软件预测》中写道。
虚拟机、5G和边缘计算
虚拟机被视为5G和边缘计算等新技术的一部分。例如,Microsoft、VMware和Citrix等虚拟桌面基础架构(VDI)供应商正在寻找将其VDI系统扩展到现在在家工作的员工的方法,作为后COVID混合模型的一部分。
“使用VDI,您需要极低的延迟,因为基本上将击键和鼠标移动发送到远程桌面,”卡内基梅隆大学计算机科学教授MahadevSatyanarayanan说。2009年,Satyanarayanan写了一篇关于如何使用基于虚拟机的小云来为互联网边缘的移动设备提供更好的处理能力的文章,这导致了边缘计算的发展。
在5G无线空间中,网络切片过程使用软件定义的网络和NFV技术来帮助将网络功能安装到虚拟服务器上的虚拟机上,以提供曾经只能在专有硬件上运行的服务。
与当今使用的许多其他技术一样,如果不是几十年前引入的原始虚拟机概念,这些新兴创新就不会被开发出来。