技术博客

    技术博客  >  VMware替代中不可忽视的事:云平台升级
    VMware替代中不可忽视的事:云平台升级
    背景图 2024-08-15 10:16:11

    领跑AI品牌banner

    本期焦点

    虚拟化云平台的升级,一直以来都是数字化用户较为关注的事情。尤其在VMware替代的需求之下,云平台的升级关系到业务运行稳定性、业务环境的安全、运维操作难度等,本文将介绍深信服云平台的升级机制,为广大数字化用户及正在进行VMware替代的用户,提供一些技术角度的参考。

    Part.1 什么时候需要升级?

    传统虚拟化云平台,常常基于以下几个原因需要升级:

    • 新功能特性的引入:对于云平台,其重大版本特性发布、重要机制变更、新场景下的新功能、对新硬件的支持、旧场景下功能的额外支持等,均需要升级。

    • 产品性能的提升:伴随着云平台产品内部结构机制优化带来的性能提升,以及技术进步带来的性能优势均要升级云平台。且一般来说,这类升级通常需与第一点或第三点一起升级完成。

    • 产品补丁的修复:此类问题也属于需要常升级的原因,任何产品都不可能没有缺陷,在云平台产品Beta版发布后,一般要根据用户反馈进行优化调整,同时将已知的问题进行修复,然后做成产品补丁形式进行升级。

    • 产品LTS到期等:随着时间的推移,云平台旧版产品的LTS维护到期,如果用户想要继续获得官方技术支持保障,则必须升级到新版本云平台。

    在业务实践上,升级的内容通常有以下几种:

    升级的内容

    其中虚拟化平台软件通常分为几层:UI前端、平台管控面、平台数据面,在升级时会拆分成这几个部分进行升级。一般而言,平台管控面涉及的是虚拟化软件的业务代码与策略逻辑,平台数据面涉及底层用户数据存储与数据流量,因此通常是先升级平台管控面,后升级平台数据面。

    Part.2 升级应该考虑什么?

    下表根据重要程度排序,列出了升级重点关注事项:

    升级关注事项

    在升级过程中,能否保障虚拟机中业务持续不中断,是大多数用户非常关心的问题,因为这关系到业务是否要中止来进行维护,涉及到各个层面的运营安排,需要停机的升级处理成本要比不停机的升级处理成本高,因此用户往往选择不停机的升级方案,即热升级方案。

    而业界普遍的热升级方案是通过虚拟机迁移来将需要升级的主机搬“空”,然后对主机进行升级变更,升级完再回迁虚拟机,然后再对虚拟机本身进行升级操作,因而这种方案在进行升级时成本较高。例如一台大规格的虚拟机,在迁移时需要耗时非常久才能完成迁移,从而导致有些用户也会选择停机升级。

    因此,当大家普遍关注“业务不中断”时,升级耗时也是一个关键因素。

    对升级整体而言,快速完成是避免升级影响业务运营的核心要素之一,而升级的操作方式越简单、越易上手操作,便越能提高升级效率、减少耗时。同时,为了减少升级失败故障,避免升级失败后检修完再重复升级导致浪费时间,对升级前的平台做一次整体“健康检查”是非常有必要的,这可以大大减少升级故障导致的升级耗时,巡检工具就是用于升级前平台环境“健康检查”的,有助于降低升级时的故障率。

    Part.3 业内主流升级类型

    业内主流升级类型

    热升级泛指升级时不需要停止/中止用户业务的升级动作,具体表现为不需要重启虚拟机,但实现该效果有多种技术方案,主要有两种技术路线:滚动热升级和原地热升级。

    滚动热升级是现在业界主流升级方式,原地热升级是后来业界发现了滚动热升级的缺陷——虚拟机迁移耗时长且需占用主机额外资源,进而改进的另一种思路。主要代表有2020年KVM论坛提出的实时升级技术[1],其核心思想是通过修改QEMU和内核的代码来将虚拟机及Guest机内部状态和内存页表保存到本地文件,然后通过新版本QEMU加载这些文件,读取还原新的虚拟机从而完成升级。

    值得一提的是,2017年,深信服就已经发现了滚动热升级的缺陷,从而提出了类似于实时升级技术的另一种原地热升级技术:深信服原地热升级技术,其主要方法是优化改进虚拟机热迁移技术,对虚拟机本地拷贝,复制内存到新进程空间中,而后还原新虚拟机进行切换,此过程可以并发进行,快速迭代完成升级。因此,在原地热升级技术上,深信服有着较为充分的技术积累与实践经验。

    Part.4 VMware vSphere升级

    我们以主流的VMware vSphere为例,简要介绍下业界的滚动热升级是如何设计的。下图为VMware升级的主要流程步骤(以升至v6.7为例):

    VMware升级的主要流程步骤

    VMware vSphere升级流程[2]

    其中,对于ESXi主机与vCenter,是替换底层平台代码程序,根据官方文档主机升级时需要检查VIB的接受程度,根据不同程度选择是否将主机设置为维护模式以及是否需要重启主机[3]。

    而对于需要重启主机的VIB升级,则需要先将该主机上的虚拟机全部迁移到其他节点,然后进行升级并重启主机,重启完后再回迁虚拟机到主机上,然后进行下一步的虚拟机升级。可以看到,VMware升级操作繁琐,需要不断手动迁移虚拟机调整位置,耗时耗力。同时,迁移虚拟机意味着集群需要保留出一部分资源空间预留给迁移虚拟机,否则集群在高负载时无法完成迁移虚拟机动作,将导致无法升级集群。

    而对于虚拟机的升级,只要Guest机内部系统是Windows或Linux系统,均需要重启Guest机系统[4],即需要用户业务暂时中断,这将影响用户业务运行并且需要用户制定停机计划以切换业务虚拟机。

    针对上述问题与缺陷,我们介绍深信服是如何实现升级时业务不中断的。

    Part.5 深信服原地热升级方案

    深信服HCI的原地热升级技术,不需要重启物理机,不改变虚拟机运行位置和运行状态,直接对所在主机进行升级。平台通过服务化改造与组件解耦,以统一的API接口提供服务,在主机底层文件系统升级的过程中,只要保证各组件的API接口向下兼容且正常服务,则不会对虚拟机的运行状态以及迁移任务产生任何影响。下图为深信服HCI升级的主要流程:

    深信服HCI原地热升级流程

    深信服HCI原地热升级流程

    其中,平台软件的管控面升级是通过热重启与热替换技术完成的,不需像VMware一样重启主机才能生效。而对于虚拟机进程则通过深信服的虚拟机原地热迁移技术完成热升级,所谓原地热迁移其实是同存储迁移场景下的一个特殊场景(也叫本地热迁移),该迁移只需要内存拷贝复制而不需要迁移运行位置,而深信服对原地热迁移进行了特殊优化,能让虚拟机在升级场景下通过共享内存文件形式快速完成迁移本地迁移,从而提高迁移效率,以减少升级耗时。

    另一方面,深信服同样支持滚动热升级,其基本逻辑与VMware相差不大,但在实践操作上有以下特点:

    • 可编排滚动路径:滚动热升级的过程中,可通过界面进行升级任务编排,确定各主机的升级顺序、业务虚拟机迁移关机行为等,同时支持随时暂停升级行为,等待下次业务低峰期继续执行。

    • 全自动滚动升级:完成升级编排后,滚动升级全过程无需人为介入操作,升级流程自动执行,大大降低升级操作复杂度。

    Part.6 深信服原地热迁移技术

    深信服虚拟机原地热迁移是基于同存储热迁移实现的,同存储热迁移即在存储位置不变情况下,将运行中的虚拟机进程迁移至另一个新虚拟机进程方法是将运行时的虚拟机内存和Guest机完整复制拷贝至新进程上,以构造两个完全一致的虚拟机进程,从而到达瞬时切换虚拟机的效果。

    基于上述方法,在本地主机上将运行时的虚拟机进程内的Guest机内存,通过共享内存文件直接共享给新进程中,大大减少内存拷贝时间,迁移性能上进一步提高。

    深信服原地热迁移技术

    深信服同存储热迁移流程

    如上图同存储热迁移所示,主机A上的虚拟机VM1迁移至本地的VM1’上,VM1’的虚拟机参数与VM1完全一致,同时两者的Guest内存完全一致,虚拟化出来的模拟设备均保持一致,深信服同存储热迁移有以下几个迁移阶段:

    • 准备阶段:平台前置检查以及虚拟机规格参数检查等。

    • 预复制阶段:启动本地内存复制过程,开始拷贝复制内存到新虚拟机中,并记录跟踪所有内存页。

    • 迭代复制阶段:因为源虚拟机仍在运行中,所以内存页会被不断写入新数据,由于前面已经记录了所有内存页,此时可以将变化的脏页重新拷贝复制至新虚拟机,迭代复制过程最终收敛脏页至一个小范围区间。

    • 悬停切换:通过虚拟机底层指令挂起源虚拟机,此时源虚拟机会短暂性假死悬停,即downtime时间(VMware亦称stuntime)此时间大约为100ms左右,在该时间段内虚拟化平台会快速将所有剩余的内存脏页拷贝至新虚拟机,最后从新虚拟机恢复启动并解除屏蔽新虚拟机,源虚拟机关机停止,此时就完成了迁移。

    相比于同存储热迁移,虚拟机原地热迁移进一步节省了拷贝内存时间,深信服通过共享内存技术直接减少Guest机的内存拷贝,而不需要像同存储热迁移拷贝内存,原地热迁移只需要拷贝虚机寄存器、硬件设备等状态数据到新进程即可完成迁移切换,这大大提高了虚机迁移效率。

    基于以上流程,深信服云平台可以将每台主机快速升级完毕,同时升级过程中每台主机都可以独立并发的一起升级,这样不管集群规模有多大,云平台都能够在短时间内完成整个平台升级,包括虚拟机的兼容性升级。同时,无需跨主机迁移虚拟机,也极大减少了网络带宽的消耗以及空闲资源预留。

    Part.7 与VMware升级方式对比

    深信服原地热升级优势在于不需要跨主机迁移虚拟机,特别是大规格虚拟机(大内存大磁盘等)不需要消耗网络带宽进行迁移,节省了内存复制拷贝时间,大大提高迁移效率。

    下表给出了深信服原地热升级技术与VMware的滚动热升级技术细节参照对比:

    与VMware升级方式对比与VMware升级方式对比

    Part.8 升级技术总结

    总体来看,业界普遍存在的升级方案往往步骤繁琐,耗时较长,尤其在处理大型配置的虚拟机时,迁移和变更尤为困难。此外,兼容性升级通常需要中断业务并关机,这无疑对业务运营和工作效率造成了严重影响。

    为了完善平台升级方案,深信服云计算产品已支持采用滚动热升级的方式。在升级的实际操作上,对比业内的滚动方案,深信服实现了升级路径的编排、全自动的升级过程、支持升级暂停版本异构等高级特性,显著降低了滚动升级过程中的操作复杂度。

    深信服云产品升级方案不仅优化了滚动热升级,还引入了更为简便的原地热升级技术。原地热升级简化了操作步骤,缩短了升级时间,且无需重启主机,对于大规格虚拟机来说,性能优势尤为明显,让升级流程得以迅速完成,大幅减少业务维护时间,有效降低升级过程对业务运行的影响。

    本文引用内容如下:

    [1]网页:https://blogs.oracle.com/linux/post/qemu-live-update

    [2]网页:https://docs.vmware.com/cn/VMware-vSphere/6.7/com.vmware.esxi.upgrade.doc/GUID-7AFB6672-0B0B-4902-B254-EE6AE81993B2.html

    [3]网页:https://docs.vmware.com/cn//VMware-vSphere/6.7/com.vmware.esxi.upgrade.doc/GUID-B21C1C99-E6D5-4719-A51C-6FE1F5B5C7EF.html

    [4]网页:  https://docs.vmware.com/cn/VMware-vSphere/6.7/com.vmware.vsphere.vm_admin.doc/GUID-41AA8386-D1DA-4788-9718-216C62CE112A.html

    分割线

    云话技术是深信服打造的一档云技术内容专栏,将定期为大家推送云计算相关的技术解析、场景实践等内容,为大家深度解析深信服在云计算领域的创新能力、技术动态、场景应用及前瞻分析。

    联系我们