一、什么是虚拟化技术
将服务、网络、内存、存储等计算机资源予以抽象,打破实体不可分割障碍的技术。
1. 硬件虚拟化
硬件物理平台提供的,提供指令截取和重定向的支持。
- Intel-VT
- AMD-V(对x86处理器系统架构)
2. 软件虚拟化
- 有些不强依赖于硬件支持。如:QEMU
- 有些依赖于硬件支持,如:VMWare、KVM。
分类
类别 | 解释 |
---|---|
完全虚拟化(Full Virtualization) | 虚拟机模拟完整的底层硬件环境和特权指令的执行过程。 |
硬件辅助虚拟化(Hardware-assisted Virtualization) | 通过硬件辅助支持模拟运行环境。 |
部分虚拟化(Partial Virtualization) | 只针对部分硬件资源进行虚拟化。 |
平行虚拟化(Para-Virtualization) | 不需要模拟硬件,而是将部分硬件接口以软件的形式提供给客户机操作系统 |
操作系统层虚拟化(OS-level virtualization) | 操作系统内核虚拟化,可以允许使用者空间软件实例被分割成几个独立的单元 |
常见的虚拟化技术
- Xen,剑桥大学开源虚拟机监视器,采用ICA协议的半虚拟化技术。
- KVM,Linux内核模块,全虚拟化解决方案。
- LXC,即Linux Container,轻量级虚拟化手段。
- OpenVZ,基于Linux平台的操作系统级服务器虚拟化解决方案。
- Hyper-V,微软,可以采用半虚拟化或全虚拟的方式创建虚拟机。
- Oracle VM,Oracle,继续开源Xen。
- VMWare。
- VMWare ESX Server。
二、Docker虚拟化
1. 什么是Docker?
开源的应用容器引擎,开发者可以打包应用及依赖到一个可移植的容器,然后发布到任何安装了Linux发行版的机器上。基于LXC实现,是一个操作系统级别的虚拟化技术。
是一个可直接运行在宿主机操作系统上的容器。使用沙箱机制完全虚拟出一个完整的操作。容器之间不会有任何接口,使得容器与宿主机、容器与容器隔离更彻底。