虚拟化技术(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 管理工具