关于运维:Tech-Talk-云技术有话聊-高业务负载虚拟机热迁移如何做到平滑

37次阅读

共计 2019 个字符,预计需要花费 6 分钟才能阅读完成。

4 月 29 日,服气云研发技术专家 Frank.Lee 在服气云《Tech Talk · 云技术有话聊》系列直播课上进行了《高业务负载虚拟机热迁徙的挑战和优化实际》的分享,具体介绍了 原生 QEMU 在高业务负载虚拟机热迁徙场景里面临的挑战、导致高业务负载虚拟机热迁徙艰难的起因、服气云的优化实践经验分享 等内容。以下是他分享的内容摘要,想要理解更多能够关注“深服气科技”公众号回顾本期直播。
 

一、虚拟机热迁徙技术介绍

热迁徙是指把虚拟机从一个物理主机(源主机)迁徙到另一个物理主机(目标主机),分为:只迁徙虚拟机运行地位的 同存储热迁徙 、同时迁徙虚拟机运行地位和存储地位的 跨存储热迁徙。在热迁徙过程中,虚拟机业务不会中断,最初的停机迁徙阶段,虚构机会有短暂的进展,热迁徙实现后,虚构机会在目标主机上持续运行。

随着越来越多的用户将外围业务部署到云平台,用户对业务的停机工夫要求越来越高 ,甚至提出了零停机的能力要求。尤其是在物理主机保护、云平台热降级、云平台调度集群内虚拟机运行地位等场景中,虚拟机热迁徙操作的 性能影响 迁徙后果 资源耗费 迁徙时长 都会影响云平台的应用体验。

二、挑战和优化实际

挑战 1:算法效率低下

原生 QEMU 热迁徙内存数据应用的压缩算法是 zlib,它单核的压缩性能低,QEMU 压缩线程的 CPU 耗费高。这些会导致:性能无奈满足高负载场景,在带宽受限场景下可能无奈热迁徙实现,会重大耗费物理主机的 CPU 资源,导致物理主机其它业务零碎性能降落。

服气云提出了 QEMU 热迁徙压缩算法替换为 lz4 的优化实际办法,这使得速率晋升 7 倍以上,CPU 耗费升高 80%。

挑战 2:脏数据放大

QEMU 在迁徙磁盘数据时,会通过 BITMAP 来记录磁盘脏数据块,原生 QEMU 的磁盘 BITMAP 对应数据块的粒度大小是 1M,假如某个数据块中有 4K 数据产生批改,BITMAP 也会将整个数据块 (1M 大小) 标记为脏,后续就须要迁徙这 1M 的数据,由此带来了磁盘脏数据放大问题。

针对这个挑战,服气云实现了磁盘热迁徙 BITMAP 数据块粒度动静调整机制,将 BITMAP 数据块粒度做成迁徙前动静可配置,BITMAP 数据块粒度默认值从 1M 改为 64K。


挑战 3:CPU 空耗

原生 QEMU 进行跨存储热迁徙,在增量迭代迁徙阶段,热迁徙流程会遍历磁盘每个数据块,检测其状态是否为脏;在磁盘热迁徙进入到增量迭代的最初阶段,如果磁盘数据块总量比拟多,而残余脏数据块量比拟少时,热迁徙线程的 CPU 大量耗费在洁净数据块的有效遍历。在 Oracle 场景的实测后果,这里会导致 60% 以上的 CPU 额定耗费。

服气云改良了磁盘脏数据块的检索机制,对磁盘脏数据块保护一个多级检索位图;磁盘热迁徙时,对脏数据块的检测形式,由遍历检测改为间接对脏数据块进行多级检索,可能更高效地定位脏数据块地位。最终实现了跨存储热迁徙总耗时降落 20%,热迁徙线程的 CPU 耗费降落 60%。


挑战 4:业务性能受影响工夫较长

进入到增量迭代迁徙阶段后,如果内存脏数据的生成速率大于迁徙速率时,迁徙就永远无奈实现。原生 QEMU 通过 CPU 节流策略来解决此问题,原生 QEMU 热迁徙的 CPU 节流策略较为激进和板滞,在高业务负载场景下,CPU 节流持续时间长,导致业务性能继续受到影响。

服气云实现了一套新的 CPU 节流策略,在热迁徙过程中引入间接节流和阶段式节流两种节流形式,替换 QEMU 默认的节流策略,大幅缩短切换 downtime 工夫,大概在 2s 内。


挑战 5:热点内存的反复有效迁徙

当初的业务零碎在架构设计方面大多都遵循内存局部性原理,内存局部性原理分为:工夫局部性和空间局部性。依据内存局部性原理,虚拟机业务在运行过程中,会存在大量的热点内存,在短时间内被频繁地拜访和批改。虚拟机热迁徙进入到增量迭代迁徙阶段时,热点内存因为频繁批改,在每轮迭代都会变脏而反复迁徙。这会导致网络带宽和 CPU 资源的节约,以及热迁徙工夫变长。

服气云实现了一套热点内存脏数据提早迁徙机制——热点内存脏数据提早迁徙机制,缩小反复内存数据传输,耗时缩短 30%,内存数据量升高 35%。


 

三、优化实际成果总结

同存储热迁徙场景

(1)跑满万兆带宽,QEMU 压缩线程的 CPU 耗费缩小 80%;

(2)热迁徙耗时缩小 30%;

(3)迁徙内存总量缩小 35%;

(4)Oracle 虚拟机业务性能受影响工夫管制在 6s 以内。

 

跨存储热迁徙场景

(1)Oracle 数据库场景(8K 随机写 IO 模型),磁盘脏数据放大率从 93 降落到 8,大幅升高了磁盘脏数据传输量;

(2)QEMU 热迁徙线程的 CPU 开销缩小 60%;

(3)跨存储热迁徙总耗时缩小 20%;

(4)Oracle 虚拟机磁盘迁徙能力晋升 10 倍。

实践证明,深服气超交融承载的 Oracle 业务在迁徙过程中性能仅抖动了 6s,其中业务中断工夫仅 1s,下层业务可取得近乎 0 中断的平滑迁徙体验。

以上就是本次直播的次要内容。对云计算感兴趣的 IT 敌人能够关注“深服气科技”公众号回顾本期直播,理解更多云计算常识。

正文完
 0