《虚拟化与云计算》阅读笔记 从虚拟化到云计算

《虚拟化与云计算》阅读笔记1--服务器虚拟化2011-04-19 14:55

1.服务器虚拟化

服务器虚拟化将系统虚拟化技术应用于服务器上,将一个服务器虚拟成若干个服务器使用。

在采用服务器虚拟化之前,三种不同的应用分别运行在三个独立的物理服务器上;在采用服务器虚拟化之后,这三种应用运行在三个独立的虚拟服务器上,而这三个虚拟服务器可以被一个物理服务器托管。

简单来说,服务器虚拟化使得在单一物理服务器上可以运行多个虚拟服务器。

服务器虚拟化为虚拟服务器提供了能够支持其运行的硬件资源抽象,包括虚拟BIOS、虚拟处理器、虚拟内存、虚拟设备与I/O,并为虚拟机提供了良好的隔离性和安全性。

服务器虚拟化

2.典型实现

服务器虚拟化通过虚拟化软件向上提供对硬件设备的抽象和对虚拟服务器的管理。

目前,业界在描述这样的软件时通常使用两个专用术语,它们分别如下。

(1)虚拟机监视器(Virtual MachineMonitor,VMM):虚拟机监视器负责对虚拟机提供硬件资源抽象,为客户操作系统提供运行环境。

(2)虚拟化平台(Hypervisor)虚拟化平台负责虚拟机的托管和管理。它直接运行在硬件之上,因此其实现直接受底层体系结构的约束。

服务器虚拟化的实现方式


寄宿虚拟化:虚拟机监视器是运行在宿主操作系统之上的应用程序,利用宿主操作系统的功能来实现硬件资源的抽象和虚拟机的管理。这种模式的虚拟化实现起来较容易,但由于虚拟机对资源的操作需要通过宿主操作系统来完成,因此其性能通常较低。这种模式的典型实现有VMwareWorkstation和Microsoft Virtual PC。

原生虚拟化:在原生虚拟化中,直接运行在硬件之上的不是宿主操作系统,而是虚拟化平台。虚拟机运行在虚拟化平台上,虚拟化平台提供指令集和设备接口,以提供对虚拟机的支持。这种实现方式通常具有较好的性能,但是实现起来更为复杂,典型的实现有CitrixXen、VMware ESX Server和Microsoft Hyper-V。

3.关键特性

(1)多实例。通过服务器虚拟化,在一个物理服务器上可以运行多个虚拟服务器,即可以支持多个客户操作系统。服务器虚拟化将服务器的逻辑整合到虚拟机中,而物理系统的资源,如处理器、内存、硬盘和网络等,是以可控方式分配给虚拟机的。

(2)隔离性。在多实例的服务器虚拟化中,一个虚拟机与其他虚拟机完全隔离。通过隔离机制,即便其中的一个或几个虚拟机崩溃,其他虚拟机也不会受到影响,虚拟机之间也不会泄露数据。如果多个虚拟机内的进程或者应用程序之间想相互访问,只能通过所配置的网络进行通信,就如同采用虚拟化之前的几个独立的物理服务器一样。

(3)封装性。也即硬件无关性,在采用了服务器虚拟化后,一个完整的虚拟机环境对外表现为一个单一的实体(例如一个虚拟机文件、一个逻辑分区),这样的实体非常便于在不同的硬件间备份、移动和复制等。同时,服务器虚拟化将物理机的硬件封装为标准化的虚拟硬件设备,提供给虚拟机内的操作系统和应用程序,保证了虚拟机的兼容性。

(4)高性能。与直接在物理机上运行的系统相比,虚拟机与硬件之间多了一个虚拟化抽象层。虚拟化抽象层通过虚拟机监视器或者虚拟化平台来实现,并会产生一定的开销。这些开销即为服务器虚拟化的性能损耗。服务器虚拟化的高性能是指虚拟机监视器的开销要被控制在可承受的范围之内。

《虚拟化与云计算》阅读笔记2-服务器虚拟化的核心技术2011-04-19 15:03

核心技术

服务器虚拟化实质是对硬件资源的虚拟化:CPU、内存、设备与I/O。此外,为了实现更好的动态资源整合,当前的服务器虚拟化大多支持虚拟机的实时迁移。

1. CPU虚拟化

CPU虚拟化技术把物理CPU抽象成虚拟CPU,任意时刻一个物理CPU只能运行一个虚拟CPU的指令。

每个客户操作系统可以使用一个或多个虚拟CPU。在这些客户操作系统之间,虚拟CPU的运行相互隔离,互不影响。

x86架构的操作系统被设计成直接运行在物理机器上,这些操作系统在设计之初都假设其完整地拥有底层物理机硬件,尤其是CPU。

86体系结构中,处理器有4个运行级别,分别为Ring 0、Ring 1、Ring 2和Ring 3。其中,Ring0级别具有最高权限,可以执行任何指令而没有限制。运行级别从Ring 0到Ring 3依次递减。应用程序一般运行在Ring3级别。操作系统内核态代码运行在Ring0级别,因为它需要直接控制和修改CPU的状态,而类似这样的操作需要运行在Ring0级别的特权指令才能完成。

86体系结构中实现虚拟化,需要在客户操作系统层以下加入虚拟化层,来实现物理资源的共享。可见,这个虚拟化层运行在Ring0级别,而客户操作系统只能运行在Ring 0以上的级别。

x86体系结构下的软件CPU虚拟化

客户操作系统中的特权指令,如中断处理和内存管理指令,如果不运行在Ring0级别将会具有不同的语义,产生不同的效果,或者根本不产生作用。由于这些指令的存在,使虚拟化x86体系结构并不那么轻而易举。问题的关键在于这些在虚拟机里执行的敏感指令不能直接作用于真实硬件之上,而需要被虚拟机监视器接管和模拟。

目前,为了解决x86体系结构下的CPU虚拟化问题,业界提出了全虚拟化(Full-virtualization)和半虚拟化(Para-virtualization)两种不同的软件方案,如图2.5所示。除了通过软件的方式实现CPU虚拟化外,业界还提出了在硬件层添加支持功能的硬件辅助虚拟化(HardwareAssistedVirtualization)方案来处理这些敏感的高级别指令。

全虚拟化采用二进制代码动态翻译技术(Dynamic BinaryTranslation)来解决客户操作系统的特权指令问题,如图2.5(2)所示。所谓二进制代码动态翻译,是指在虚拟机运行时,在敏感指令前插入陷入指令,将执行陷入到虚拟机监视器中。虚拟机监视器会将这些指令动态转换成可完成相同功能的指令序列后再执行。通过这种方式,全虚拟化将在客户操作系统内核态执行的敏感指令转换成可以通过虚拟机监视器执行的具有相同效果的指令序列,而对于非敏感指令则可以直接在物理处理器上运行。形象地说,在全虚拟化中,虚拟机监视器在关键的时候“欺骗”虚拟机,使得客户操作系统还以为自己在真实的物理环境下运行。全虚拟化的优点在于代码的转换工作是动态完成的,无需修改客户操作系统,因而可以支持多种操作系统。然而,全虚拟化中的动态转换需要一定的性能开销。MicrosoftVirtualPC、Microsoft Virtual Server、VMware WorkStation和VMwareESXServer的早期版本都采用全虚拟化技术。

与全虚拟化不同,半虚拟化通过修改客户操作系统来解决虚拟机执行特权指令的问题。在半虚拟化中,被虚拟化平台托管的客户操作系统需要修改其操作系统,将所有敏感指令替换为对底层虚拟化平台的超级调用(Hypercall),如图2.5(3)所示。虚拟化平台也为这些敏感的特权指令提供了调用接口。形象地说,半虚拟化中的客户操作系统被修改后,知道自己处在虚拟化环境中,从而主动配合虚拟机监视器,在需要的时候对虚拟化平台进行调用来完成敏感指令的执行。在半虚拟化中,客户操作系统和虚拟化平台必须兼容,否则虚拟机无法有效地操作宿主物理机,所以半虚拟化对不同版本操作系统的支持有所限制。Citrix的Xen、VMware的ESX Server和Microsoft的Hyper—V的最新版本都采用了半虚拟化技术。

无论是全虚拟化还是半虚拟化,它们都是纯软件的CPU虚拟化,不要求对x86架构下的处理器本身进行任何改变。但是,纯软件的虚拟化解决方案存在很多限制。不论是全虚拟化的二进制翻译技术,还是半虚拟化的超级调用技术,这些中间环节必然会增加系统的复杂性和性能开销。此外,在半虚拟化中,对客户操作系统的支持受到虚拟化平台的能力限制。

由此,硬件辅助虚拟化应运而生。这项技术是一种硬件方案,支持虚拟化技术的CPU加入了新的指令集和处理器运行模式来完成与CPU虚拟化相关的功能。目前,Intel公司和AMD公司分别推出了硬件辅助虚拟化技术IntelVT和AMD-V,并逐步集成到最新推出的微处理器产品中。以IntelVT技术为例,支持硬件辅助虚拟化的处理器增加了一套名为虚拟机扩展(VirtualMachine Extensions,VMX)的指令集,该指令集包括十条左右的新增指令来支持与虚拟化相关的操作。此外,IntelVT为处理器定义了两种运行模式,根模式(root)和非根模式(non-root)。虚拟化平台运行在根模式,客户操作系统运行在非根模式。由于硬件辅助虚拟化支持客户操作系统直接在其上运行,无需进行二进制翻译或超级调用,因此减少了相关的性能开销,简化了虚拟化平台的设计。目前,主流的虚拟化软件厂商也在通过和CPU厂商的合作来提高他们虚拟化产品的性能和兼容性。

2. 内存虚拟化

内存虚拟化技术把物理机的真实物理内存统一管理,包装成多个虚拟的物理内存分别供若干个虚拟机使用,使得每个虚拟机拥有各自独立的内存空间。在服务器虚拟化技术中,因为内存是虚拟机最频繁访问的设备,因此内存虚拟化与CPU虚拟化具有同等重要的地位。

在内存虚拟化中,虚拟机监视器要能够管理物理机上的内存,并按每个虚拟机对内存的需求划分机器内存,同时保持各个虚拟机对内存访问的相互隔离。从本质上讲,物理机的内存是一段连续的地址空间,上层应用对于内存的访问多是随机的,因此虚拟机监视器需要维护物理机里内存地址块和虚拟机内部看到的连续内存块的映射关系,保证虚拟机的内存访问是连续的、一致的。现代操作系统中对于内存管理采用了段式、页式、段页式、多级页表、缓存、虚拟内存等多种复杂的技术,虚拟机监视器必须能够支持这些技术,使它们在虚拟机环境下仍然有效,并保证较高的性能。

在讨论内存虚拟化之前,我们先回顾一下经典的内存管理技术。内存作为一种存储设备是程序运行所必不可少的,因为所有的程序都要通过内存将代码和数据提交到CPU进行处理和执行。如果计算机中运行的应用程序过多,就会耗尽系统中的内存,成为提高计算机性能的瓶颈。之前,人们通常利用扩展内存和优化程序来解决该问题,但是该方法成本很高。因此,虚拟内存技术诞生了。为了虚拟内存,现在所有基于x86架构的CPU都配置了内存管理单元(MemoryManagement Unit,MMU)和页表转换缓冲(TranslationLookasideBuffer,TLB),通过它们来优化虚拟内存的性能。总之,经典的内存管理维护了应用程序所看到的虚拟内存和物理内存的映射关系。

为了在物理服务器上能够运行多个虚拟机,虚拟机监视器必须具备管理虚拟机内存的机制,也就是具有虚拟机内存管理单元。由于新增了一个内存管理层,所以虚拟机内存管理与经典的内存管理有所区别。虚拟机中操作系统看到的“物理”内存不再是真正的物理内存,而是被虚拟机监视器管理的“伪”物理内存。与这个“物理”内存相对应的是新引入的概念——机器内存。机器内存是指物理服务器硬件上真正的内存。在内存虚拟化中存在着逻辑内存、“物理”内存和机器内存三种内存类型,如图2.6所示。而这三种内存的地址空间被称为逻辑地址、“物理”地址和机器地址。

内存虚拟化

在内存虚拟化中,逻辑内存与机器内存之间的映射关系是由内存虚拟化管理单元来负责的。内存虚拟化管理单元的实现主要有两种方法。

第一种是影子页表法,如图2.7(1)所示。客户操作系统维护着自己的页表,该页表中的内存地址是客户操作系统看到的“物理”地址。同时,虚拟机监视器也为每台虚拟机维护着一个对应的页表,只不过这个页表中记录的是真实的机器内存地址。虚拟机监视器中的页表是以客户操作系统维护的页表为蓝本建立起来的,并且会随着客户操作系统页表的更新而更新,就像它的影子一样,所以被称为“影子页表”。VMwareWorkstation、VMwareESX Server和KVM都采用了影子页表技术。

第二种是页表写入法,如图2.7(2)所示。当客户操作系统创建一个新页表时,需要向虚拟机监视器注册该页表。此时,虚拟机监视器将剥夺客户操作系统对页表的写权限,并向该页表写入由虚拟机监视器维护的机器内存地址。当客户操作系统访问内存时,它可以在自己的页表中获得真实的机器内存地址。客户操作系统对页表的每次修改都会陷入虚拟机监视器,由虚拟机监视器来更新页表,保证其页表项记录的始终是真实的机器地址。页表写入法需要修改客户操作系统,Xen是采用该方法的典型代表。

内存虚拟化的两种方法

3. 设备与I/O虚拟化

除了处理器与内存外,服务器中其他需要虚拟化的关键部件还包括设备与I/O。设备与I/O虚拟化技术把物理机的真实设备统一管理,包装成多个虚拟设备给若干个虚拟机使用,响应每个虚拟机的设备访问请求和I/O请求。目前,主流的设备与I/O虚拟化都是通过软件的方式实现的。虚拟化平台作为在共享硬件与虚拟机之间的平台,为设备与I/O的管理提供了便利,也为虚拟机提供了丰富的虚拟设备功能。

以VMware的虚拟化平台为例,虚拟化平台将物理机的设备虚拟化,把这些设备标准化为一系列虚拟设备,为虚拟机提供一个可以使用的虚拟设备集合,如图2.8所示。值得注意的是,经过虚拟化的设备并不一定与物理设备的型号、配置、参数等完全相符,然而这些虚拟设备能够有效地模拟物理设备的动作,将虚拟机的设备操作转译给物理设备,并将物理设备的运行结果返回给虚拟机。这种将虚拟设备统一并标准化的方式带来的另一个好处就是虚拟机并不依赖于底层物理设备的实现。因为对于虚拟机来说,它看到的始终是由虚拟化平台提供的这些标准设备。这样,只要虚拟化平台始终保持一致,虚拟机就可以在不同的物理平台上进行迁移。

设备与I/O虚拟化
在服务器虚拟化中,网络接口是一个特殊的设备,具有重要的作用。虚拟服务器都是通过网络向外界提供服务的。在服务器虚拟化中每一个虚拟机都变成了一个独立的逻辑服务器,它们之间的通信通过网络接口进行。每一个虚拟机都被分配了一个虚拟的网络接口,从虚拟机内部看来就是一块虚拟网卡。服务器虚拟化要求对宿主操作系统的网络接口驱动进行修改。经过修改后,物理机的网络接口不仅要承担原有网卡的功能,还要通过软件虚拟出一个交换机,如图2.9所示。虚拟交换机工作于数据链路层,负责转发从物理机外部网络投递到虚拟机网络接口的数据包,并维护多个虚拟机网络接口之间的连接。当一个虚拟机与同一个物理机上的其他虚拟机通信时,它的数据包会通过自己的虚拟网络接口发出,虚拟交换机收到该数据包后将其转发给目标虚拟机的虚拟网络接口。这个转发过程不需要占用物理带宽,因为有虚拟化平台以软件的方式管理着这个网络。
《虚拟化与云计算》阅读笔记 从虚拟化到云计算
网络接口虚拟化

4. 实时迁移技术

实时迁移(LiveMigration)技术是在虚拟机运行过程中,将整个虚拟机的运行状态完整、快速地从原来所在的宿主机硬件平台迁移到新的宿主机硬件平台上,并且整个迁移过程是平滑的,用户几乎不会察觉到任何差异,如图2.10所示。由于虚拟化抽象了真实的物理资源,因此可以支持原宿主机和目标宿主机硬件平台的异构性。

实时迁移需要虚拟机监视器的协助,即通过源主机和目标主机上虚拟机监视器的相互配合,来完成客户操作系统的内存和其他状态信息的拷贝。实时迁移开始以后,内存页面被不断地从源虚拟机监视器拷贝到目标虚拟机监视器。这个拷贝过程对源虚拟机的运行不会产生影响。最后一部分内存页面被拷贝到目标虚拟机监视器之后,目标虚拟机开始运行,虚拟机监视器切换源虚拟机与目标虚拟机,源虚拟机的运行被终止,实时迁移过程完成。

实时迁移技术示意图
实时迁移技术最初只应用在系统硬件维护方面。众所周知,数据中心的硬件需要定期地进行维护和更新,而虚拟机上的服务需要7×24不间断地运行。如果使用实时迁移技术,便可以在不宕机的情况下,将虚拟机迁移到另外一台物理机上,然后对原来虚拟机所在的物理机进行硬件维护。维护完成以后,虚拟机迁回到原来的物理机上,整个过程对用户是透明的。目前,实时迁移技术更多地被用做资源整合,通过优化的虚拟机动态调度方法,数据中心的资源利用率可以得到进一步提升。

《虚拟化与云计算》阅读笔记3--服务器虚拟化性能分析2011-04-19 15:04

性能分析

服务器虚拟化的性能一直是人们所关注的问题。一方面,采用服务器虚拟化技术以后,虚拟服务器上的应用与直接运行在物理服务器上的应用相比性能是否有很大差异;另一方面,服务器虚拟化的不同实现技术所提供的性能是否有很大差异。

首先,我们从应用对资源的利用情况进行服务器虚拟化的性能分析,大致可以把应用分为三种类型:处理器密集型(CPUIntensive)、内存密集型(Memory Intensive)和输入/输出密集型(I/O Intensive)。

对于处理器密集型应用,它们需要消耗大量处理器资源,使得处理器保持一个较高的利用率,而处理器的调度是由物理服务器的操作系统内核或虚拟化平台的内核管理的。在物理服务器上,操作系统直接对应用的进程进行调度;在虚拟化平台上,操作系统直接对虚拟机的进程进行调度,并间接地影响虚拟机内部应用的进程,引入了调度开销。对于不同的虚拟化平台,实现处理器调度的机制和策略不同,开销的大小也有差异。

对于内存密集型应用,它们需要频繁使用内存空间,而物理内存和虚拟内存的映射和读写操作也是由物理服务器的操作系统内核或虚拟化平台的内核管理的。在物理服务器上,内存管理单元直接负责虚拟内存和物理内存的寻址;而在虚拟化平台下,虚拟机操作系统所管理的是虚拟内存和伪“物理”内存间的映射,虚拟化平台的内存管理单元管理着伪“物理”内存和真正的机器内存之间的映射,增加的这层映射关系造成了内存寻址的开销。各种虚拟化平台所采用的内存寻址机制也有差别,导致了性能的不同。

对于输入/输出密集型应用,它们需要通过网络和外界进行频繁的通信。在物理服务器上,操作系统的网络驱动直接作用于物理网卡上,因此,应用能够直接通过网络驱动和物理网卡与外界进行通信。而虚拟化平台为每个虚拟机创建的是虚拟网卡,这些虚拟网卡分时共享真正的物理网卡,应用在网络通信过程中,数据包会在虚拟网卡到物理网卡之间进行分发和转换,造成了一定的开销。

VMware公司曾经公布过一份服务器虚拟化(全虚拟化)的性能报告,它评估了上述三类应用分别在物理服务器、VMware ESXv3.01GA和Xenv3.03-0上运行的性能。在这份报告公布后不久,Xen公司也发布了一份类似的报告,不过它评估的是应用在物理服务器、XenEnterprise v3.2(公共测试版)和VMware ESX v3.0.1GA上的性能。这两份报告验证了虚拟服务器与物理间的性能差异并不明显,两款不同的虚拟化软件则是各有千秋。

为了测试处理器密集型应用在物理服务器和虚拟化平台上的性能,这两份报告都选取了标准测试工具SPECcpu2000Integer。从测试结果来看,处理器密集型应用运行在物理服务器(Native)和虚拟化平台(VMwareESX, Xen/XenEnterprise)上的性能的差异很小(低于5%),就虚拟化平台而言,VMware ESX的表现略优于Xen/XenEnterprise。为了测试内存密集型应用在物理服务器和虚拟化平台上的性能,这两份报告都选取了标准测试工具Passmark。从测试结果来看,内存密集型应用运行在物理服务器(Native)和虚拟化平台(VMwareESX, Xen/Xen Enterprise)上的性能差异也很小(低于5%),就虚拟化平台而言,VMware ESXv3.0.1优于Xenv3.03—0,而经过改进的Xen Enterprise v3.2优于VMware ESXv3.0.1。为了测试输入/输出密集型应用在物理服务器和虚拟化平台上的性能,这两份报告都选取了标准测试工具Netperf。从测试结果来看,输入/输出密集型应用运行在物理服务器、VMwareESX v3.0.1和Xen Enerprise v3.2的性能较为接近。

除了对不同类型应用的评估,我们也可以从服务质量的维度来评估服务器虚拟化的性能,衡量Web服务的两个重要指标是吞吐量(Throughput)和响应时间(ResponseTime)。相同条件下,吞吐量越大,说明服务同时处理请求的能力越强、响应时间越短,也就是说,服务处理单个事务的速度越快。

衡量标准的处理器密集型应用、内存密集型应用和输入/输出密集型应用的性能对实际应用具有很好的参考价值。但在现实场景中运行的往往是具有各种业务逻辑的应用,例如典型的J2EE应用,它不同层次上的功能部件对于资源的需求是不一样的。因此,衡量一个具体类型的商务应用的综合性能往往对企业构建虚拟化环境具有更大的指导意义。IBM和VMware公司曾联合评估过企业级J2EE应用服务器WebSphereApplication Server(WAS)v7在VMware ESXv3.5虚拟环境下的性能,它所采用的标准测试工具是模拟股票交易系统DayTrader v1.2。对于运行在VMware ESXv3.5上的WAS独立应用(WASStandalone),随着分配给它的虚拟CPU数量的增加,其吞吐量也相应增加,相对于直接运行在物理服务器上,它的吞吐量有10%以内的下降。但是,如果多台虚拟机组成的WAS集群运行在同一个配有单个多核处理器的虚拟化平台上,情况则有所不同:在默认配置下,随着分配给每个虚拟机的虚拟CPU数量的增加,吞吐量也相应增加,当分配的虚拟CPU等于和多于4个时,吞吐量甚至超过了直接运行在物理服务器上所对应的吞吐量。这说明ESX所采用的调度策略考虑了CPU多核之间的亲和性(Affinity),避免了虚拟机进程在各个核之间频繁迁移而造成损耗,而物理服务器上的普通操作系统进程调度策略并没有考虑到这一点。

除了横向比较x86架构下的服务器虚拟化性能,比较大型机虚拟化平台(z/VM)和x86虚拟化平台的性能也具有现实意义。这样的测试在分配了相似的物理资源的条件下不断地增加运行在z/VM和x86上的虚拟机数量,通过标准测试工具来测试吞吐量、响应时间和CPU利用率。响应时间的测试结果显示,当虚拟机数量超过20时,x86虚拟化平台上虚拟机的响应时间会迅速增加,直至达到其容纳虚拟机的极限(约50个);而z/VM则表现出良好的性能,即使在虚拟机数量达到100个时,响应时间也只是微量增长。在吞吐量的测试中,随着虚拟机数量的增加,x86虚拟化平台的吞吐量也随之增加,当虚拟机数量在25~50个时,吞吐量基本维持在每秒50个事务;而z/VM随着虚拟机数量增加,吞吐量呈对数型增长,最大能达到每秒150个事务的处理能力。这两者的差异是由大型机和x86硬件体系结构不同造成的,大型机在设计之初就考虑到了虚拟化和并行处理等因素,从而充分利用大型机上的资源,而x86只是面向普通的个人用户,一开始并没有考虑支持虚拟化,之后只能以补丁式的方式实现虚拟化,因此所表现出来的性能和大型机是无法比拟的。

总之,通过这些服务器虚拟化的性能测试报告,可以得出以下结论:第一,服务器虚拟化会引入一定的系统开销,应用的性能比直接运行在物理服务器上有所下降,但是随着该技术的日益成熟,以及硬件辅助虚拟化和多核等技术的不断成熟,这个开销已经在逐渐缩小,性能下降的幅度变得可以接受;第二,服务器虚拟化的各种实现技术之间存在一些不同点,但是同等系统架构(如x86)的虚拟化平台的实现方法正在逐步趋同,不同品牌虚拟化平台的性能差异已经很小;第三,大型机的服务器虚拟化技术相比x86的服务器虚拟化技术具有明显的优势,具有更好的服务器整合能力,并使得应用拥有更快的响应时间和更大的吞吐量;第四,对于需要运行在虚拟化环境的企业应用,都应针对其应用的特点进行实际测试调优后才可以上线,从而更好地满足用户对于服务质量的需求。

《虚拟化与云计算》阅读笔记4--其他虚拟化2011-04-19 15:07

1 网络虚拟化

网络虚拟化通常包括虚拟局域网和虚拟专用网。虚拟局域网可以将一个物理局域网划分成多个虚拟局域网,甚至将多个物理局域网里的节点划分到一个虚拟的局域网中,使得虚拟局域网中的通信类似于物理局域网的方式,并对用户透明。虚拟专用网对网络连接进行了抽象,允许远程用户访问组织内部的网络,就像物理上连接到该网络一样。虚拟专用网帮助管理员保护IT环境,防止来自Internet或Intranet中不相干网段的威胁,同时使用户能够快速、安全地访问应用程序和数据。目前虚拟专用网在大量的办公环境中都有使用,成为移动办公的一个重要支撑技术。

最近,各厂商又为网络虚拟化技术增添了新的内容。对于网络设备提供商来说,网络虚拟化是对网络设备的虚拟化,即对传统的路由器、交换机等设备进行增强,使其可以支持大量的可扩展的应用,同一网络设备可以运行多个虚拟的网络设备,如防火墙、VoIP、移动业务等。

目前网络虚拟化还处于初级阶段,有大量的基础问题需要解决,比如更复杂的网络通信,识别物理与虚拟网络设备等。

2 存储虚拟化

随着信息业务的不断发展,网络存储系统已经成为企业的核心平台,大量高价值数据积淀下来,围绕这些数据的应用对平台的要求也越来越高,不仅是在存储容量上,还包括数据访问性能、数据传输性能、数据管理能力、存储扩展能力等多个方面。可以说,存储网络平台的综合性能的优劣,将直接影响到整个系统的正常运行。正因为这个原因,虚拟化技术又一子领域——存储虚拟化技术应运而生。

RAID(Redundant Array of IndependentDisk)技术是存储虚拟化技术的雏形。它通过将多块物理磁盘以阵列的方式组合起来,为上层提供一个统一的存储空间。对操作系统及上层的用户来说,他们并不知道服务器中有多少块磁盘,只能看到一块大的“虚拟”的磁盘,即一个逻辑存储单元。在RAID技术之后出现的是NAS(NetworkAttached Storage)和SAN(Storage AreaNetwork)。NAS将文件存储与本地计算机系统解耦合,把文件存储集中在连接到网络上的NAS存储单元,如NAS文件服务器。其他网络上的异构设备都可以通过标准的网络文件访问协议,如UNIX系统下的NFS(NetworkFile System)和Window系统下的SMB(ServerMessageBlock),来对其上的文件按照权限限制进行访问和更新。与NAS不同,虽然同样是将存储从本地系统上分离,集中在局域网上供用户共享与使用,SAN一般是由磁盘阵列连接光纤通道组成,服务器和客户机通过SCSI协议进行高速数据通信,SAN用户感觉这些存储资源和直接连接在本地系统上设备是一样的。在SAN中,存储的共享是在磁盘区块的级别上,而在NAS中是在文件级别上。

目前,不限于RAID、NAS和SAN,存储虚拟化被赋予了更多的含义。存储虚拟化可以使逻辑存储单元在广域网范围内整合,并且可以不需要停机就从一个磁盘阵列移动到另一个磁盘阵列上。此外,存储虚拟化还可以根据用户的实际使用情况来分配存储资源。例如,操作系统磁盘管理器给用户分配了300GB空间,但用户当前使用量只有2GB,而且在一段时间内保持稳定,则实际被分配的空间可能只有10GB,小于提供给用户的标称容量。而当用户实际使用量增加时,再适当分配新的存储空间。这样有利于提升资源利用率。

3 桌面虚拟化

桌面虚拟化将用户的桌面环境与其使用的终端设备解耦合。服务器上存放的是每个用户的完整桌面环境。用户可以使用不同的具有足够处理和显示功能的终端设备,如个人电脑或智能手机等,通过网络访问该桌面环境,如图2.11所示。桌面虚拟化的最大好处就是能够使用软件从集中位置来配置PC及其他客户端设备。系统维护部门可以在数据中心,而不是在每个用户的桌面管理众多的企业客户机,这就减少了现场支持工作,并且加强了对应用软件和补丁管理的控制。

桌面虚拟化

桌面虚拟化将众多终端的资源集合到后台数据中心,以便管理者对企业数百上千个终端进行统一认证、统一管理和更为灵活地调配资源。终端用户在实际使用中也不会改变任何使用习惯,通过提供特殊身份认证的智能授权装置,登录任意终端即可获取自身相关数据,继续原有业务,这意味着灵活性也将大大提高。

不论是桌面虚拟化还是服务器虚拟化,安全是一个不可忽视的问题。在企业内部信息安全中,最危险的元素就是桌面设备,很多企业甚至为此专门推出了桌面终端安全管理软件,以防终端的隐患影响局域网内部其他设备的安全运行和后台重要数据被窃取。而通过桌面虚拟化,所有数据、认证都能做到策略一致、统一管理,有效地提高了企业的信息安全级别。进一步说,通过实施桌面虚拟化,用户可将原有的终端数据资源,甚至操作系统都转移到后台数据中心的服务器中,而前台终端则转化为以显示为主、计算为辅的轻量级客户端。

桌面虚拟化可以协助企业进一步简化轻量级客户端架构。与现有的传统分布式PC桌面系统部署相比,采用桌面虚拟化的轻量级客户端架构部署服务可为企业减少硬件与软件的采购开销,并进一步降低企业的内部管理成本与风险。随着硬件的快速更新换代、应用软件的增加和分布、工作环境的分散,管理和维护终端设备的工作变得越来越困难。桌面虚拟化可以为企业降低电费、管理、PC购买、运行和维护等成本。

桌面虚拟化的另一个好处是,由于用户的桌面环境被保存成一个个虚拟机,通过对虚拟机进行快照、备份,就可以对用户的桌面环境进行快照、备份。当用户的桌面环境被攻击,或者出现重大操作错误时,用户可以恢复保存的备 份,这样大大降低了用户和系统管理员的维护负担。

4 应用虚拟化

应用程序在很大程度上依赖于操作系统为其提供的功能,比如内存分配、设备驱动、服务进程、动态链接库等。这些应用程序之间也存在着复杂的依存关系。它们通常共享许多不同的程序部件,比如动态链接库。如果一个程序的正确运行需要一个特定版本的动态链接库,而另一个程序需要这个动态链接库的另一个版本,那么在同一个系统上同时安装这两个应用程序,就会造成动态链接库的冲突,其中一个程序会覆盖另一个程序所需要的动态链接库,造成另一个程序的不可用。因此,系统或其他应用程序的改变(如执行升级补丁等)都有可能导致应用之间的不兼容。当一个企业要为其组织中的桌面系统安装新应用时,总是要进行严格而烦琐的测试,来保证新应用与系统中的已有应用不产生冲突。这个过程需要耗费大量的人力、物力和财力。因为这个原因,虚拟化技术的又一子领域——应用虚拟化技术应运而生,如图2.12所示。

应用虚拟化

有了应用虚拟化,应用可以运行在任何共享的计算资源上。应用虚拟化为应用程序提供了一个虚拟的运行环境。在这个环境中,不仅拥有应用程序的可执行文件,还包括它所需要的运行时环境。应用虚拟化为企业内部的IT管理提供了便利。在应用虚拟化以前,如果管理员要对一个应用程序进行更新,他必须处理每一台机器可能出现的不同类型的不兼容情况。采用应用虚拟化技术后,管理员只需要更新虚拟环境中的应用程序副本,并将其发布出去;使用者也与传统的应用程序安装方式不同,程序并不是完全安装在本地机器的硬盘上,而是从一个中央服务器上下载下来,运行在本地的应用虚拟化环境中。当用户关闭应用程序后,已经下载下来的部分可以被完全删除,就像它从来没有在本地机器里运行过一样。

应用虚拟化的应用也可以以流的方式发布到客户端。采用这种方式,仅当用户需要时按需地将程序的部分或者全部内容以流的方式传送到客户端。这种用流方式传送应用程序的方式与用流方式传送多媒体文件的方式有相似之处,要求一定的网络带宽和质量来保证应用在客户端的可用性与易用性。

从本质上说,应用虚拟化是把应用对底层的系统和硬件的依赖抽象出来,从而解除应用与操作系统和硬件的耦合关系。应用程序运行在本地的应用虚拟化环境中,这个环境为应用程序屏蔽了底层可能与其他应用产生冲突的内容,如动态链接库等。这简化了应用程序的部署或升级,因为程序运行在本地的虚拟环境中,不会与本地安装的其他程序产生冲突,同时带来应用程序升级的便利。

《虚拟化与云计算》阅读笔记5--云架构--基础设施层2011-04-19 17:34

基础设施层的功能

1.资源抽象:对硬件资源进行虚拟化。

虚拟化的过程一方面需要屏蔽掉硬件产品上的差异,另一方面需要对每一种硬件资源提供统一的管理逻辑和接口。

2.资源监控:资源监控是负载管理的前提。

基础设施层首先需要根据资源的抽象模型建立一个资源监控模型,用来描述资源监控的内容及其属性。、

Amazon公司的CloudWatch是一个提供给用户用来监控Emazon EC2实例并负责负载均衡的web服务。

该服务定义了一组监控模型,使得用户可以基于模型使用监控工具对EC2实例进行实时监测,并在此基础上进行负载均衡决策。

同时,资源监控还具有不同的力度和抽象层次。

一个典型的场景是对某个具体的解决方案整体进行资源监控。

一个解决方案往往由多个虚拟资源组成,整体监控结果是对解决方案各部分监控结果的整合。

通过对结果的分析,用户可以更直接的监控到资源的使用情况及其对性能的影响,从而采取必要的操作对解决方案进行调整。

3.负载管理:在大规模集群环境中,任何时刻所有节点的负载都不是均衡的。

如果结点的资源利用率合理,即使它们的负载在一定程度上不均匀也不会导致严重的问题,可是,当节点太多时,会造成一系列的问题。

4.数据管理:数据的完整性,可靠性和可管理性。

5.资源部署:通过自动化部署流程将资源交付给上层应用的过程,就是使基础设施服务变得可用的过程。

在应用运行过程中,往往会进行多次资源部署,从而满足上层服务对基础设施层中资源的需求,也就是运行过程中的动态部署。

动态部署有多种应用场景,

(1)实现基础设施层的动态可伸缩性。

也就是说,云的应用可以在极短的时间内根据具体用户需求和服务状况的变化而调整。

当用户服务的工作负载过高时,用户可以非常容易地将自己的服务实例从数个扩展到数千个,并自动获得所需要的资源。

通常,这种伸缩性操作不但要在极短的时间内完成,还要保证操作复杂度不会随增规模的增加而增大。

这种部署:虚拟机的部署和配置过程

(2)故障恢复和硬件维护

在云计算这样由成千上万服务器组成的大规模分布式系统中,硬件出现故障在所难免,在硬件维护时也需要将应用暂时移走,基础设施层需要能够复制该故障服务器的数据和运行环境并通过动态资源部署在另外一个节点上建立起相同的环境,从而保证服务从故障中快速恢复。

这种部署:涉及了从操作系统到上层应用整个软件堆栈的自动化部署和配置。

6.安全管理:保证基础设施资源被合法地访问和使用。

7.计费管理:云计算倡导按量计费的计费模式。

通过监控上层的使用情况,计算出在某个时间段内应用缩小行的存储,网络,内存等资源,并根据计算结果向用户收费。

对于一个需要传输海量数据的任务,通过网络还不如通过快递的速度更节省时间和费用。

基础设施层的服务流程

分为三个阶段来完成:规划阶段,部署阶段,运行阶段

1.规划阶段

在基础设施层的物理环境已经准备就绪的状态下,要完成两个功能

(1)要实现的基本功能就是对资源进行虚拟化的抽象表示。

在硬件资源的虚拟化采用的是虚拟化软件,将物理服务器改造成为虚拟化平台,从而整合了计算资源。

在此基础上,虚拟化集成器通过虚拟化平台提供的接口,获得各种资源的信息,对该平台的虚拟机进行操作。

本例中:为使用户能够访问这些虚拟资源,基础设施层允许用户从远程获取资源,用户需要下载一个用户端程序,该程序包含了对基础设施层的访问逻辑,以及保证通信安全的证书和密钥。用户通过这个程序获取现有资源列表,选择其所需要的虚拟机类型,以及进行部署和运行等操作。

(2)虚拟化集成管理器的数据管理包括:对业务数据的管理,对虚拟镜像文件的管理。

对业务数据,采用传统的数据管理方法。

对于镜像文件,由于其是二进制数据,虽然大小在10~20GB,但是镜像文件中包含了虚拟技术局的空间并不多。应该一般采用压缩的方式存储镜像文件或者通过增量备份的方法减少镜像文件的冗余度。

虚拟镜像文件包含虚拟机配置,操作系统类型及其上软件堆栈等信息。

一个可配置镜像文件模板可以被不同的用户重复使用,基础设施层提供给用户获取已有镜像的服务。

如果用户有特殊的需求,现有的镜像文件无法满足其功能需要,基础设施层提供镜像上传服务,允许用户将兼容的镜像进行上载部署。

2.部署阶段

资源部署主要是指虚拟机或者虚拟解决方案的部署,再部署过程中为虚拟机分配资源,并且激活虚拟机内部的软件和服务。

每个虚拟机都有一个配置文件用来描述虚拟机的资源配置。

通过虚拟化平台的管理接口,虚拟机以及其网络可以被有效的部署,并处于运行状态。

本例中:虚拟机内部的代理agent根据OVF文件对虚拟机内部软件的配置描述,激活这些软件。

例如虚拟机内部安装了一个应用服务器,使用OVF文件描述这个应用服务器实例的配置。当这个虚拟机被部署了以后,虚拟机内部的代理接收到虚拟化集成管理器的激活指令,根据OVF描述,启动和配置这个实例,使它进入运行状态。

3.运行阶段

在每个虚拟机内部安装一个代理,这个代理负责与虚拟化集成管理器通信,从而实现对虚拟机内部的软件管理。

虚拟化集成管理器以两种方式对每个虚拟机进行管理:

(1)黑盒式管理:这种管理主要是针对虚拟机整体进行的管理,与虚拟机内部运行什么软件无关,比如虚拟机的内存调整等,这种方式是通过虚拟化集成器与虚拟服务器的直接交互完成。

(2)白盒式管理:对虚拟机内部软件栈进行管理,比如中渐渐的监控与配置等。

这种方式的管理是通过虚拟化集成管理器与虚拟机内部的代理之间的通信来完成。

资源监控是通过虚拟化集成管理器的黑白盒管理共同完成的:

(1)黑盒式管理中,虚拟化集成管理器通过与虚拟服务器的通信,获得每个虚拟机运行期间的资源监控信息。

通过对单个虚拟机资源监控信息的进一步分析整合,虚拟化集成管理器还可以计算出整个虚拟解决方案的资源监控信息。

(2)白盒式管理中,虚拟化集成管理器需要管理的是虚拟机内部的软件栈。

代理负责接收虚拟化集成管理器的状态监控指令,根据该指令监控信息并获取虚拟机内部软件的运行状况监控信息,然后将这些监控信息发给虚拟化集成管理器。

值得注意的是,这种白盒管理方式的监控需要被监控的产品支持代理的监控接口标准,从而使代理能够独立于任何产品。

负载管理是基于资源监控功能来实现的,并且同样依赖与虚拟化集成管理器的黑白盒管理机制。

(1)黑盒管理方式下,虚拟化集成管理根据收集到的监控信息,通过资源调整和资源整合的方式进行负载管理。

当虚拟机所在的物理服务器上还有可用资源时,可以通过调用虚拟服务器的接口为虚拟机调整存储,内存等各种资源;

当虚拟机所在的物理服务器上的可用资源不足时,可以通过虚拟机的实时迁移来进行资源整合,从而平衡不同服务器之间的负载。

(2)白盒管理方式下,虚拟化集成管理器分析代理发出的监控信息,并将最后的动作指令发给代理,代理执行这些指令并将结果返回给虚拟化集成管理器。

由此可见,代理在白盒管理中承担了虚拟化集成器与虚拟机内部软件监控管理的桥梁。

安全管理贯穿于整个运行阶段

(1)首先要保护的是虚拟化平台的管理域。

(2)虚拟化集成管理器和代理的安全管理。

对他们的访问需要通过安全认证,并且服务的消息中需要包含安全认证信息,从而对所有的访问进行有效的跟踪和记录。

资源监控和负载管理是为用户提供账户计费,运行状态监控服务的基础

(1)精确计费。

(2)基础设施层实现了负载管理的自动化。

(3)运行状态监控服务向用户呈现系统的实时系统和历史信息,通过日志信息和统计图表了解,进行必要的手动优化。

  

爱华网本文地址 » http://www.aihuau.com/a/25101014/228251.html

更多阅读

《最后一头战象》读书笔记 最后一头战象读书小报

《最后一头战象》读书笔记 在我们学完《最后一头战象》这篇课文后,我找来沈石溪作家的同名小说《最后一头战象》,进行了阅读,感觉很有意思。这本书分三大部分,第一部分写的是象,第二部分写的是猪,在这部分里,讲了三个故事,分别是《野猪跳板

《速度与激情3》简介 速度与激情5简介

电影介绍:《速度与激情3》本片将日本山道上“飘移超车”出神入化的震撼绝技作为了表现的重点。台湾裔导演林诣彬大胆启用全新阵容,“嘻哈小天王”宝娃所饰的主人公是一名在美国惹麻烦、为避免身陷囹圄而不得不躲到日本的热血少年,在当

声明:《《虚拟化与云计算》阅读笔记 从虚拟化到云计算》为网友落尽梨花分享!如侵犯到您的合法权益请联系我们删除