半虚拟化技术总结
核心:所谓的linux操作系统由 linux内核以及文件系统共同组成
原理:
- linux内核负责控制硬件设备
- 内核仅仅负责控制,无法与用户交互
- 与用户交互的代码称为文件系统
- 文件系统负责在内核与人之间搭建一个桥梁
centos,debian,ubuntu 之间唯一的区别就是文件系统
会对内核进行一定程度的修改,但是本质上内核的功能不会减少
- 所谓的半虚拟化就是让Linux内核加载非当前主系统的文件系统
半虚拟化技术总结:
虚拟技术 | 技术原理 | 性能 | 文件系统封闭 | 资源控制 | 兼容性 | 可维护性 |
---|---|---|---|---|---|---|
chroot | 加载新文件系统 | 0损失 | 可自由修改虚拟机的文件系统 | 原生不提供资源控制方案 | linux全平台,全兼容 | 宿主机级别 |
lxc/lxd | 在chroot的基础上增加资源控制 | 0损失 | 一定程度上可以自己修改 | 提供 | linux内核提供兼容性 | 宿主机级别 |
docker | 早期基于lxc封装,后期自己实现 | 高io下性能损失严重(甚至不如kvm) | 封闭 | 提供 | 依赖于docker官方 | 依赖于docker官方 |
只有以下两种情况考虑使用docker:
- 不会搭建环境
- 不影响安全