1 虚拟化定义
虚拟化指的是计算机的物理抽象。换句话说,就是把分配给一台虚拟机的物理资源从它的物理实体上抽象出来。虚拟磁盘、虚拟网卡、虚拟局域网、虚拟交换机、虚拟CPU以及虚拟内存,都是映射到一台物理计算机系统的对应物理资源上的。主机将其上运行的客户虚拟机(guest VM)视为应用程序,并且给它们分配了一部分专属资源或者共享资源。
虚拟化有很多种:平台虚拟化、应用虚拟化、网络虚拟化以及存储虚拟化。一般来说,虚拟化是指平台虚拟化。平台虚拟化就是利用服务器硬件作为主机,运行多个虚拟机并将其视为客户机。每一台虚拟机都是一个安装了某个操作系统的稳定的虚拟硬件环境,并且独立于其他客户机。
2 使用虚拟化的好处
通过使用虚拟化,我们可以在硬件、冷却、电力和IT人力上节省不少资金。除以上特点,还有很多现实的优点。
① 硬件成本最小化
② 提供容灾特性
③ 整合空闲负荷
④ 负荷均衡
⑤ 软件测试
⑥ 集中了服务器管理
⑦ 节能
⑧ 部署新服务器更快速
3 几种虚拟化技术介绍
现阶段流行的几种虚拟化策略,他们的运作原理都是有所不同的。包括他们的界面(控制台)和创建、导入、转换虚拟机的方法以及各自的特征、调优方法和工具软件都各有特点。以下将简单介绍几个虚拟化技术的代表性例子。
3.1 客户机操作系统
客户机操作系统又叫做寄居式虚拟化。它主要是通过在一个现存的操作系统上安装第三方虚拟化软件,并创建多个客户机操作系统来实现的。每一个客户机都使用宿主机提供的共享资源并且在宿主机上运行。客户机一般由一个或几个虚拟磁盘文件和一个虚拟机定义文件组成。虚拟机则由一个宿主应用程序集中管理,且每一台虚拟机都会被当做一个独立的应用程序。
这种虚拟化主要的优点是(虚拟机的)设备和驱动数量是有限的。每台虚拟机(客户机)都有一致的硬件集。最大的缺点是磁盘I/O很糟,磁盘操作速度远远达不到磁盘应有的性能。
3.1.1 VMware Server
VMware Server 是一款免费的产品,并且是针对小型环境、测试环境或个人的介绍性的软件包。因为它对虚拟机的内存有限制,且磁盘性能也很差,所以很少用于大型的环境中。
3.1.2 VirtualBox
VirtualBox 也是免费和跨平台的产品。和VMware Server 一样,适合于小型的网络环境。因为VirtualBox 有可调的显存、RDP连接、远程设备连接和很好的性能,所以它可能是最佳的寄居式虚拟化软件。
3.2仿真
仿真是为特定操作系统模仿特定种类的硬件的能力,且不管底层的主机操作系统是什么。仿真软件能模拟其他平台的完整的计算机系统。硬件仿真虽然在某些场合下非常的慢,但是新的技术,新的仿真软件和驱动加上快速的主机处理器使仿真技术成为了虚拟化的一个人可行方案。而且这种技术尤其适用于驱动程序的编写者和需要为其他硬件平台开发程序的用户。Bochs和QEMU是硬件仿真软件的最佳实例。
3.2.1 Bochs
Bochs是Intel x86 体系结构的32为仿真器,能在Unix、Linux、Window和MacOSX上运行,但是只能支持基于x86 体系结构的操作系统。Bochs可以模拟所有x86处理器和x86_64处理器架构,是很成熟的软件。它是免费的、开源的,而且也支持多处理器,但是现在还不能完全利用到SMP的好处。
3.2.2 QEMU
QEMU也是免费的、开源的的仿真程序。它提供了对x86、x86_64、ARM、Sparc、PowerPC、MIPS以及m68k客户机操作系统的仿真,但是只能运行在有限的几种主机架构(x86、x86_64以及PowerPC)上。
3.2.3 Microsoft Virtual PC 和Virtual Server
Virtual PC是免费的虚拟化软件包。Virtual PC 用仿真技术来提供虚拟机环境。它能让少量虚拟机快速且廉价的运行起来,但是不适合大型环境。
3.3 hypervisor
Hypervisor是虚拟化直接运行在裸机上的实现方法。Hypervisor和寄居式虚拟化很相似,但是却有着显著的区别。Hypervisor是操作系统运行在虚拟化软件上。而寄居式虚拟化则不同,它是利用了操作系统,并且以应用的形式(在操作系统上)运行虚拟化软件。Hypervisor软件安装在裸机上,然后再安装操作系统,而这个操作系统也是一个半虚拟化的虚拟机,称为宿主机操作系统。
3.3.1 Ctrix Xen
Xen是一款开放源代码的虚拟机监视器。它在x86、x86_64、PowerPC和其他CPU架构上都能提供强大、高效和安全的虚拟化特性。而且它能支持广泛的客户操作系统。Xen 3.0 或者更早版本有点难用,但是Xen 4.x 还是很好用的。如果对高端的虚拟化有需求,Xen 4.x是不错的选择。因为用它来部署新的虚拟机比较直观快速。
3.3.2 VMware ESX/VMware ESXi
ESX是VMware公司最重要的企业级虚拟化平台产品,也是虚拟化软件套餐VMware Infrastucture中最重要的组成部分。ESXi是公司2008年推出的免费的虚拟化平台。
ESX 和ESXi 都需要64位(处理器)架构,但是后者对硬件的要求更为特殊。ESX这款产品已经比较成熟,在虚拟化级别上只有Xen 能与之匹敌。
3.3.3 Microsoft Hyper-V
Hyper-V 是一款基于Windows的企业级虚拟化产品。Ctrix Xen和VMware都是基于Linux的。如果对Linux和Unix 命令不熟的话,微软产品是不错的选择。在不断成熟后,Hyper-V 有望挑战Ctrix Xen和VMware。
3.4 内核级虚拟化
内核虚拟化的每台虚拟机都用特有的内核来启动客户虚拟机,无视主机正在运行中的内核。
3.4.1 KVM
KVM运用了虚拟化处理器扩展技术。它支持很多种x86和x86_64架构的客户机操作系统,包括Windows、Linux和FreeBSD。
3.4.2 用户模式Linux
UML(User-ModeLinux,用户模式Linux)使用可执行内核和根文件系统来创建虚拟机。就是说,如果要创建一台虚拟机,要用户空间可执行内核(客户内核)和UML创建的根文件系统这两个组件一起组成一台UML虚拟机。连接到远程主机系统的命令行终端会话就是虚拟机的控制台。
3.5 共享内核
共享内核虚拟化又被称为系统级虚拟化或操作系统虚拟化,充分利用了Unix和Linux的与系统上其他进程共享内核的能力。
变更根系统(chroot)的特性使得这种共享虚拟化能够实现。Chroot又常被称为Chroot监狱(Chroot jail)或者基于容器的虚拟化。它通过改变一个进程的根文件系统使之隔离,进而提供某种安全性。Chroot可以模拟整个系统,使得整个系统都可以被变更根系统,以此来创建一台虚拟机。共享内核虚拟化有以下几个优点:① 增强的安全性和系统隔离;② 原生的性能;③ 虚拟系统的高密度。缺点就是主机内核和客户机的兼容性。
共享内核虚拟化最大的好处是性能而不是它的安全性,虽然安全性也是要考虑的因素。用这种方式的虚拟化,每个独立的系统会得到原生的性能。每个系统不仅可以在原生的系统下运行,还能在一台主机系统上运行超出标准数量的虚拟机。标准数量是指若是以内存作为限定条件,并给主机预留1GB内存而把剩余的内存全部用于虚拟机时,逻辑上在一台主机系统上可以运行的虚拟机数量。
在一台主机系统上Chroot系统的虚拟机数量限制和在独立系统上同时运行多个应用程序的情况非常像。把每个Chroot系统都看做是应用系统而不是虚拟机的话,可以更好的分配资源,并获得更好的性能。
共享内核虚拟化的缺点就是所有虚拟机都必须和正在运行的内核兼容。也就是说,我们不能运行Windows操作系统、Solaris、Mac OS X或者其他不能独自运行当前系统内核的操作系统。一些服务器托管商都是采用这种方式的,这样客户能获得他们自己的虚拟服务器来满足托管主机的需求。
3.5.1 Solars Containers (Zones)
Solars 10操作系统也叫做全局区域(Global Zone)。它带有内建的虚拟化。Solars Zones的每个区域都带有自己的模拟了一个完整的操作系统和文件系统的虚拟跟系统(root)。当创建一个区域时,会直接复制一个完整的文件系统到新的区域目录中去。且每个区域都只看得见自己的进程和文件系统。每个区域都相信自己是完整独立的操作系统,只有全局区域知道虚拟化的存在。Solars区域是一个易用的、提供原生性能的、可扩展的企业级虚拟化解决方案。
3.5.2 OpenVZ
OpenVZ内核针对虚拟化做了优化,。而且,它在为其他虚拟化产品处理虚拟化时很高效。OpenVZ和Solars Zone很相似,只是OpenVZ可以在同一个内核上运行比同的Linux分发版本。在OpenVZ的网站上有不少的分发模板供应。
3.6 几种技术简单对比
Xen或VMware ESX对于企业级虚拟化是比较好的。如果你需要在一台主机系统上虚拟化多个操作系统的话,hpervisor技术是首选。这两个虽然贵,但是绝对物有所值,因为所获的性能是非常好的。
Solars Zones适用于需要持续性、安全性和原生硬件性能的Unix主机系统。内核级虚拟化适用于隔离应用且非常适用于全局区域(主机操作系统)。
对于小型环境、桌面环境或者IT实验环境,Microsoft Virtual PC和VMware Server是不错的选择。它们免费、易用,并能支持多种客户机操作系统。但是对于高负荷的生产环境或者企业级应用,不是很适用。Virtual PC只支持Windows,而VMware Server和Sun x VM支持多平台使用。
4 结束语
本文简单介绍了一些虚拟化技术以及各自的优缺点。真正的在实际应用中,还得根据需要选择最佳的方案。
CIO之家 www.ciozj.com 公众号:imciow