揭开“虚拟化已死”的 5 大谎言与真相
最近网络上有一篇热帖-----《虚拟化,一个时代的落幕》,大有“苍天已死,黄天当立,岁在甲子,天下大吉”的意思。细细算来,从上世纪 60 年代,IBM 划时代的推出基于大型机的虚拟化,到今天也差不多一个甲子了,是不是真的虚拟化已死,黄天当立?让我们尝试着透过层层迷雾,揭开虚拟化的谎言与真相。
谎言 1:数据中心全面上云,虚拟化靠边站
要搞清楚这个问题,先要回顾一下虚拟化的技术内涵和发展历程。通常,我们说虚拟化,包含三个部分,即计算虚拟化、存储虚拟化和网络虚拟化。其中计算虚拟化发展的历史最长,可以追溯到 1959 年,牛津大学的计算机教授,克里斯·托弗在国际信息处理大会上发表了一篇名为《大型高速计算机中的时间共享》(Time Sharing in Large Fast Computer)的学术报告,他在文中首次提出了 “虚拟化” 的基本概念,这篇文章也常被认为是云技术的鼻祖。存储虚拟化出现的时间较晚,1987 年,加州大学伯克利分校提出的 RAID(Redundant Array of Independent Disk)技术,将多块硬盘通过硬件或软件方式结合成虚拟的单块大容量的磁盘来使用,可以认为是存储虚拟化的起源。网络虚拟化则完全是为了应对云计算的快速发展,当集群规模达到一定程度后,传统的网络技术,不够灵活,管理复杂,SDN(Software Defined Network)即应运而生。由此可以看到,自始至终,虚拟化都是云的基础性技术,没有好的虚拟化就没有好的云基础设施。
如果说虚拟化数据中心和云有所区别的话?首先是业务视角不同,虚拟化更多是从管理员视角提供资源管理和运维能力,由管理员进行业务发放,强调集中管控;云则是从租户视角来进行资源申请和服务部署,强调分权管理,互不干扰。其次是商业模式不同,虚拟化服务于内部运营,通过统筹资源,自动运维,来降低企业 IT 系统的运行成本;云则是服务于海量的、弹性的外部租户,通过资源共享、弹性伸缩、计量计费来实现 IT 资源的商业变现。最后是解决的客户痛点不同,虚拟化的本质是提升 IT 资源的使用效率,提供的是 Iaas 层的能力;云则更多关注客户在数字化转型中的困境,通过引入大数据、人工智能、区块链等新技术,以 Paas 和 Saas 服务的方式提供给客户。
而且我们也看到随着政企数字化转型的深入,对于虚拟化提供商也提出了新的要求,包括租户管理、服务化改造、多云管理等,头部的厂商如 Vmware、Nutanix 也纷纷推出了支持多租服务化和混合云的解决方案。对于政企客户,可以选择先建一个虚拟化资源池,根据业务发展逐步迭加能力,是一种做加法的建设模式;也可以选择全面上云,再根据自己的需求,裁剪不需要的能力,是一种做减法的建设模式。本质上虚拟化和云都是 IT 基础设施一种建设模式,各有场景,将长期并存,共同服务于政企数字化转型。
真相 1:虚拟化技术是云的基石,虚拟化数据中心和云各有场景,将长期并存。
附图:虚拟化技术发展历程
谎言 2:虚拟化是落后技术,将为容器所替代
虚拟化,或者说是计算虚拟化,在 x86 时代得到了长足的发展。最早出现的是完全虚拟化,即在 HostOS 的基础上,迭加一个 HyperVisor 层,以纯软件的 VMM 模拟完整的底层硬件,包括 CPU、内存、时钟、外设等,这样 GuestOS 及之上的应用,不需要做任何适配就可以在虚拟机上运行。带来的问题是,所有指令都需要软件转换,VMM 的设计会比较复杂,系统整体性能受到影响。
为了解决性能问题,出现了半虚拟化,半虚拟化是一种通过修改 Guest OS 部分访问特权状态的代码,以便直接与 VMM 交互的技术,部分硬件接口以软件的形式提供给 Guest OS。这样做可以提升虚机性能,带来的问题是 GuestOS 必须进行适配,甚至运行在虚拟机中的应用程序也需要修改,不能直接运行于 HostOS 之上。
因此,硬件辅助虚拟化技术得到发展,这个技术方向是由芯片厂商大力倡导的,Intel-VT(Intel Virtualization Technology)和 AMD-V 是目前 x86 平台上可用的两种硬件辅助虚拟化技术,华为的鲲鹏-V 是基于 ARM 技术的硬件辅助虚拟化。硬件辅助虚拟化最大的优势是由 CPU 来提供虚拟指令,不需要 VMM 来进行捕获和转换,可以极大提升虚拟化的性能,同时又能具有全虚拟化隔离硬件差异,GuestOS 和应用无需适配的优势,是虚拟化目前的主流。
但是,虚拟化仍然是 GuestOS 和 HostOS 两层架构,比较重型,无法应对一些敏捷的、需要快速发布、快速部署的业务,尤其是互联网业务,因此操作系统虚拟化,也就是容器技术,应运而生。操作系统虚拟化是一种在服务器操作系统中使用的、没有 VMM 层的轻量级虚拟化技术,内核通过创建多个虚拟的操作系统实例(内核和库)来隔离不同的进程(容器),不同实例中的进程完全不了解对方的存在。
容器技术,也就是操作系统虚拟化,打掉了 GuestOS,整个系统栈更扁平,因此也更加轻量,效率更高。因此有人提出,是不是虚拟化应当完全走向容器?
这个观点有失绝对,首先,容器技术出现的大背景是互联网业务,需要快速迭代,快速发布,是典型的敏态业务,但是大量的传统业务,更关注运行时的稳定性、可靠性、安全性,属于稳态业务,虚拟化更有优势。其次,目前大部分业务没有做容器化改造,已经进行容器化改造的很多传统业务,除了架构更加复杂,也没有看到太多客户价值,在一定的时期内,没有必要改弦更张。从虚拟化到容器有较高的学习成本,大部分企业的 IT 人员,首要的是保证企业业务的稳定运行,根据企业业务的发展和场景的需要,选择传统虚拟化或者容器技术,而且现在主流的技术提供商,如 Vmware、OpenShift 都提供了虚机、容器双栈的技术,可以让客户自由的选择,完全没有必要技术焦虑。
真相 2:容器也是虚拟化技术的一个门类,两者的应用场景不同,没有必要技术焦虑。
附图:主流计算虚拟化技术架构对比
谎言 3:虚拟化只适合通用应用,无法支持关键应用
这个误读来自于对虚拟化的刻板印象——虚拟化就是需要指令转化,资源消耗大,性能和可靠性存在隐患,不能支持关键应用。诚然,过去的虚拟化较多的承载一些桌面云、办公 OA 系统、企业网站等相对通用,对性能和稳定要求相对较低的应用。但是随着虚拟化技术的发展,如前文所述的硬件辅助虚拟化,解决了从应用到 CPU 之间的性能损耗;Intel 和华为主导的 Nof+标准协议,通过 SPDK 实现跨层直通,进一步解决了应用到外部存储之间的数据访问性能,使得虚拟化能够和高可靠、高性能的外部存储结合起来,提供确定性的 SLA,越来越多关键应用如企业的设计平台、证券的交易系统、医院的 HIS 系统开始部署在虚拟机之上。
虚拟化的优势是资源利用率高,能够方便的进行共享,又着重改进了性能和可靠性,进一步拓展了虚拟化的应用场景,体现出了旺盛的生命力。
真相 3:虚拟化改进了性能和可靠性,在支持好通用应用的基础上,逐步走向关键应用。
附图:基于 Nof_+的虚机应用和裸机应用的性能测试对比
谎言 4:虚拟化是纯软件,和硬件没有关系。
前文已经提到过硬件辅助虚拟化,足够说明虚拟化不止是软件,需要关注软件与硬件的协同和互补。我们还应当看到超融合,这是虚拟化的一个十分重要的应用场景,通过虚拟化软件定义超融硬件,以软硬一体的方式来进行一站式部署,逐步成为虚拟化的主流部署方式。
当前,超融合有一个明显的趋势,就是走向专用的超融合硬件。Cisco 的 HyperFLex,就定义了四种超融合节点,包括面向单纯计算的 UCS 系列硬件,和面向存算均衡的混合节点,以及面向高性能场景的全闪存+NVMe 的节点,以及面向边缘的的节点。HPE 的 Nimble 和 EMC VxRail 也定义了一系列的超融合专属硬件。值得注意的还有 DPU 卡,作为近期的热点——DPU 让超融合通过可组合的方式发挥专用硬件的优势。DPU 是数据处理单元,其目标是将 CPU 从单调且重复的数据处理中解放出来,他是超融合架构的数据中枢:DPU 与盘框的组合,将存储虚拟化的能力卸载到 DPU,可实现完全无 CPU 的存储节点;DPU 与 CPU 结合,卸载计算虚拟化的能力,可以实现完全无盘的计算节点;DPU 和 DPU 之间可以通过卸载网络虚拟化实现进行数据互通和流动,让每颗 CPU 都能像访问本地盘一样,访问所需要的数据,消除了原有的跨节点数据瓶颈。VMware 的 Monterey 项目一直致力于孵化 DPU 技术,在最近的 VxRail8.0 中,已经支持将 EXSi 自动部署于 DPU,实现对虚拟化层的卸载,为整个超融合系统提供更高的性能。
因此,我们谈到虚拟化技术,不应该只想到软件,还要关注虚拟化软件与硬件的协同和互补,关注全栈的基础设施能力,虚拟化本质是数据中心软件和硬件的粘合剂。
真相 4:虚拟化不止软件,还要关注硬件,关注全栈能力,虚拟化是数据中心软件和硬件的粘合剂。
附图:基于 DPU 的超融合基础设施
谎言 5:虚拟化只能支持小规模数据中心,无法应用于中大型数据中心
的确,对于小规模数据中心,虚拟化极轻极简,是主流选择,但是并不意味着虚拟化不能应用于大型数据中心。
从技术架构上看,数据中心虚拟化合包含四个部分,即计算虚拟化、存储虚拟化、网络虚拟化和运维管理平台。这其中计算虚拟化和存储虚拟化支持的规模取决与厂商的软件能力,目前主流厂商使用分布式架构提供上千节点的支持能力并不鲜见。VMware 的 vSAN 之所以限定在 64 节点,更多的是一种商业考虑而非技术约束。网络虚拟化即 SDN,则更是为大型数据中心所生,一般中小型数据中心反而很难应用 SDN 的能力。
唯一的瓶颈在于运维管理平台,对于大型数据中心除了普通的设备管理和日常运维,更重要的是服务提供,这部分能力随着运维管理平台发展成为兼顾管理员视角和租户视角的私有云管平台也能得到解决。因此,虚拟化支持中大型数据中心不是一个技术问题。
事实上,在中大型数据中心中已经分布着为数不少的虚拟化资源池,如桌面云资源池、办公资源池、视频处理资源池,这些资源池在以前被认为是一个一个的小烟囱,必欲用云统一收编为后快,但是随着多云技术的出现,随着越来越多企业意识到,使用同一朵云,必然会带来设备商绑定、同质化竞争、数据权属等一系列问题,开始考虑引入多云——既有自有云,又有公有云,还有广泛的虚拟化资源池,使用多云管理平台统一管理起来,掌握 IT 基础设施的主动权。从多云的视角看,虚拟化资源池就是数据中心的一部分,客户可以根据业务的要求,厂商的能力,商务的情况,自由的进行选择和组合。
真相 5:虚拟化将长期在中大型数据中心中占有一席之地。
附图:基于多云架构的企业数据中心
关于虚拟化,有太多误读和误解,但是回归技术本身,我们会发现他仍然是一个快速发展和产生突破的技术方向;回归业务逻辑,我们会发现他仍然是广大客户的真实诉求和务实选择。不识庐山真面目,只缘身在此山中。事实是虚拟化已经无处不在,既是公有云的坚实基础,又是广大企业 IT 客户的可靠拍档,以至于大家忽略了他的存在,忽略了他才是数据中心的根技术,忽略了他一直扮演着数据中心软硬件之间的粘合剂,忽略了他才是企业数字化转型需要夯实的第一公里,需要我们长期的研究、积累和发展。
评论