在过去十年中,整个世界都在拥抱虚拟化。不过,虚拟化技术本身变化非常快,我们很难找到解决传统应用程序支持和迁移到现代应用程序的正确解决方案。
对于虚拟机管理程序来讲,它也只是一种商品。那么用户该如何理解虚拟化在云计算[注]历程中的地位呢?
针对物理计算机的虚拟化是公有云[注]和私有云[注]的中坚力量,使企业能够优化硬件的利用率、增强安全性、支持多租户等。
早期的虚拟化方法主要基于模拟CPU,这种情况之下,用户想要实现虚拟化不仅需要模拟CPU,而且还要模拟硬件环境中的其他组件,包括图形适配器、硬盘、网络适配器、内存和接口。
上世纪90年代末期,VMware在虚拟化技术中有了重大突破,推出的技术可以让大部分代码直接在CPU上执行,而不需要被转译或模拟。
在VMware之前,运行在相同硬件的两个或两个以上的操作系统会互相干扰,因为它们会争夺资源并试图执行特权指令。VMware的技术可以智能地拦截这些类型的指令,动态地重写代码,并存储新的转译用于重复使用和快速执行。
总之,这些技术比以前的模拟器运行的更快,帮助定义了我们现在所知道的x86虚拟化,包括旧的大型机的“管理程序”概念,这是让IT创建和运行虚拟机的平台。
关键变化
多年来,VMware及其专利统治着虚拟化领域。在服务器端,VMware的ESX在裸机上运行,它成为领先的第一类(或本机)管理程序。在客户端,VMware Workstation在现有桌面操作系统内运行,它是第二类(或托管)管理程序。
虚拟化技术不只是针对开发人员或跨平台软件使用的技术,虚拟化还是一个强大的技术,它通过将服务器放在可替代的虚拟化容器中,提高效率和可管理性。
多年来,虚拟化领域涌现出一些有趣的开源项目,包括Xen和QEMU(快速模拟器)。这些技术刚出现时虽然都不像VMware那么快速和灵活,但它们为我们指明了一条发展道路,并且奠定了基础。
大约在2005年,AMD和英特尔公司开发了新的处理器扩展到x86架构,为特权指令提供了硬件辅助。AMD和英特尔公司分别将其称之为AMD-V和VT-x。这些扩展改变了格局,最终将服务器虚拟化带给了更多供应商。不久后,Xen利用这些新的扩展创建了硬件虚拟机(HVM),这种虚拟机使用QEMU的设备模拟,以及来自VT-x和AMD-V扩展的硬件辅助来支持专有操作系统,例如微软Windows。
一家名为Qumranet的公司也开始将虚拟化基础设施增加到Linux内核,被称为基于内核的虚拟机(KVM),并开始使用QEMU设施来托管虚拟机。微软最终也加入了这个领域,在2008年推出了Hyper-V。
一个新的行业诞生
当虚拟化最终变得“自由”,或者至少不再需要昂贵的许可费就可以访问时,我们开始看到新用例的出现。具体来说,亚马逊开始使用Xen平台来出租其多余的计算能力给第三方客户。通过其API,他们拉开了弹性云计算[注]革命的序幕,这意味着应用程序自身可以自我配置资源来满足工作负载的需求。
现在,开源虚拟机管理程序已经日趋成熟,并且在云计算中普及。除了VMware之外,企业开始尝试使用KVM或Xen管理程序的架构。这些尝试并不是因为控制成本,更多地是他们想利用云计算的弹性本质,以及这些开源替代品正在构建的标准。
未来:高性能弹性基础设施
通过虚拟机管理程序的商品化,创新现在正专注于私有/公共云硬件架构,以及围绕它们的软件生态系统:存储架构、软件定义网络[注]、智能化和自主编排,以及应用程序API。
传统服务器已经慢慢让位给弹性的自定义云计算应用程序,这些程序才是计算的未来,虽然在一段时间内这两者会共存。
展望未来,IT部门对虚拟化商品化作出的反应可以分为以下几类:
现状:改变是很难的,一些企业会习惯于他们已经使用多年的解决方案。这意味着(+微信关注网络世界),他们需要面对已经存在20到25年之久的存储和管理架构。这还意味着他们需要继续支付管理程序许可费用,锁定在专门针对传统应用程序的虚拟化平台,并且无法支持企业内部的弹性云计算应用程序。
公共云:移除了管理用户自己的基础设施负担。然而,公共云可能不是运行传统服务器应用程序的最佳位置,因为这些程序需要专门的资源和增强的安全性。此外,虽然公共云资源最具有成本效益,但扩展规模的成本会让内部资本投资看起来更具吸引力。
云框架:包括工具包选项。例如OpenStack,这是针对云计算的优秀开源框架,Rackspace等公司让它可以扩展。然而,很少有IT公司能够真正构建和管理OpenStack部署。
超级融合基础设施:Nimboxx等公司正在提供交钥匙解决方案,这些方案提供与框架和工作流程相同的弹性云优势,以在单一模块化设备中支持传统应用程序。这些数据中心一体机允许公司从小规模开始,并逐渐向外扩展。它们还可以作为传统应用程序和弹性云应用程序之间的桥梁。
当考虑超级融合基础设施解决方案时,企业必须弄清楚“堆栈所有者”和“堆栈依赖者”之间的重要区别。堆栈依赖者是指在虚拟机中运行,以及位于另一个供应商的管理程序之上的解决方案。堆栈所有者是指,在裸机运行并自己构建整个堆栈的供应商。
下面是这些差异带来的影响:
许可费用:堆栈所有者主要使用云服务提供商相同的开源管理程序(KVM或者Xen),企业无须支付昂贵的软件许可费用。而堆栈依赖者通常为多个管理程序提供支持,对开源版本只是有限的支持。
性能:堆栈所有者在裸机上运行,让他们能够对存储和计算的硬件资源进行直接控制。堆栈依赖者在虚拟机中运行,这意味着每个I/O操作遵循低效率路径。堆栈依赖者宣称从三节点集群中提供16000 IOPS,而堆栈所有者可以从单个节点提供18万 IOPS。
简单性:堆栈所有者从单一窗格管理整个端到端基础设施,在私有企业内部解决方案中提供公共云的体验,而堆栈依赖者减轻了一些存储管理复杂性。但总体而言,系统和虚拟机管理仍然需要从多个界面的多个应用程序进行管理。
安全性:堆栈所有者对硬件的各个方面有着直接控制权,并可以支持静态数据加密等技术,堆栈依赖者缺乏这种控制。因为它们运行在虚拟机内。其设计中的固有因素是在堆栈启动前需要其他东西,例如管理程序,这阻碍了它们包含数据集敏感部分的能力。
软件定义:堆栈所有者拥有一切。这意味着软件定义任何事物都是可能的,包括实时自我学习系统,可以根据需求提高或减少资源,以及重新分配工作负载,堆栈依赖者只是拥有存储池。
真正的突破在于让这些复杂的技术可供企业及小型企业使用。下一代类似VMware的公司将会是在简单的、易于部署、易于扩展和高性能产品中提供真正弹性的私有云[注]的优势,同时支持传统工作负载的供应商。