关于DVM的一些猜想

  • Post author:
  • Post category:IT
  • Post comments:0评论

声明:

本博客欢迎转发,但请保留原作者信息!

博客地址:http://www.51gocloud.com

新浪微博:寻觅神迹

内容系本人学习、研究和总结,如有雷同,实属荣幸!

上周的Opencloud大会,引众思源的王旭介绍了他们对多租户下Docker安全隔离的一些探索。

Docker所依赖的各种namespace技术,最早在2001年已经合入kernel版本,发展至今也不过区区几种namespace。

内核中大量资源,尚未提供namespace隔离。因此,期待容器有一天像VM一样的隔离性能,短期内看是不现实的。

那么在多租户下,如何提高容器的安全隔离能力?

目前有诸多探索,比如依赖selinux/Apparmor类似的技术。

作为初创公司,技术上有所保留可以理解。但是王旭的思路也很有借鉴价值。从不多的介绍中,比如虚拟机一样的隔离性,可以使用容器镜像,快速启动的能力,基于qemu-kvm实现。

我们大致可以推测,技术与NoVM类似。只是NoVM用go重新写了qemu部分,底层使用KVM模块,同时支持容器镜像。

王旭的方案,大致是基于qemu-kvm实现,跳过设备自检过程加载内核(内核也许做了裁剪,可以很小),从而提高虚拟机启动速度。同时使用类似9p-virtio的技术,是虚拟机启动后直接挂载容器镜像,从而支持docker容器镜像。

这种方法,让虚拟机变得更像容器。我们知道,目前docker的价值主要来自两个方面:容器的轻量,镜像的打包分层。

以上的方法,使虚拟机继承了docker容器镜像的优点,未来虚拟机和容器都可以使用docker镜像。从而统一虚拟机和容器的镜像技术,并使两者可以平滑迁移转换。

同时这种方法回避了容器的一个缺点,即容器和host必须使用相同内核。

备注: 以上纯属猜想,可能出入很大。

PS:也许改天可以做个demo试试,并验证下性能咋样:)

发表回复