虚拟化技术了解

某一天,docker火了!

相信第一个看了docker的人,当然,不是我这种菜鸟,都会很快的了解到docker所利用的技术和理论,其实早在多年之前,就已经被提出。

LXC:

lxc(Linux Containers),是一种基于容器的操作系统层次的虚拟化技术,通过cgroup来控制硬件分配的,如CPU的使用率,内存的最大使用值等,通过namespace来隔离硬件环境。
这个点上推荐下陈皓先生的文章,通过了浅显易通的描述,可以帮读者更好的了解下docler及其运用的技术。

KVM:

KVM(kernel-bases Virtual Machine),是基于Linux的hypervisor解决方案,也是首个被集成到Linux内核的hypervisor解决方案,并且是实现了完整的虚拟化的。新的操作系统会成为宿主操作系统的一个进程,通过/dev/kvm设备映射,拥有了自己的虚拟地址,因此,kvm是用了底层硬件的虚拟化支持来提供完整的虚拟化。

SO:

在虚拟化的性能方面,通过cgroup和namespace等技术的LXC会远超过KVM,但是虚拟化隔离方面,lxc只能说是达到了资源的控制和隔离,而不是真正意义上的硬件隔离,毕竟当你更新了宿主系统上面的一个关键程序的时候,lxc上的容器将很大程度上会收到影响,而kvm拥有完整的操作系统的虚拟化则不会受影响。
一切都是有代价的,取舍适当即可。
这里有一篇文章,博主通过测试数据,展示了LXC,KVM还有另外一种虚拟化技术XEN的性能数据。

目前,除了Docker外,目前国内还有另外一个值得关注的项目hyper,是基于hypervisor与docker的项目。

TODO:

了解下XEN,OVS,CEPH等,写写测试。