在当今IT应用程序部署的世界中,服务器虚拟化是一个常用术语。但是,服务器虚拟化到底是什么?是否适合企业的业务?虚拟化的概念始于二十年前,服务器虚拟化如今成为一个更加复杂且涉及更多的话题。但是,其核心基本概念和承诺保持不变。
什么是服务器虚拟化?
物理服务器是一项众所周知的IT设施,其中包括计算、内存存储、网络接口组件。物理服务器还具有多种外形尺寸,其中包括刀片服务器、机架服务器、塔式服务器,通常运营在企业的内部部署数据中心。
对于常规的物理服务器(有时称为“裸机”服务器),计算、内存、存储和网络接口等组件都绑定到单个租户上。例如,将大量的处理任务分配给正在运行的应用程序。对于核心处理器来说,某些工作负载实际上完全占用了给定处理器的全部容量和吞吐量。
服务器虚拟化技术将物理服务器的属性(最显著的是计算能力)抽象为多个虚拟服务器。因此,虚拟CPU可以被抽象化,而不是仅让单个CPU处理单个工作负载,该工作负载无法充分利用硬件的容量,从而使单个工作负载和任务更有效地运行。
服务器虚拟化意味着在虚拟化环境中对物理服务器进行抽象化,从而使企业能够跨服务器资产集群运行应用程序工作负载,而无需直接与底层物理服务器硬件交互。采用虚拟化基础设施可以最大限度地提高运行工作负载的利用率和可靠性。
虚拟化如何工作
虚拟化完全是关于抽象的,即采用物理上的东西并定义虚拟或基于软件的物理资产版本。企业使用服务器虚拟化技术在物理硬件上运行大量虚拟机,企业可以通过这些虚拟机在在这个操作系统运行多个应用程序工作负载。
虚拟化技术有多种类型,其中包括支持虚拟机的管理程序、容器虚拟化、硬件辅助虚拟化。在较高的层次上,所有虚拟化技术的目标都是为了实现同一个目标,即通过分层技术并以高效和灵活的方式配置资源,使物理计算资产更加可用。
虚拟化与云计算
虚拟化和云计算是两个相互关联的主题和技术。云计算就是要在弹性模型上提供服务器计算资源,该模型可以根据需要扩展或缩减。物理服务器没有提供这样的弹性,并且具有固定的容量,这就是云计算建立在服务器虚拟化之上的原因。
借助云计算的服务器虚拟化,云计算供应商可以使用服务器虚拟化来抽象化数据中心内的大量计算资源,供最终用户使用。云计算服务器虚拟化可以提供具有不同数量的虚拟服务器计算和内存容量的不同实例类型。
因此,例如,AWS公司在数据中心中可能运行数以千计的物理服务器,但最终用户无法访问实际的物理服务器硬件。EC2(弹性计算云)服务提供了云计算服务器虚拟化实例,这些实例提供了不同大小和配置的虚拟机云计算实例。
虚拟化技术的应用
服务器虚拟化技术有许多应用程序,各种规模的企业都可以从中受益。
应用程序部署。使用服务器虚拟化技术,可以将应用程序捆绑并打包成一种更易于运行和部署的格式,而不是简单地尝试在裸机服务器上安装。
云计算服务器。虚拟化技术使采用云计算技术成为可能,这一切都是为了扩大运营商的规模,以及降低最终用户的投资。通过虚拟化,物理服务器可以用于提供数百个可用于不同目的的虚拟机。
开发和测试。使用服务器虚拟化技术开发和测试应用程序比物理硬件容易,因为可以快速启动和关闭资源。此外,借助虚拟化技术,开发人员可以设置特定的测试环境,以模拟产品环境,而无需影响生产运营。
桌面仿真。借助虚拟化,最终用户可以在桌面系统上运行服务器虚拟机。可以用于各种用例,其中包括评估和分析。
高可用性、弹性和备份。虚拟化技术的关键特性是它可以使工作负载易于复制。使用复制的工作负载,可以提高弹性和可用性,以及企业执行备份和灾难恢复操作的能力。
服务器利用率。单个操作系统或工作负载通常无法充分利用高端计算。通过虚拟化硬件,组织可以实现更高级别的服务器利用率和运营效率。
虚拟化类型
有多种类型的虚拟化技术可以帮助启用服务器虚拟化架构。
通常将不同类型的虚拟化服务器并行部署或重叠部署。例如,可以使用硬件辅助虚拟化来启用半虚拟化部署的管理程序,该虚拟机管理程序又可以具有运行应用程序虚拟化的容器引擎。
硬件辅助虚拟化。十多年来,包括英特尔公司和AMD公司在内的芯片供应商已经认识到支持虚拟化环境的价值,并在其芯片组中集成了技术来帮助协助和加速虚拟化。借助英特尔VT-x和AMD-V(硬件辅助虚拟化技术),无需对整个芯片组进行虚拟化,就可以加速和优化虚拟机管理程序。
完全虚拟化。完全虚拟化的概念是在硬件辅助或半虚拟化技术出现之前发展起来的。通过完全虚拟化,主机的计算能力被完全抽象化,从而支持虚拟环境。现代芯片组对硬件辅助虚拟化的支持使完全虚拟化的概念不再像以前那样有用。
半虚拟化。半虚拟化提供了一个软件界面,管理程序可以使用该界面对虚拟化硬件功能进行虚拟化,从而实现仿真磁盘和网络功能。半虚拟化(有时简称为PV)可以在不具有硬件辅助虚拟化支持的系统架构上运行。
半虚拟化硬件(PVH)。半虚拟化硬件(PVH)是2018年开始出现的服务器虚拟化的较新形式之一。半虚拟化硬件(PVH)致力于将最佳的准虚拟化(PV)与基于硬件虚拟机(HVM)的虚拟化方法结合在一起。
管理程序。服务器虚拟化架构通常涉及管理程序的使用。在虚拟化中,系统管理程序的作用是利用硬件辅助虚拟化和半虚拟化来启动和管理虚拟机(VM)。虚拟机(VM)和系统管理程序提供操作系统(OS)级别的虚拟化,并且可以运行应用程序工作负载。
开源。虚拟化技术有多种类型,其中包括开源方法。Xen是开源虚拟化技术之一,它可以管理自己的虚拟机管理程序来部署虚拟机。Xen在公共云中广泛用于服务器虚拟化。KVM(基于内核的虚拟机)管理程序是另一种流行的开源管理程序技术。
容器。由Docker普及的应用程序容器有时被认为是服务器虚拟化的又一个层次。但是,容器实际上并没有虚拟化硬件,然后可以对其进行抽象和共享。而不是像Docker这样的容器引擎,多个容器可以利用底层主机操作系统的相同接口和共享库,在独立的实例中运行单独的容器Pod或应用程序。容器通常部署在虚拟机管理程序或虚拟机内部,以提供服务器核心主机操作系统的附加隔离层。