什么是虚拟化
虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
几种虚拟化软件介绍
- RedHat KVM
虚拟化方式:完全虚拟化
架构:寄居架构(linux内核);祼金属架构RHEV-H
特点:祼金属架构RHEV-H或在关键的硬盘和网卡上支持半虚拟化VirtIO,达到最佳性能。
I/O协议栈:KVM重用了整个Linux I/O协议栈,所以KVM的用户就自然就获得了最新的驱动和I/O协议栈的改进。
架构图:
- VmWare ESX
虚拟化方式:完全虚拟化
架构:裸金属架构
I/O协议栈:VMware选择性能,但是把I/O协议栈放到了hypervisor里面。不幸的是,VMware kernel是专有的,那就意味着VMware不得不开发和维护整个协议栈,会导致开发速度会减慢,你的硬件可能要等一段时间才会得到VMware的支持。
架构图:
- Citrix XenServer
虚拟化方式:半虚拟化(linux安装linux);全虚拟化(linux安装windows),硬件辅助虚拟化
架构:裸金属架构
I/O协议栈:Xen选择了可维护这条道路,它将所有的I/O操作放到了Linux guest里面,也就是所谓的domain-0里面。重用Linux来做I/O, Xen的维护者就不用重写整个I/O协议栈了。但不幸的是,这样就牺牲了性能:每一个中断都必需经过Xen的调度,才能切换到domain 0, 并且所有的东西都不得不经过一个附加层的映射。
架构图:
- Microsoft Hyper-V
虚拟化方式:半虚拟化
架构:裸金属架构Hyper-V Server;寄居架构 Windows 2008
特点:父分区(宿主机操作系统)的位置挪到了子分区(虚拟机操作系统)的旁边,宿主机操作系统和虚拟机操作系统是平级的,没有谁依附谁之上的关系。
I/O协议栈:虚拟机看到的所有设备不再都是虚拟出来的,有部分的硬件资源是真实的物理设备。
架构图:
什么是硬件虚拟化
- 虚拟化:从简单入手
虚拟化是一个广义的术语,是一个为了简化管理,优化资源的解决方案。如同现在空旷、通透的写字楼,整个 楼层几乎看不到墙壁,用户可以用同样的成本构建出更加自主适用的办公空间,进而节省成本,发挥空间最大利用率。这种把有限的固定的资源根据不同需求进行重 新规划以达到最大利用率的思路,在IT领域就叫做虚拟化技术。
- 硬件虚拟化:虚拟化技术的革命
CPU的虚拟化技术是一种硬件方案,支持虚拟技术的CPU带有经特别优化过的指令集来控制虚拟过程,通过这些指令集,虚拟机可以很容易提高性能,相比纯软件的虚拟化技术会在很大程度上提高性能。
- 纯软件的虚拟化技术
在纯软件虚拟化解决方案中,虚拟机中的操作系统其实是真是操作系统下的一个应用程序,因此,虚拟操作系统上的应用程序到实际操作系统就要比通常应用程序多经过一个通信层。
虚拟化技术分类
- 平台虚拟化(Platform Virtualization)
针对计算机和操作系统的虚拟化。
- 资源虚拟化(Resource Virtualization)
针对特定的系统资源的虚拟化,比如内存、存储、网络资源等。
- 应用程序虚拟化(Application Virtualization)
包括仿真、模拟、解释技术等。
我们通常所说的虚拟化主要是指平台虚拟化技术,通过使用控制程序(Control Program,也被称 为 Virtual Machine Monitor 或 Hypervisor),隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的 计算环境(称为虚拟机)。虚拟机中运行的操作系统被称为客户机操作系统(Guest OS),运行虚拟机监控器的操作系统被称为主机操作系统 (Host OS),当然某些虚拟机监控器可以脱离操作系统直接运行在硬件之上(如 VMWARE 的 ESX 产品)。运行虚拟机的真实系统我们称之为 主机系统。
虚拟化的未来
可以想象一下,未来的虚拟化发展将会是多元化的,包括服务器、存储、网络等更多的元素,用户将无法分辨哪些是虚,哪些是实。虚拟化将改变现在的传统IT架 构,而且将互联网中的所有资源全部连在一起,形成一个大的计算中心,而我们却不用关心所有这一切,而只需关心提供给自己的服务是否正常。虽然虚拟化技术前 景看好,但是,这一过程还有很长的路要走,因为还没有哪种技术是不存在潜在缺陷甚至陷阱的。但是相信,虚拟化技术将会成为未来的主要发展方向。