虚拟化如何帮助我们迁移到云虚拟化
在过去的十年中,整个数据中心业界似乎已经接受了虚拟化。还有尚未被虚拟化征服的领域吗?几乎没有了。鉴于虚拟化技术本身变化得非常快。因此想要找到传统遗留应用程序所带来的挑战,支持和迁移到现代化应用的解决方案也就非常难。
在近期的新技术论坛上,Nimboxx公司的联合创始人兼CTO David Cauthronn为我们回顾了虚拟化的历史,及其如何影响了虚拟管理程序的商业化的现实。
虚拟机管理程序是一种商品——那么,我们该何去何从?
虚拟化的物理计算机是公共和私有云计算从台式机到数据中心的骨干,使企业能够优化硬件利用率,提高安全性,支持多租户等等更多的功能特点。
早期的虚拟化方法植根于模拟的CPU,如基于PowerPC的x86 MAC电脑,使用户能够运行DOS和Windows。不仅需要模拟CPU,还需要模拟硬件环境的其余部分,包括图形适配器,硬盘,网卡,内存和接口。
在20世纪90年代后期,VMware在虚拟化方面做出了一项重大突破,其发明的一种技术能够让大部分的代码直接在CPU上执行,而无需转换或模拟。
在VMware之前,两款或更多的操作系统运行在同一台硬件设备上会因为彼此之间相互争夺资源和试图执行特权指令而造成损坏。VMware能够智能的拦截这些类型的指令,动态重写了代码并为重用和快速执行存储了新的转换方式。
总之,这些技术比以前的仿真模拟器运行快得多并且能够帮助定义x86虚拟化——包括“虚拟机管理程序”的旧的主机的概念,这一构建的平台是用来使IT部门能够创建和运行虚拟机平台。
关键的变化
多年来,VMware及其专利一直可以说是统治着整个虚拟化领域。在服务器端的裸机上运行,VMware的ESX成为领先的1型(或本地)管理程序。在客户端,在一个现有的桌面台式机操作系统内运行的VMware工作站也位列最高的“2型”(或托管)管理程序之间。
虚拟化不再是一款只是让开发人员或跨平台虚拟化软件使用的技术了,其已然通过把服务器放入可替代的虚拟化容器,提高了数据中心的效率和可管理性,证明了自己是一款功能强大的工具。
在过去的几年中,一些有趣的开源项目不断涌现,包括Xen和QEMU(快速模拟器)。但这些开源项目无论是在运行速度方面还是灵活性方面都不及VMware,当然他们也为后来者证明了这是一条值得开拓的道路奠定了基础。
2005年左右,AMD和英特尔创造了新的处理器扩展到了x86架构,提供硬件辅助以处理特权指令。其产品分别被AMD和英特尔称为AMD-V和VT-x,这些扩展带来了相当的改观,最终为服务器虚拟化市场带来了新的参与竞争者。不久之后,Xen利用这些新的扩展创建了硬件虚拟机(HVMs),其使用QEMU的设备仿真模拟与英特尔VT-x和AMD-V扩展对于硬件的援助,以支持像微软Windows这样的专有操作系统。
一家名为Qumranet的公司也推出包括Linux内核的虚拟化基础设施——称为基于Kernel的虚拟机(KVM)——并开始使用QEMU设施以托管虚拟机。甚至微软最终也在2008年通过发布其Hyper-V进入了该市场。
一个新行业的问世
当虚拟化实质上成了“免费的”——或者至少可以不用付出昂贵的许可费时——新的使用案例便应运而生了。具体而言,亚马逊开始使用Xen平台,以出租他们的一些额外的计算能力给第三方的客户。通过他们的API,他们开始了弹性云计算的革命,应用程序本身可以进行资源的自我配置,以适合其工作负载。
今天,开源虚拟机管理程序已经成熟,并且在云计算领域已经变得相当普遍。企业纷纷在VMware的协助下积极的开拓,寻找架构,使用KVM和Xen系统虚拟管理程序。这些努力的重点已不再是控制成本,而是为了更充分利用云计算的弹性,同时为这些开源的替代品建立起新的标准。
未来:高性能弹性基础设施
随着虚拟管理程序的日渐商品化,现如今的创新开始更加专注于私人/公共云的硬件架构和软件系统周边:存储架构,软件定义的网络,智能化和自动的业务流程,应用程序API。
传统的服务器应用程序,已经能够被方便装备到虚拟机也在慢慢地退休,让位给弹性,自我定义的云应用程序,云计算才是计算的未来——虽然二者将同时经营相当长一段时间。
展望未来,企业IT部门会对于虚拟化技术的商品化所作出反应,可以分为如下几种:
•维持现状:进行相关的变化改革是非常艰难的,而一些企业会感觉他们已经对部署多年的解决方案感到得心应手了。这意味着他们会继续采用目前已经使用了20到25的存储和管理架构。这也意味着他们将继续支付管理程序的许可证费用,被锁定在虚拟化平台设计的遗留应用程序,缺乏一个路径以支持企业内部的弹性云应用。
•公共云:采用公共云可以帮助企业免除自行管理基础设施的负担。然而,公有云可能不是运行需要专用的资源和增强安全性传统的服务器应用程序的最佳场所。此外,虽然公共云资源在部署最初可以说是成本有效的,但在大规模的经常性费用开支方面采用企业内部资本投资似乎更具吸引力。
•云框架:这包括工具集,如OpenStack,这是真正的云计算一个非常优秀的开源框架。诸如Rackspace这样的公司能够让其实现规模化的运作管理。然而,企业的IT部门真正能够在OpenStack部署上所建立和管理的数量是非常少的。
•Hyperconverged基础设施:诸如Nimboxx这样的企业都提供交钥匙解决方案,提供相同的弹性云计算的好处,这样的框架和工作流程能够支持单一的,模块化设备的传统遗留应用程序。这些数据中心的一箱式解决方案,使企业能够从小处着手,并以最小的增量进行扩展。他们还能够充当传统遗留应用程序和弹性的云应用之间的桥梁。
当企业在考虑hyperconverged基础设施解决方案时,区分“堆栈业主(stack owners)”和“栈栈依赖(stack dependents)”之间的关系是非常重要的。stack dependents是在虚拟机中运行的解决方案,以另一家供应商的管理程序为基础。而Stack owners是供应商运行在裸机上的,自行构建的整个堆栈。
这些差异如何体现出来:
•许可证:Stack owners效仿主要云提供商所使用的开源虚拟机管理程序(KVM和Xen),无需支付昂贵的软件许可证费用。而Stack dependents通常会提供多管理程序的支持,但与开放源代码版本只有有限的集成。
•性能:Stack owner运行在裸机上,使其能够直接控制存储硬件资源与计算。而Stack dependents在虚拟机中运行,这意味着每一个I/O操作都是一个不必要的低效率路径。尽管stack dependents宣称有16000个IOPS来自一个三节点群集,stack owners则可以从单个节点提供180000 IOPS。
•简单性:Stack owners从一个单一的窗格玻璃面板管理整个端到端的基础设施,能够在一款企业内部的私有云解决方案提供公共云的体验。Stack dependents减轻一些存储管理的复杂性,但总的来说,系统和虚拟机管理仍然需要多接口,多个应用程序。
•安全:Stack owners能够对硬件的各方面实施直接控制,可以支持诸如对静止状态的数据实施加密的技术。而Stack dependents由于是在虚拟机上运行,缺乏控制。在其设计过程中,内在的要求是(如管理程序)在堆栈启动前启动,而这阻碍了其获得敏感部位数据集的能力。
•软件定义:Stack owners拥有一切,这意味着软件定义的任何事情都是可能的,包括实时,自助学习系统,可以根据需求提供或切断资源供给和重新分配工作负载。Stack dependents 仅仅只是拥有存储池。
真正的突破将来自那些能够使我们的大企业,以及那些规模较小企业能够方便的消费这些复杂技术。下一代的类似于VMware这样的公司将是那些能够成功地提供一款真正的弹性私有云,并能够以简单的易于部署,易于扩展,高性能的产品来支持传统工作复杂性的企业。