目录
- 一、虚拟化技术简介
- 二、服务器虚拟化
- (一)服务器虚拟化的层次
- (二)服务器虚拟化的底层实现
- (三)虚拟机迁移
- (四)隔离技术
- (五)案例分析
一、虚拟化技术简介
虚拟化技术是伴随着计算机的出现而产生和发展起来的,虚拟化意味着对计算机资源的抽象。虚拟化技术已经成为构建云计算环境的一项关键技术。
20世纪60年代,IBM公司推出虚拟化技术。主要用于当时的IBM大型机的服务器虚拟化。虚拟化技术的核心思想是利用软件或固件管理程序构成虚拟化层,把物理资源映射为虚拟资源。在虚拟资源上可以安装和部署多个虚拟机,实现多用户共享物理资源。
传统的数据中心网络不能满足虚拟数据中心网络高速、扁平、虚拟化的要求。传统的数据中心采用的多种技术,以及业务之间的孤立性,使得数据中心网络结构复杂,存在相对独立的三张网,包括数据网、存储网和高性能计算网,以及多个对外I/O接口。 这些对外I/O接口中,数据中心的前端访问接口通常采用以太网进行互连,构成高速的数据网络;数据中心后端的存储则多采用NAS、FC SAN等接口;服务器的并行计算和高性能计算则需要低延迟接口和架构,如infiniband接口。以上这些因素,导致服务器之间存在操作系统和上层软件异构、接口与数据格式的不统一等问题。
随着云计算的发展,传统的数据中心逐渐过渡到虚拟化数据中心,即采用虚拟化技术将原来数据中心的物理资源进行抽象整合。数据中心的虚拟化可以实现资源的动态分配和调度,提高现有资源的利用率和服务可靠性;可以提供自动化的服务开通能力,降低运维成本;具有有效的安全机制和可靠性机制,满足公众客户和企业客户的安全需求;同时也可以方便系统升级、迁移和改造。
数据中心的虚拟化是通过服务器虚拟化、存储虚拟化和网络虚拟化实现的。服务器虚拟化在云计算中是最重要和最关键的,是将一个或多个物理服务器虚拟成多个逻辑上的服务器,集中管理,能跨越物理平台而不受物理平台的限制。存储虚拟化是把分布的异构存储设备统一为一个或几个大的存储池,方便用户的使用和管理。网络虚拟化是在底层物理网络和网络用户之间增加一个抽象层,该抽象层向下对物理网络资源进行分割,向上提供虚拟网络。
二、服务器虚拟化
目前,服务器虚拟化的概念并不统一。实际上,服务器虚拟化技术有两个方向,一种是把一个物理的服务器虚拟成若干个独立的逻辑服务器,比如分区;另一个是把若干分散的物理服务器虚拟为一个大的逻辑服务器,比如网格技术。主要关注第一种, 即服务器虚拟化通过虚拟化层的实现使得多个虚拟机在同一物理机上独立并行运行。每个虚拟机都有自己的一套虚拟硬件,可以在这些硬件中加载操作系统和应用程序。不同的虚拟机加载的操作系统和应用程序可以是不同的。无论实际上采用了什么样的物理硬件,操作系统都将它们视为一组一致、标准化的硬件。
(一)服务器虚拟化的层次
1、寄居虚拟化
- 寄居虚拟化的虚拟化层一般称为虚拟机监控器(VMM)。
- 这类虚拟化架构系统损耗比较大。
- 就操作系统层的虚拟化而言,没有独立的Hypervisor层。
- 如果使用操作系统层虚拟化,所有虚拟服务器必须运行同一操作系统。
2、裸机虚拟化
- 架构中的VMM也可以认为是一个操作系统,一般称为Hypervisor。
- Hypervisor实现从虚拟资源到物理资源的映射。
- Hypervisor实现了不同虚拟机的运行上下文保护与切换,保证了各个客户虚拟系统的有效隔离。
(二)服务器虚拟化的底层实现
1、CPU虚拟化
虚拟CPU的正确运行是要保证虚拟机指令正确运行,现有的实现技术包括模拟执行和监控执行。调度问题是指VMM决定当前哪个虚拟CPU在物理CPU上运行,要保证隔离性、公平性和性能。
2、内存虚拟化
内存虚拟化技术把物理内存统一管理,包装成多个虚拟的物理内存提供给若干虚拟机使用,每个虚拟机拥有各自独立的内存空间。
3、I/O设备虚拟化
I/O设备虚拟化技术把真实的设备统一管理起来,包装成多个虚拟设备给若干个虚拟机使用,响应每个虚拟机的设备访问请求和I/O请求。
(三)虚拟机迁移
虚拟机迁移是将虚拟机实例从源宿主机迁移到目标宿主机,并且在目标宿主机上能够将虚拟机运行状态恢复到其在迁移之前相同的状态,以便能够继续完成应用程序的任务。
1、虚拟机动态迁移
实时迁移(LiveMigration),就是保持虚拟机运行的同时,把它从一个计算机迁移到另一个计算机,并在目的计算机恢复运行的技术。第一,云计算中心的物理服务器负载经常处于动态变化中,当一台物理服务器负载过大时,若此刻不可能提供额外的物理服务器,管理员可以将其上面的虚拟机迁移到其他服务器,达到负载平衡;第二,云计算中心的物理服务器有时候需要定期进行升级维护,当升级维护服务器时,管理员可以将其上面的虚拟机迁移到其他服务器,等升级维护完成之后,再把虚拟机迁移回来。
2、迁移步骤
3、迁移的内容
1)内存的迁移
内存的迁移是虚拟机迁移最困难的部分。理论上,为了实现虚拟机的实时迁移,一个完整的内存迁移的过程可以分为以下三个阶段。
第一阶段,Push阶段。在VM运行的同时,将它的一些内存页面通过网络复制到目的机器上。为了保证内容的一致性,被修改过的页需要重传。
第二阶段,Stop-and-Copy阶段。VM停止工作,把剩下的页面复制到目的计算机上,然后在目的计算机上启动新的VM。
第三阶段,Pull阶段。新的虚拟机运行过程中,如果访问到未被复制的页面,就会出现页错误并从原来的VM处把该页复制过来。
实际上,迁移内存没有必要同时包含上述三个阶段,目前大部分的迁移策略只包含其中的一个或者两个阶段。
2)网络资源的迁移
虚拟机这种系统级别的封装方式意味着迁移时VM的所有网络设备,包括协议状态(如TCP连接状态)以及IP地址都要随之一起迁移。在局域网内,可以通过发送ARP重定向包,将VM的IP地址与目的机器的MAC地址相绑定,之后的所有包就可以发送到目的机器上。
3)存储设备的迁移
迁移存储设备的最大障碍在于需要占用大量时间和网络带宽,通常的解决办法是以共享的方式共享数据和文件系统,而非真正迁移。目前大多数集群使用NAS(Network Attached Storage,网络连接存储)作为存储设备共享数据。NAS实际上是一个带有瘦服务器的存储设备,其作用类似于一个专用的文件服务器。在局域网环境下,NAS已经完全可以实现异构平台之间,如NT、UNIX等的数据级共享。基于以上的考虑,Xen并没有实现存储设备的迁移,实时迁移的对象必须共享文件系统。
(四)隔离技术
虚拟机隔离是指虚拟机之间在没有授权许可的情况下,互相之间不可通信、不可联系的一种技术。
虚拟机隔离机制:网络隔离;构建虚拟机安全文件防护网;基于访问控制的逻辑隔离机制;通过硬件虚拟,让每个虚拟机无法突破虚拟机管理器给出的资源限制;硬件提供的内存保护机制;进程地址空间的保护机制,IP地址隔离。
1、内存隔离
Xen将这层中间地址真正地映射到机器地址上却可以是不连续的,这样保证了所有的物理内存可被任意分配给不同的Guest OS。其关系如图所示。
虚拟机监控器使用分段和分页机制对自身的物理内存进行保护。x86体系结构提供了支持分段机制的虚拟内存,这能够提供另一种形式的特权级分离。每个段包括基址、段限和一些属性位。基址和虚拟地址相加形成线性地址,段限决定了这个段中所能访问的线性空间的长度,属性位则标记了该段是否可读写,可执行,是代码段还是数据段等。
2、网络隔离
网络隔离的目标是确保把有害的攻击隔离,在可信网络之外和保证可信网络内部信息不外泄的前提下,完成网间数据的安全交换。
网络隔离的关键在于系统对通信数据的控制,即通过不可路由的协议来完成网间的数据交换。安全要素包括机密性、完整性、可用性、可控性、抵抗性等,安全机制包括访问控制、身份认证、加密签名等。
(五)案例分析
VMware公司推出了面向云计算的一系列产品和解决方案。
1、VMotion
VMotion是VMware用于在数据中心的服务器之间进行虚拟机迁移的技术。虚拟机迁移过程中主要采用三项技术:
- ① 将虚拟机状态信息压缩存储在共享存储器的文件中
- ② 将虚拟机的动态内存和执行状态通过高速网络在源ESX服务器和目标ESX服务器之间快速传输
- ③ 虚拟化网络以确保在迁移后虚拟机的网络身份和连接能保留
2、VMware Storage VMotion
VMware Storage VMotion用于实时迁移虚拟机磁盘文件,以便满足对虚拟机磁盘文件的升级、维护和备份。