虚拟化技术的演变过程

软件模拟技术

通过软件完全模拟CPU、芯片组、磁盘、网卡等计算机硬件。理论上可以模拟任何硬件,比较低效,一般只用于研究测试场景。

虚拟化层翻译

X86平台指令集划分为四个特权模式:Ring0、Ring1、Ring2、Ring3。

操作系统一般使用Ring0级别,驱动程序使用Ring1和Ring2级别,应用程序使用Ring3级别。X86平台虚拟化方面的难点就是如何将虚拟机越级指令使用进行隔离

VMware公司最早的解决方案:捕获和翻译虚拟机指令。

Xen项目:对虚拟机的操作系统内核进行改造。

Intel硬件解决方案:改造CPU指令

硬件解决方案比较高效,IO通信、网络通信都有硬件解决方案。

容器虚拟化

容器虚拟化的原理:基于CGroups、Namespace等技术将进程隔离,每个进程就像一台单独的虚拟机一样,有自己独立的资源、根目录、进程编号和内存空间等。

目前最热的容器虚拟化技术就是Docker,优势在于可以将一个开发环境进行打包,很方便的在另一个系统上运行。但是磁盘和网络性能还是有很多限制。