戚正伟
从SSI 看虚拟化的演进
2019-3-31 23:58
阅读:2523
标签:SSI, SSA, 虚拟化

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


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


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


我们可以总结一些趋势,

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

2) 隔离性:弱隔离 -》强隔离:  容器运行在Process (共享内核)   -》  容器运行在虚拟机(1:1内核)

3) 资源粒度: 粗粒度 -》细粒度:     VM -》 container   -》Microservice  -》FaaS (函数级)

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


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

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


正如论文 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之间构建一层独立的抽象层。


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

转载本文请联系原作者获取授权,同时请注明本文来自戚正伟科学网博客。

链接地址:https://wap.sciencenet.cn/blog-279072-1170774.html?mobile=1

收藏

分享到:

当前推荐数:0
推荐到博客首页
网友评论0 条评论
确定删除指定的回复吗?
确定删除本博文吗?