服务器虚拟化有助于降低服务器资源消耗,更好地利用计算能力,控制能源费用,并提供数据中心的敏捷性和灵活性。有些技术一方面在概念上很简单,但对企业数据中心却有着深远的影响。服务器虚拟化就是这样一种技术。想象一下,如果您可以添加一层软件(管理程序)以在一台物理服务器上运行多个操作系统实例和相关的工作负载,而不是在一台服务器上运行一个操作系统实例和一个应用程序。哪一种?这就是服务器虚拟化背后的理念。这个想法可以追溯到IBM在1960年代的大型机,后来被VMware发扬光大,VMware在2000年代初期为x86系列服务器引入了虚拟化软件的概念。从那时起,其他供应商开发了自己的服务器虚拟化平台,而业界也创造了先进的管理、自动化和编排工具,使部署、移动和管理虚拟机(VM)工作负载变得更加容易。在服务器虚拟化出现之前,企业需要处理服务器在其数据中心环境中消耗过多资源的问题,处理未充分利用计算能力的问题,处理暴涨的能源账单问题,处理手动操作的问题。处理整体流程效率低下、制度不灵活的问题。服务器虚拟化改变了这一切,并得到了广泛采用。事实上,很难找到不在VM环境中运行大部分工作负载的企业。但是,正如我们所知,任何技术都会被下一件大事所取代。就服务器虚拟化而言,下一件大事就是变得更小。服务器虚拟化对物理设备进行分区,以便多个操作系统和成熟的应用程序可以利用底层计算能力。在下一波云计算浪潮中,开发人员会将应用程序拆分为更小的微服务,这些微服务在轻量级容器中运行,同时还会使用无服务器计算(也称为功能即服务(FaaS))。在这两种情况下,当代码在裸机上运行时,VM被绕过。服务器虚拟化的好处从基本的服务器整合开始,服务器虚拟化有很多好处。您可以在单个硬件上联合多个应用程序,从而减少数据中心所需的服务器总数。更少的服务器意味着更少的框架和网络设备;从物理空间到空调维护成本的一切都将有助于节省开支。服务器虚拟化减少了对新硬件资本支出的需求,因此您不必更新它。您可以重新部署那些突然释放的服务器。还记得数据中心管理员必须手动配置服务器的日子吗?自从服务器虚拟化出现以来,自动化有了长足的进步,让用户可以在几秒钟内运行虚拟机,也可以通过点击几下鼠标来迁移多个工作负载,以响应不断变化的业务需求。服务器虚拟化还可以提供当今基于网络、高度连接的企业所需的高可用性、故障转移、可扩展性、敏捷性、高性能和灵活性。服务器虚拟化是使云计算提供商能够交付其服务的基础技术。当客户从云服务提供商处购买基础架构即服务(IaaS)时,他们会购买VM,然后添加完成工作所需的相关存储、管理和安全功能。不同类型的服务器虚拟化在服务器虚拟化领域,物理服务器称为主机,它运行主机操作系统。每个VM都是来宾,将运行来宾操作系统。客户端彼此隔离。通过基于管理程序的虚拟化,管理程序或虚拟机监视器(VMM)位于主机操作系统和底层硬件层之间,为来宾操作系统提供必要的资源。半虚拟化和全虚拟化允许在将客户操作系统安装到虚拟机之前对其进行修改。这提高了性能,因为修改后的客户操作系统可以直接与管理程序通信,从而减少了仿真开销。硬件辅助虚拟化也试图减少管理程序的开销,但通过硬件扩展而不是软件修改来实现。通过使用内核级虚拟化而不是管理程序,您可以运行单独版本的Linux内核。这使得在单个主机上运行多个虚拟机变得非常容易,因为其中的设备驱动程序可用于主Linux内核和虚拟机之间的通信。最后,借助系统级或操作系统虚拟化,您可以在操作系统内核的单个实例上运行多个但逻辑上不同的环境。在系统级虚拟化中,所有的虚拟机必须共享相同的操作系统副本,而服务器虚拟化允许不同的虚拟机拥有不同的操作系统。虚拟机与容器容器化运动的两个主要推动者是Docker(一种流行的用于启动容器的工具)和谷歌的Kubernetes,它有助于管理多个容器。容器是共享主机操作系统内核的独立代码执行环境。容器比VM更高效、更轻便,因为它们绕过了冗余的来宾操作系统并减少了相关的启动开销。开发人员可以在相同硬件上运行的容器数量是VM的6到8倍。容器确实有其自身的缺点。作为一种相对较新的方法,它们没有成熟技术所具有的广泛管理工具,因此需要大量的设置和维护。此外,还有安全隐患。借助VM,您可以使用来宾映像轻松地在主机之间移动工作负载,但裸机更难升级或移动。对于裸机服务器,回滚机器状态成为一项具有挑战性的任务。虚拟机与无服务器计算在传统的IaaS云环境中,客户首先配置虚拟机、存储、数据库和相关的安全和管理工具,然后将应用程序上传到虚拟机。而通过无服务器计算,开发人员可以先编写代码,让云服务提供商处理其他一切。开发人员永远不需要考虑服务器、操作系统、配置或管理。当然,需要有一台物理服务器来运行代码,但那是云服务提供商的责任。该系统将代码分解为特定的功能,而不是单个应用程序。无服务器服务(例如Amazon的Lambda)会在触发该函数的事件发生时运行该函数。无服务器提供商按功能向客户收费。与微服务/容器场景一样,无服务器计算绕过虚拟机层,功能运行在裸机上。在这一点上,无服务器计算相对不成熟,用例有限。服务器虚拟化的未来虽然容器风靡一时并且对无服务器计算的兴趣也在增长,但现实是服务器虚拟化是一项坚如磐石的技术,因为它提供了绝大多数企业应用程序。势头——据一些估计,虚拟机的饱和率高达90%。很难想象将在VM上平稳运行的关键应用程序迁移到容器或无服务器平台。异构环境的用户可能仍会使用VM,因为容器需要在同一操作系统上运行,并且不能在Linux和Windows之间混合使用。但是,对于使用最新的DevOps和敏捷方法构建的新应用程序,开发人员现在有不同的选择。展望未来,开发人员将根据是在传统虚拟机、容器还是无服务器环境中运行新工作负载来做出具体决策。
