虚拟化技术(virtualization technology,VT)是云计算的基础。简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU、内存、IO、网络 等硬件资源,但逻辑上虚拟机之间是相互隔离的。
术语
物理机一般称为宿主机(Host)
宿主机上面的虚拟机(Virtual Machine,VM) 一般称为客户机(Guest)
Hypervisor 虚拟机管理程序
软件虚拟化 是一种利用软件技术,在现有的 物理机 上实现对物理平台访问的 截获 和 模拟 实现的虚拟化
硬件虚拟化 指硬件支持 截获 和 模拟 虚拟化技术,常见的有 Intel-VT、AMD-VT 支持的 CPU 虚拟化,Intel-EPT 支持的内存虚拟化
全虚拟化(full virtualization) Guest OS 在 Hypervisor 上运行相当于运行于物理机一般,它不知道它在虚拟机还是物理机中运行,不需要修改操作系统代码。如下图左侧部分,Hypervisor 必须陷入(trap)请求,然后模仿真实硬件的行为。
- 典型的有 VMWare、Virtualbox、Virtual PC、KVM-x86 等
半虚拟化(Paravirtualization) 也称为 准虚拟化,通过修改 Guest OS 的代码,使 Guest 以为自己运行在物理环境中。能解决软件虚拟化性能上的部分损失。如 virtio 驱动提高 I/O 设备效率。如下图右侧展示的是半虚拟化,客户机操作系统知道运行于虚拟机之中,并加入了驱动作为前端。

虚拟化技术
- 系统虚拟化
- 存储虚拟化
- 网络虚拟化
- GPU虚拟化
- 硬件支持虚拟化
虚拟化类型
物理机 将自己的硬件资源虚拟化,并提供给 Guest 一般通过 Hypervisor 的程序实现。Hypervisor 是为客户端操作系统提供虚拟机环境的软件,根据实现方式和所处的位置,分为两种:
1型虚拟化
Hypervisor 直接安装在物理机上,多个虚拟机在 Hypervisor 上运行。Hypervisor 实现方式一般是一个特殊定制的 Linux 系统。Xen 和 VMWare 的 ESXi 都属于这个类型。

2型虚拟化
物理机上首先安装常规的操作系统,比如 Redhat、Ubuntu 和 Windows。Hypervisor 作为 OS 上的一个程序模块运行,并对管理虚拟机进行管理。KVM、VirtualBox 和 VMWare Workstation 都属于这个类型。

理论上讲:
1型虚拟化 一般对硬件虚拟化功能进行了特别优化,性能上比2型要高
2型虚拟化 因为基于普通的操作系统,会比较灵活,比如支持虚拟机嵌套(可以在KVM虚拟机中再运行KVM)
其他
- oVirt 是一个适用于企业的、免费的、开源虚拟化解决方案。
- Proxmox UI 管理工具