Computer Architecture (Graduates)

Chapter 3: Virtual Machines and
Virtualization of Clusters and
datacenters
虚拟机和集群与数据中心虚拟化
1
3.1 虚拟化的实现层次
虚拟化技术通过在同一个硬件主机上多路复用
虚拟机的方式来共享昂贵的硬件资源,
虚拟化的基本思想是分离软硬件以产生更好的
系统性能
虚拟化实现的层次
引入虚拟化后,不同用户应用程序由自身的操
作系统(即客户操作系统)管理,并且那些客户操
作系统可以独立于主机操作系统同时运行在同一个
硬件上,这通常是通过新添加一个称为虚拟化层的
软件来完成,该虚拟化层称为hypervisor或虚拟机
监视器(Virtual Machine Monitor,VMM)
2
图3-1 虚拟化前后的计算机系统体系结构,其中,VMM代表
虚拟机监视器
3
图3-2 从硬件到应用程序的5个虚拟化抽象层次
4
Low-Level VMM Operations (1)复用
(Courtesy of Mendel Rosenblum, 2006)
5
Low-Level VMM Operations (2)挂起
(Courtesy of Mendel Rosenblum, 2006)
6
Low-Level VMM Operations (3)供应(恢复)
(Courtesy of Mendel Rosenblum, 2006)
7
Low-Level VMM Operations (4)动态迁移
(Courtesy of Mendel Rosenblum, 2006)
8
指令集体系结构级:代码解释和动态二进
制翻译
硬件抽象级:虚拟化一个计算机硬件资源
操作系统级:在单一物理服务器上创建隔
离的容器和操作系统实例
库支持级:库接口的虚拟化
应用程序级:进程级虚拟化、高级语言
(High Level Language,HLL)虚拟机
9
Virtualization at ISA level:
Emulating a given ISA by the ISA of the host machine. For example,
MIPS binary code can run on an x-86-based host machine with the
help of ISA emulation. Typical systems: Bochs, Crusoe, Quemu,
BIRD, Dynamo
Advantage: It can run a large amount of legacy binary codes
written for various processors on any given new hardware host
machines; best application flexibility
Shortcoming & limitation: One source instruction may require tens
or hundreds of native target instructions to perform its function,
which is relatively slow. V-ISA requires adding a processor-specific
software translation layer in the complier.
10
Virtualization at Hardware Abstraction level:
Virtualization is performed right on top of the hardware. It generates
virtual hardware environments for VMs, and manages the underlying
hardware through virtualization. Typical systems: VMware, Virtual PC,
Denali, Xen
Advantage: has higher performance and good application isolation
Shortcoming & limitation: very expensive to implement (complexity)
11
Virtualization at Operating System level:
It is an abstraction layer between traditional OS and user
placations. This virtualization creates isolated containers on a single
physical server and the OS-instance to utilize the hardware and
software in datacenters. Typical systems: Jail / Virtual Environment /
Ensim's VPS / FVM
Advantage: have minimal starup/shutdown cost, low resource
requirement, and high scalability; synchronize VM and host state
changes.
Shortcoming & limitation: all VMs at the operating system level must
have the same kind of guest OS; poor application flexibility and
isolation.
12
Library Support level:
It creates execution environments for running alien
programs on a platform rather than creating VM to run
the entire operating system. It is done by API call
interception and remapping. Typical systems: Wine,
WAB, LxRun , VisualMainWin
Advantage: It has very low implementation effort
Shortcoming & limitation: poor application flexibility
and isolation
13
User-Application level:
It virtualizes an application as a virtual machine. This
layer sits as an application program on top of an
operating system and exports an abstraction of a VM
that can run programs written and compiled to a
particular abstract machine definition. Typical systems:
JVM , NET CLI , Panot
Advantage: has the best application isolation
Shortcoming & limitation: low performance, low
application flexibility and high implementation
complexity.
14
VMM的设计需求和提供商
硬件级虚拟化在真实硬件和传统操作系统之间
插入一层软件,该层软件通常称为虚拟机监视器
(VMM)
对VMM有三个需求。第一,VMM应该为程序提供
与原始硬件机器基本一致的环境;第二,运行在该
环境中的程序的性能损失应较低;第三,系统资源
应处于VMM的完全控制之中。
由VMM完全控制这些资源包括以下方面:(1)
VMM负责为应用程序分配硬件资源;(2) 程序不能
访问任何未分配给它的资源;(3) 在某些情况下,
VMM可以获得对已分配资源的控制权。
16
Major VMM and Hypervisor Providers
操作系统级的虚拟化支持
操作系统级虚拟化在一个操作系统中插入一个
虚拟化层来划分机器的物理资源。它使得在一个操
作系统内核中可以同时运行多个隔离的虚拟机。这
种虚拟机也称为VE(Virtual Execution
Environment)、VPS(Virtual Private System,
虚拟专用系统)或容器。
从用户的视角来看,VE就像真实服务器。VE有
自己的进程、文件系统、用户账号、带有IP地址的
网络接口、路由表、防火墙规则及其他个人设置。
尽管VE可为不同用户分别定制,但它们仍共享
同一个操作系统内核。因此,操作系统级虚拟化也
称为单操作系统镜像虚拟化。
18
Virtualization for Linux and
Windows NT Platforms
20
虚拟化的中间件支持
21
图3.4 vCUDA结构的基本概念
22
3.2 虚拟化的结构/工具与机制
hypervisor与Xen体系结构
图3-5 Xen体系结构用于控制和I/O的特殊零域并用于用户应
用程序的客户域
23
Xen是一个由剑桥大学开发的开源hypervisor程序。
Xen属于微内核hypervisor
提供了一种客户操作系统可以直接访问物理设备的
机制
Xen提供了一个处于硬件和操作系统之间的虚拟环境
Xen系统的核心组件是hypervisor、内核和应用程序
具有控制特权的客户操作系统称为Domain 0,其他
客户操作系统则称为Domain U
Domain 0被首先启动。Domain 0可以直接访问硬件
和管理设备。因此,Domain 0的一个任务是为所有
Domain U分配和映射硬件资源
24
全虚拟化的二进制翻译
根据实现技术的不同,硬件虚拟化可以分为:
全虚拟化和基于主机的虚拟化。
全虚拟化不需要修改主机操作系统。它依赖于
二进制翻译来陷入和虚拟化一些敏感、不可虚拟化
的指令的执行。客户操作系统和它们的应用由非临
界和临界指令构成。
在基于主机的系统虚拟化中,主机操作系统和
客户操作系统同时存在,虚拟化软件层处于两者之
间。 该主机操作系统仍旧负责管理硬件。客户操作
系统安装并运行在虚拟化层之上。特定的应用可运
行在虚拟机中。
25
图3-6 复杂指令的间接执行,即使用VMM二进制翻译客
户操作系统请求,并在同一台主机上直接执行简单指令
26
编译器支持的半虚拟化技术
半虚拟化需要修改客户操作系统。半虚拟化虚
拟机在用户程序中提供了特殊的API,要求真正修
改操作系统。
图3-7 半虚拟化的虚拟机体系结构,其中包括为执行虚拟
化进程而修改客户操作系统内核,将不可虚拟化的指令替
换为对hypervisor或VMM的超级调用
27
图3-8 半虚拟化的客户操作系统,由智能编译器辅
助将不可虚拟化的操作系统指令替换为超级调用
28
图3-9
使用半虚拟化的VMware ESX Server体系结构
29
3.3 CPU、内存和I/O设备的虚拟化
为支持虚拟化,处理器利用硬件辅助虚拟化,
引入一种特殊的运行模式和指令,使得 VMM和客户
操作系统可运行在不同模式中,客户操作系统及其
应用程序的所有敏感指令会陷入到VMM中。
虚拟化的硬件支持
现代操作系统和处理器允许多个进程同时运行。
如果处理器中没有保护机制,那么不同进程的所有
指令都可以直接访问硬件,很容易导致系统崩溃。
因此,所有处理器都至少需要两种模式(用户模式
和管理模式)来确保对临界区硬件的受控访问。运
行在管理模式的指令称为特权指令,其他指令为非
特权指令。
30
图3-10 Intel对处理器、内存和I/O设备虚拟化的硬件支持
31
CPU虚拟化
虚拟机的非特权指令直接在物理主机中运行
关键指令可以分为三类:特权指令、控制敏感
指令和行为敏感指令。特权指令需要在特权模式中
执行,当在特权模式之外执行特权指令时会发生陷
入。控制敏感指令尝试改变使用资源的配置。行为
敏感指令根据资源的配置情况会有不同的行为,包
括在虚拟内存中进行的负载和存储操作。
VMM运行在管理模式时,CPU支持在用户模式运
行虚拟机的特权指令和非特权指令,则该CPU体系结
构是可虚拟化的。
RISC的所有控制敏感指令和行为敏感指令都是
特权指令,因此,RISC的CPU体系结构是天然可虚拟
化的。
32
图3-11 Intel硬件辅助的CPU虚拟化
33
内存虚拟化
客户操作系统和VMM分别维护从虚拟内存到物
理内存的映射和从物理内存到机器内存的映射,
共两级映射。客户操作系统仍旧负责从虚拟地址
到虚拟机的物理内存地址的映射,VMM负责将客户
物理内存映射到实际的机器内存上
图3-12 两级内存映射过程
34
图3-13 使用Intel的EPT的内存虚拟化(EPT也被称为影
子页表)
35
I/O虚拟化
I/O虚拟化包括管理虚拟设备和共享的物理硬件
之间I/O请求的路由选择。
实现I/O虚拟化有三种方式:
全设备模拟: 一个设备的所有功能或总线结构
(如设备枚举、识别、中断和DMA)都可以在软件
中复制。
半虚拟化: 是Xen所采用的方法,是广为熟知的
分离式驱动模型,由前端驱动和后端驱动两部分构
成。前端驱动运行在Domain U中,而后端驱动运行
在Domain 0中,它们通过一块共享内存交互。
直接I/O虚拟化: 让虚拟机直接访问设备硬件。
它能获得近乎本地的性能,并且CPU开销不高。
36
图3-14 用于I/O虚拟化的设备模拟,虚拟化在中间层实现,
将真实I/O设备映射到客户设备驱动使用的虚拟设备
37
多核处理器的虚拟化
主要有两个困难:一是应用程序编程者必须
完全并行地使用所有处理器核,二是软件必须明
确地为处理器核分配任务。
物理处理器核与虚拟处理器核:
图3.16多核虚拟化方法,当实际只有三个核存在时给软件暴
38
Virtual Cores vs. Physical Processor Cores
Physical cores
Virtual cores
The actual physical cores present in
the processor.
There can be more virtual cores
visible to a single OS than there are
physical cores.
More burden on the software to write
applications which can run directly on
the cores.
Design of software becomes easier
as the hardware assists the software
in dynamic resource utilization.
Hardware provides no assistance to
the software and is hence simpler.
Hardware provides assistance to the
software and is hence more complex.
Poor resource management.
Better resource management.
The lowest level of system software
has to be modified.
The lowest level of system software
need not be modified.
39
虚拟层次结构
在一个物理处理器上覆盖一层一致的、缓
冲的层次结构。不像固定的物理层次结构,虚
拟层次体系结构可以通过自动调整空间共享负
载的方式来获得更好的性能和性能隔离性
片上众核多处理器使用一个两级或更多级
缓冲的物理层次结构,它静态确定缓冲的分配
和映射。
一个虚拟层次结构是能够动态适应单一负
载或混合负载的缓冲层次结构
40
图3-17 片上多处理器的服务器合并,通过虚拟机的空间共享将
虚拟机映射到众核上,形成多个虚拟集群,分别执行不同的负载
41
3.4 虚拟集群和资源管理
物理集群与虚拟集群
虚拟集群由多个客户虚拟机构成,这些客户虚
拟机安装在由一个或多个物理集群构成的分布式服
务器上。在逻辑上,处于一个虚拟集群的客户虚拟
机通过一个跨越了多个物理网络的虚拟网络互连在
一起。
42
为虚拟集群提供虚拟机的过程可以动态进行:
虚拟集群节点可以是物理机器或虚拟机器
主机操作系统管理物理机器的资源,虚拟机运
行其上,并且可以运行与主机相异的操作系统。
使用虚拟机的目的是合并同一台物理服务器的
多个功能。
虚拟机可以在多个物理服务器上备份,以提高
分布式并行度、容错性,加快灾难恢复速度。
虚拟集群的节点数可以动态增减,与P2P网络中
覆盖网络的规模变化类似。
物理节点的失效会使得运行在其上的虚拟机也
失效,但是虚拟机的失效不会影响主机系统。
43
图3-19 基于应用程序划分的虚拟集群概念
44
快速部署和有效调度:
系统应具备快速部署的能力。快速部署要求
如下两点:一是在集群内的物理节点上尽快构建
和发布软件栈(包括操作系统、库、应用程序);
二是运行时环境可以从一个用户虚拟集群快速切
换至另一个用户虚拟集群。
虚拟化的另一个优点是在虚拟集群中应用程
序的负载均衡。负载均衡可以通过使用负载指数
和用户登录频率等指标来完成,虚拟集群的自动
伸缩机制可以基于该模型实现。
高性能虚拟存储
存储体系结构设计可以用于减少虚拟集群分
布式文件系统中的复制块
45
在线迁移虚拟机的步骤与性能影响:
在虚拟集群中,虚拟机客户系统与主机系统并
存,并且虚拟机运行在物理主机之上。当一个虚拟
机失效时,其角色可被其他节点上的虚拟机替代,
只要两个虚拟机运行相同的客户操作系统即可。
一个物理节点可以故障转移至另一个主机的虚
拟机上。
46
管理虚拟集群共有四种方式:
第一种方式是基于客户的管理器,其中集群管
理器处于客户系统中。在这种管理方式中,多个
虚拟机形成一个虚拟集群。
第二种方式是基于主机的集群管理器。监督客
户系统且能在另一个物理机器上重启客户系统。
第三种方式是在主机系统和客户系统中使用相
互独立的集群管理器来管理虚拟集群。然而,这
会使基础设施管理变得更为复杂。
第四种方式是在主机系统和客户系统中使用集
成的集群。这表示管理器能区分虚拟资源和物理
资源。
47
虚拟机可以从一台物理机器在线迁移至另一台
物理机器。发生失效时,一个虚拟机可被另一个虚
拟机替代。
虚拟集群可以应用在计算网格、云平台和高性
能计算系统中。虚拟集群化的主要吸引力在于它可
根据用户需求或节点失效后快速提供动态资源。尤
其是,虚拟集群化在云计算中发挥着重要作用。当
虚拟机运行在线服务时,在线虚拟机迁移方案的设
计目标是最小化如下三个指标:微小的停机时间、
最低的网络带宽消耗及合理的总迁移时间。
一台虚拟机可能处于如下四种状态之一:非活
跃状态、活跃状态、中止状态、挂起状态。
在线迁移虚拟机包括如下6个步骤 :
48
49
图3-21将虚拟机从一个失效的Web服务器迁移到另一台服务
器期间的数据传输速率变化情况
50
内存、文件与网络资源的迁移
内存迁移:将虚拟机的内存实例从一个物理节点
迁移至另一个物理节点
文件系统迁移:为每个虚拟机提供一个一致的、
位置无关的、在所有物理主机上都可访问的文件
系统
网络迁移:迁移虚拟机时应维持所有开放的网络
连接,不应依赖原始主机转发或者依赖移动性或
重定向机制的支持。
在线迁移机制主要使用预复制的方法,首先
传输所有的内存页,然后迭代地只传输上次传输
过程中被修改的内存页。
51
图3-22 从零域在线迁移虚拟机到一个基于Xen的目标主机
52
虚拟集群的动态部署
53
图3-23 美国杜克大学的COD项目将一个物理集群划分为多个虚
拟集群
54
图3-24 在杜克大学运行8天COD时集群规模的变化情况
图3-25普度大学的VIOLIN项目在5个虚拟环境共享2个托管集群的
自适应场景。注意,自适应前后都有很多空闲节点(空白方块)
56
3.5 数据中心的自动化与虚拟化
数据中心服务器合并
服务器合并采用减少物理服务器数目的方法,
是改进硬件资源低利用效率的有效途径。在许多服
务器合并技术(如集中合并和物理合并)中,基于
虚拟化的服务器合并是最有效的合并方式。
数据中心需要优化其资源管理,但是这些服务
器合并技术在服务器整机级别进行,很难使资源管
理得到有效优化。
合并增强了硬件利用效率
使资源得到更灵活的配置和调度
总体拥有成本得到降低。
可以改进可用性和业务连续性
57
虚拟存储管理
在系统虚拟化中,虚拟存储包括由VMM和客户
操作系统管理的存储。
存储在该环境中的数据可被分为两类:虚拟机
镜像和应用程序数据。
系统虚拟化最重要的方面是封装和隔离。传统
操作系统和运行其上的应用程序可被封装到虚拟机
之中。在一个虚拟机中仅运行一个操作系统,而该
操作系统中则可运行许多应用程序。系统虚拟化允
许多虚拟机同时运行在一个物理机器上并且虚拟机
之间完全隔离。
58
图3-26 Parallax是一组基于每个主机的存储装置,它们共
享访问一个公共的块设备,并为客户虚拟机提供虚拟磁盘
59
虚拟化数据中心的云操作系统
60
图3-27 构建私有云的Eucalyptus系统,通过以太网和互
联网建立虚拟机链接之上的虚拟网络
61
图3-28 vSphere/4,一个管理虚拟化数据中心中计算、
存储和网络资源的云操作系统
62
虚拟化数据中心的可信管理
VMM的出现改变了计算机体系结构。它在操
作系统和系统硬件之间插入一层软件,可以在一
个物理硬件平台上创建一个或多个虚拟机。虚拟
机具有良好的封装性,运行在虚拟机中的客户操
作系统的状态可以被完全封装起来。被封装的机
器状态可以复制,也可以在网络上共享,或像文
件一样移除,这对虚拟机的安全性提出了挑战。
VMM可提供安全隔离性,虚拟机访问任何硬
件资源时都需要通过VMM的审核,因此VMM是一个
虚拟系统的安全基础。
63
图3-29 使用专用虚拟机进行入侵检测的生命元件
(livewire)体系结构
64
图3-30为独立虚拟集群和虚拟机隔离建立信任区的技术
65
Reading Assignments :
1.
K. Hwang, G. Fox and J. Dongarra, Distributed Systems
and Cloud Computing, Chapter 3, 2011
2.
M. Rosenblum and T. Garfinkel, “Virtual Machine
Monitors: Current Technology and Future Trends”,
IEEE Computer Magazine, May 2005, pp.39-47.
3.
VM Ware, Inc., “Virtualization Overview “,
White paper, http://www.vmware.com , 2006.
4.
Virtual Machines by James Smith and Ravi Nair,
Morgan Kaufmann, an Elesevier imprint, 2005
66