存储虚拟化
块级虚拟化:Mutil-Disk 和 Device Mapper
文件级虚拟化:Linux设计中的”一切都是文件”
聚合虚拟化:线性RAID
拆分虚拟化:分区
仿真虚拟化:虚拟磁带库VTL
带内虚拟化:虚拟化位于应用服务器和存储数据通道中间
带外虚拟化:虚拟化位于数据通道之外,仅仅向应用服务器传送一些控制信息,来完成物理设备和逻辑卷之间的映射
硬件虚拟化
全虚拟化
在全虚拟化(full virtualization)中,虚拟机模拟一个足够强大的硬件使客户机操作系统独立运行。这种方案最早在1966年被虚拟机家族的先锋IBM CP-40与CP-67使用。支持完全虚拟化的虚拟机软件包括Parallels Workstation、 Parallels Desktop for Mac、VirtualBox、Virtual Iron、Oracle VM、Microsoft Virtual PC、VMware Workstation、VMware Server(原GSX Server)、QEMU、Adeos、Mac-on-Linux、Win4BSD、Win4Lin Pro、以及Egenera vBlade technology等。
硬件辅助虚拟化
在硬件辅助虚拟化(hardware-assisted virtualization)中,硬件提供结构支持帮助创建虚拟机监视并允许客户机操作系统独立运行。硬件辅助虚拟化在1972年开始运行,它在IBM System/370上运行,使用了第一个虚拟机操作系统VM/370。在2005年与2006年,Intel和AMD为虚拟化提供了额外的硬件支持。支持硬件辅助虚拟化的有 Linux KVM, VMware Workstation, VMware Fusion, Microsoft Virtual PC, Xen, Parallels Desktop for Mac,VirtualBox和Parallels Workstation。
支持完整的虚拟化技术的硬件平台包括:
x86与x86_64:AMD-V (代号Pacifica), Intel VT-x(代号Vanderpool),以及后来的SLAT(Second Level Address Translation,Intel称为EPT)[4]
IOMMU:由AMD和Intel共同开发,Intel称为VT-d。
Power Architecture (IBM/Power.org)
Virtage (Hitachi)
UltraSPARC T1, T2 及 T2+ (Sun)
部分虚拟化
在部分虚拟化(partial virtualization)中(包括地址空间虚拟化),虚拟机模拟数个(但不是全部)底层硬件环境,特别是地址空间。这样的环境支持资源共享和线程独立,但是不允许独立的客户机操作系统。虽然这并不被视为一般意义上的虚拟机,但这在历史上是非常重要的一页。
平行虚拟化
在平行虚拟化(paravirtualization)中,虚拟机不需要模拟硬件,而是提供只能被特制的客户机操作系统(或特制的驱动程序)使用的API。KVM、VMware、Hyper-V都支持平行虚拟化,如KVM的VirtIO。
操作系统层虚拟化
在操作系统层虚拟化(OS-level virtualization)中,独立主机被虚拟化在操作系统层中,这使得多个独立且安全虚拟化的服务器运行在一台计算机上。客户操作系统环境与宿主服务器分享同一个操作系统,例如,相同的系统内核被用来创建客户机环境。程序运行在被视为独立系统的客户机环境中。这种方式由FreeBSD jail首创;类似的例子包括Solaris Containers, OpenVZ, Linux-VServer, AIX Workload Partitions, Parallels Virtuozzo Containers, 以及 iCore Virtual Accounts, LXC。
虚拟机器软件
- 系统虚拟机(也称为全虚拟化虚拟机)可代替物理计算机。它提供了运行整个操作系统所需的功能。虚拟机监视器(hypervisor)共享和管理硬件,从而允许有相互隔离但存在于同一物理机器上的多个环境。现代虚拟机监视器使用虚拟化专用硬件(主要是主机CPU)来进行硬件辅助虚拟化。例如:VirtualBox、VMware Workstation
- 程序虚拟机 被设计用来在与平台无关的环境中执行计算机程序。例如:Java虚拟机(JVM)
- 作业系统层虚拟化 例如:Docker
平台虚拟化软件比较