首页威尼斯国际官方网站 › 看虚拟化的演进,跨节点巨型虚拟机在VMware的初步实验结果

看虚拟化的演进,跨节点巨型虚拟机在VMware的初步实验结果

最近, OSDI 2018 的best paper Lego操作系统引起了深入的讨论,
传统的OS应该往哪个方向演进?
确实是一个重要的问题,我们经历了宏内核和微内核的讨论,也有Barrelfish、Helios、fos这种基于共享内存的多内核(Multikernel),
Lego也提出了松耦合非对称架构,异构自治的分散内核(SplitKernel),用于管理今天越来越复杂的异构资源。

我们在《CCCF通讯》2019年第1期专题发表的《分布式共享内存与内存计算》介绍了“多虚一”巨型虚拟机GiantVM
架构,,采用分布式QEMU 提供跨节点虚拟机抽象,KVM
为巨型虚拟机下层物理机管理接口,基于RDMA 提供低延迟分布式共享内存。
该虚拟化架构在VMware上运行效果如何呢?

从虚拟化方面来看,
自从Intel/AMD从硬件层面开始支持虚拟化以来,已经在云计算基础设施中发挥了重要作用,
亚马逊和阿里最近都推出了专用硬件虚拟化方案,即Nitro/神龙,把大部分原来QEMU/KVM的工作卸载到专用硬件芯片中,把虚拟化提升到了一个新高度。

我们用VMware安装Ubuntu虚拟机,在虚拟机里面安装分布式QEMU和支持DSM的KVM,虚拟两个节点,每个节点各2个VCPU。由于RDMA硬件没有,我们采用传统的TCP网络链接,然后安装Ubuntu
Guest OS 进行测试。

同时云计算Serverless架构的演进也需要新的轻量化细粒度资源管理机制,为了弥补容器在隔离性方面的不足,gVisor/Firecracker/Katacontainer
等构成的微虚机生态即将蓬勃发展,Firecracker向下可由Nitro支持,向上对接Katacontainer,可以说是整合虚拟机/容器/FaaS方面比较完整的架构了,也是亚马逊重点发展的方向。

sysbench --test=cpu --cpu-max-prime=3000 run

我们可以总结一些趋势,

www.vns1522.com 1

1) 虚拟化:软件-》 硬件: 软件模拟 -》硬件辅助 -》 全硬件:
降低上下文开销,接近原生性能。

可以看出CPU性能相差不大,符合预期。

2) 隔离性:弱隔离 -》强隔离: 容器运行在Process -》 容器运行在虚拟机

sysbench --test=threads --num-threads=500 --thread-yields=100
--thread-locks=4 run

3) 资源粒度: 粗粒度 -》细粒度: VM -》 container -》Microservice
-》FaaS

www.vns1522.com 2

4) 分布式: 单节点 -》跨节点:
单机资源(IO/Cache/中断是性能瓶颈)-》分布式共享

性能相差接近10倍。tcp链接和DSM虚拟化成本都比较大,还需进一步优化。

由此可以看出,资源管理三要素:异构、隔离、弹性,即在异构资源上提供隔离的弹性资源。

sysbench --test=memory --memory-total-size=4G run

回过头来,再看看SSI的概念,单一系统镜像指把多台机器上的资源聚合成统一的接口,使得原本在单台机器上运行的程序可以无缝移植到分布式系统上。
这个也是分布式系统提出的重要目标,可惜一直没有得到完美的实现。那我们是否能够在异构资源上提供隔离的弹性虚拟资源
?从而“欺骗OS, 制造SSI假象”,同时, “OS 配合,提升性能 ”。

www.vns1522.com 3

正如论文 Single system image: A survey, JPDC, 2016 所表示,“It appears
that the future of SSI is bound closely with that of virtualization and
cloud
technologies.”通过虚拟化这一手段,在虚拟机层面支持SSI,是一个研究的重要方向。如果可行,则可纵向/横向灵活扩展,资源按需聚合/分散,现有的硬件+操作系统+应用程序生态可继续演化。由此,我们可以提出
SSA,即Single System Abstraction, 单一系统抽象,是SSI
升级版,可公式化表述为:SSA = SSI + Virtualizaiton.
本质上是在硬件和OS之间构建一层独立的抽象层。

主要是本地访问,相差不大。

www.vns1522.com,抽象是计算机科学的重要方法论,利用新兴的网络技术和分布式共享内存等技术,在虚拟化这层提供跨节点细粒度的SSI抽象,可以使用GPU/FPGA等新型硬件,软件定义/硬件虚拟,OS和应用如何能够感知底层硬件抽象,还面临不少挑战,可能是将来的一个发展趋势,也是我们可以研究的重要方向。

sysbench --num-threads=4 --max-requests=1000 --test=fileio
--file-total-size=1G --file-test-mode=rndrw run

www.vns1522.com 4

还没采用分布式IO,主要在本地,相差也不大。

由此可见,采用适当的架构,高速的RDMA网络,分布式内存模型,和编程模型,虚拟化成本的开销还有很大的下降空间。通过“多虚一”架构,构建异构的虚拟资源池,通过虚拟化实现异构硬件归一化管理,简化编程模型。如何综合利用资源汇聚和分散,也将是今后的一个研究方向,也欢迎一起交流合作。

转载本站文章请注明出处:威尼斯城官方网站 https://www.thomasbui.com/?p=3926

上一篇:

下一篇:

相关文章