知识卡片
容器与虚拟机隔离层级的本质区别
内容
虚拟机通过Hypervisor模拟出一整套虚拟硬件,每个虚拟机运行自己独立的操作系统内核,隔离性最强但代价是Hypervisor本身的资源消耗、磁盘I/O性能损耗,以及”一个完整操作系统”对很多轻量应用来说过于沉重。容器则完全不虚拟硬件,所有容器共享宿主机同一个操作系统内核,只是通过内核提供的命名空间(文件系统、进程、网络等)和cgroups资源隔离机制,把每个应用限制在一个逻辑独立的”容器操作系统”视角里,因此容器可以直接读写磁盘、启动速度接近原生进程。发散:这条演进主线(chroot只隔离文件系统→FreeBSD Jails加上用户网络隔离→cgroups加上资源限额→LXC整合命名空间和cgroups)说明容器技术从来不是凭空出现的新发明,而是内核隔离能力逐步完善后,”够用就不用整个操作系统”这个朴素想法水到渠成的产物。
参考来源
《Linux开源存储全栈详解从Ceph到容器存储》第9章《容器存储》