云计算技术原理系统虚拟化_第1页
云计算技术原理系统虚拟化_第2页
云计算技术原理系统虚拟化_第3页
云计算技术原理系统虚拟化_第4页
云计算技术原理系统虚拟化_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、云计算技术原理 Cloud Computing: Principles and Technologies 第二讲 系统虚拟化 技术原理 WHY?系统虚拟化提出的是什么? WHAT?系统虚拟化的本质是什么? HOW?系统虚拟化实现的几种方式? 内容提要 3.1 云计算和虚拟化 3.2 虚拟化技术发展简史 3.3 系统虚拟化技术 3.4 虚拟化技术应用 网络计算尝试 4 Grid P2P Pervasive Cluster Cloud Ubiquitous 分布、动态、异构 高效、灵活、可靠、 可伸缩 云计算简化实现机制 云计算的特点云计算的特点 超大规模 虚拟化 高可靠性 通用性 高可扩展性 按

2、需服务 极其廉价 Multi-tenant 7 资源极大丰富和利用率低的矛盾 8 根据美国国家标准局 (NIST)的调查结果, 全球数据中心中包含的 1180万台服务器其CPU 平均利用率只有15% 据IDC统计,截止2008 年全球PC出货量已经连 续6年逐年增加,2008 年全年全球PC出货量比 2007年增长了10.5% 我的切入点是: 这个问题为什么会发生? 为什么在资源利用率严重不足的情况下, 企业对计算机的需求却逐年递增? 对这样数据的通常解读: 要解决这个问题,需要加强资源共享 为什么? 谨慎的说,一定有很多原因起综合作用 但只要一个原因,就可以解释为什么出现这个现象 9 为什么

3、旧服务器计算能力 没有完全利用,新应用必 须购买新服务器 因为当前操作系统的机制, 不能为当前应用的运行行 提供行之有效的隔离环境, 影响了资源共享 举例:为什么现有系统隔离性不够 文件系统隔离 软件运行不仅需要可执行程序,也需要数据文件、DLL等;这些依赖文件在磁盘的位置、内容、版本等, 可能与其它软件造成冲突 网络隔离 网络化软件需要占用操作系统的网络资源,包括网卡、协议栈、IP地址、端口等等,这些依赖资源可 能与其他软件发生冲突 管理域隔离 应用的运行和维护往往需要高安全权限;而传统操作系统管理权限过于简单:管理员、普通用户;难 以对管理员的管理范围进行限制,难以对应用使用的资源进行访问

4、控制 10 Application Operating System Hardware Software User User interface bound to execution Hardware limited in physical location OS bound to specific hardware Application bound to specific OS Application Operating System Hardware Software User SaaS Software as a Service HaaS Hardware as a Service 可

5、伸缩性要求/终端适配开发成本 低投入 低成本 快速响应 13 成千上万的像papaya一样的快速成长中的移动互联网应用企业, 如何应对快速增长的业务需求对运营支撑资源伸缩性带来的挑战? 内容提要 3.1 云计算和虚拟化 3.2 虚拟化技术发展简史 3.3 系统虚拟化技术 3.4 虚拟化技术应用 OS的史 前阶段 批处理分时现代OS 网络化 OS/分 布式OS OS的历史沿革 1952年 IBM 701,“国防计算器”,月租金15000美元; 无OS,每个软件的程序员都要从头开始编写程序。 昂贵的资源(处理机、存储器)如何提高利用效率? 降低作业间的闲置间隔! 代码如何重用? OS的史 前阶段

6、批处理分时现代OS 网络化 OS/分 布式OS OS的历史沿革 1950-60 批处理:Mainframe基本功能,排队论、统筹学 单道批处理:内存中同时仅由1个作业 多道批处理:内存中同时可以有多个作业 作业执行过程中,需要进行IO, 这时CPU是闲置的,浪费严重 操作系统的发展 Batch Processing 批处理系统 在没有人工参与的情况下,顺序执行一系列的程序 出现时期:1950s-1960s 特点: 无需人工参与,节约人员排队时间 程序和数据保存在卡片上,自动化作业初始化过程 同一时刻只有一个软件(作业Job)执行 软件运行时,可以以独占的方式使用全部硬件资源 不支持多用户、多程

7、序同时运行 OS的史 前阶段 批处理分时现代OS 网络化 OS/分 布式OS OS的历史沿革 1964年7月 IBM 360,向前兼容,保护用户投资 CTSS(MIT,1961),Multics(MIT, AT this will permeate every architecture that we build. All will have massively multicore implementations.” Intel Developer Forum, Spring 2004 Pat Gelsinger Chief Technology Officer, Senior Vice Pr

8、esident Intel Corporation 多核的发展面临瓶颈, 除了散热问题外,更大的制约来自于应用需求 按照摩尔定律发展,CPU的能 量密度将超过太阳表面!? 一方面,网络聚合的资源越来越丰富 另一方面,单个处理器性能难以按照摩尔定律的要求继续每18个月翻一番 散热问题:目前Intel处理器核心的能量密度已经接近火箭喷射器 Intel认为:只有多核化才能继续提升处理器能力 结论1:未来单一处理器的性能提升非常有限 结论2:单机系统也面临网络化 朝着片上集群、片上网络、ccNUMA方向发展 来源Intel Pat Gelsinger在2004年Intel Developer Foru

9、m的报告 计算资源的发展 即使是单机操作系统,也必须考虑网络化资 源管理的需求 案例分析:PC平台处理器的发展/OS的发展 8086/286 386 (1986) 不仅仅是16到32的升级,增加:页式内存管理、指令分级、保护模式、TSS寄存器; PC平台上实现分时系统必备功能 486, Pentium I/II/II/IV 协处理器FPU、指令流水线、MMX、超线程、64bit 速度性能提升,对操作系统透明;非特权指令,查漏补缺 2004 IDF是一个重要的转折点 (多核、虚拟化) Intel VT(Vanderpool): VMEnter, VMExit, VMCS寄存器 PC操作系统 DO

10、S, Win31, Win95, Win98/ME NT1.0, NT3.51, NT4.0, Win2K, WinXP (2001) 硬件 Hardware 虚拟机监控器 VMM VM OS VM OS VM OS 硬件虚拟化是处理器自386以来最重要的变革 预示着操作系统的随之变化的必然性 操作系统的变化是一个漫长的过程(15年) 我们现在有挑战,但也是机遇 1996199820002002200420062008 1997年 l Connectix公司发型Virtual PC软件 l 在Mac机器上虚拟x86平台和Windows l首次采用Dynamic Recompiling技术 20

11、00年 l 开源项目User-mode Linux创建 l修改Linux操作系统运行在用户态 l首次采用Paravirtualization技术 1998年 l VMWare公司成立,发布第一版 l在x86架构上虚拟x86机器 l首次采用Virtualization技术 x86虚拟化技术发展 1998199620002002200420062008 2001年6月 l Connectix发布Virtual PC for Windows l Virtual PC成为VMWare强劲对手 2003年 l 剑桥大学开源虚拟机项目Xen 1.0发布 l 继续深化Paravirtualization技术

12、 l首次提出在OS内核实现虚拟机抽象层 l即Hypervisor技术 l 2003年3月 微软收购Connectix公司 l2003年12月 EMC收购VMWare公司 l2003年12月 微软发布Virtual PC 2004 x86虚拟化技术发展 MUST READ: SOSP 03 Xen and the Art of Virtualization 1998199620002002200420062008 2003年9月 l Intel公布新的研究: Vanderpool技术 l 首次提出在CPU中内置对虚拟机的支持 l 该技术最大的受益者:剑桥大学Xen 2004年 l7月 微软发布V

13、irtual Server 2005 R2 l9月 AMD也提出Pacifica技术回应Intel l9月 User-mode Linux正式纳入2.6.9内核 l12月 Xen 2.0正式发布 2005年 l3月 Novell SUSE Linux 9.2 正式包含Xen l3月 Novell将Netware移植到Xen l6月 Fedora Core 4中正式包含Xen x86虚拟化技术发展 1998199620002002200420062008 2005年4月 l Intel正式发布Virtualization Tech技术规范 2005年5月 lAMD正式发布Pacifica技术规范

14、 2005年12月 lXen 3.0发布、正式支持Intel VT技术 2006年2月 lVMWare Workspace/GSX Server免费 2006年2007年 l Intel、AMD支持VT的芯片全面上市 l微软Virtual Server 2005 R2 SP1发布,支持VT技术 l微软下一代操作系统Vista发布,内置Hypervisor x86虚拟化技术发展 虚拟化名人堂 Eric Traut 发明VirtualPC,Dynamic Recompiling Standford学士 Microsoft Distinguish Engineer 39 Mendel Rosenbl

15、um VMWare co-founder,首席科学家 Standford教授 SimOS 常见虚拟机(Hypervisor)项目 Bochs KVM VirtualBox Hyper-V Server 2008 R2 Windows Virtual PC VMware ESX Server Xen z/VM z LPARs 40/wiki/Comparison_of_platform_virtual_machines 内容提要 3.1 云计算和虚拟化 3.2 虚拟化技术发展简史 3.3 系统虚拟化技术 3.4 虚拟化技术应用 为什么“基于虚拟机”?

16、Run Windows 7 in VM under Mac OS X Butler Lampson (1992) All problems in Computer Science can be solved by another level of indirection 虚拟化分类 编程语言层虚拟机(Java) API层虚拟机(Cygwin, VNC) 操作系统层虚拟机(Linux VServer, UML) 硬件层虚拟机(XEN,KVM,VMWare,Qemu) 虚拟机的特点 44 45 系统虚拟化技术是 虚拟化是在“硬件”和“软件”之间的一种抽象 主要的优势:封装、隔离、灵活、便于迁移 有

17、效提高系统可控可管能力 增强系统可信保障能力 核心:虚拟机监控器(VMM) 由于硬件提供的虚拟化支持,虚拟化后的性能开销可控 追求的目标:轻载、高效 Popek and Goldberg virtualization requirements 虚拟机监视器(Virtual Machine Monitor,VMM)是一个软件,用于提供 虚拟机的抽象(Abstraction)。 等价性 一个运行于VMM 下的程序,其行为应与直接运行于等价物理机上的同程序 的行为完全一致。 资源控制 VMM对虚拟资源进行完全控制。 效率性 机器指令中经常使用的那一部分应在没有VMM干预下执行。 46http:/en

18、./wiki/Popek_and_Goldberg_virtualization_requirements Gerald J. Popek and Robert P. Goldberg (1974). Formal Requirements for Virtualizable Third Generation Architectures. Communications of the ACM 17 (7): 412 421. Virtualization requirements 定理1:对于任何传统的第三代计算机,只要其敏感指令是优先级指令的一个子集,就可以为其建立V

19、MM。 理解:欲构造一个VMM,其充分条件是所有可能影响VMM正常工作的指令(即敏感指令)能够自陷并将 控制权移交给VMM。这就保证了资源控制;非特权指令则必须(可以)被本地(物理机)执行也就是 更有效率地执行。等价性也得到满足。 47 硬件层虚拟机 半虚拟化技术(Xen ) 需要修改客户机操作系统 Hypercall机制 完全虚拟化技术 (KVM ) 硬件辅助(hardware-assist)虚 拟化 Intel VT, AMD SVM Xen hvm, KVM Add ring -1 动态指令转换虚拟化 扫描指令流 识别敏感指令 跳转到等价的模拟指令 Intel VT技术(KVM采用) X

20、en半虚拟化技术 虚拟什么? 49 计算I/O存储 未虚拟化(Native) Ring 0运行特权指令;Ring 3运行非特权指令 虚拟化 半虚拟化Xen:将Guest kernel移到ring 1 硬件完全虚拟化:Kvm Hypervisor运行在ring -1 3 0 本地(未虚拟化) 3 1 0 The Guest is moved to ring 1 半虚拟化 Applications Guest kernel (dom0 and dom U) Hypervisor 3 0 硬件完全虚拟化 The Hypervisor is moved to ring -1, guest still

21、run in ring0 CPU虚拟化 Memory Virtualization For VM 物理地址起始位置都是0,且是连续的 It has full control over memory For VMM(machine) It sees hardware address, but there is only one “address 0” Must virtualizes hardware memory to “fool” VMs Must protect itself from VM Responsible for allocating and managing memory VM

22、 addressing GVA-GPA-HPA Key Issues Maintain GPAHPA mapping Intercept guest access to GPA, and translate it VM1VM2 Hardware Physical Address Virtual Address to Physical Address 非虚拟环境下的地址转换 Shadow Page Table Virtual MMU for guest VM Guest page table will be loaded to vMMU Shadow page table will be loa

23、ded pMMU, used by CPU Sync SPT and GPT Guest Page Tables are dynamically changed by guest VM VMM should maintain consistency between SPT and GPT How to intercept access to GPT How to sync SPT and GPT TLB Update Write CR3: (1) identical value (2)not identical Invlpg: page table entry modified Guest c

24、hange paging mode Mov CR0 TLB Flush CR3 and invlpg are privileged instructions Can be intercepted by VMM Guest 直接修改Guest Page Table? I/O Virtualization Emulation (1)Guest writes to register 0 x789 of emulated dev (2) Trap to VMM: guest want to send a packet (3) Device model sends packet to HDD (4) H

25、ost device driver write register 0 x789 Virtual Split Driver (1)Guest send a packet (2)Host transfer the packet to HDD (3) HDD write to register of real dev Direct I/O or Pass-through (1)Guest write register 0 x789 directly Virtual Device Device Model logic module in VMM to emulate device and handle

26、 dev request and response Can be different from real device. For example, VM-scsi disk, host-ide disk Software Interface A PCI Device: (1)config;(2)PIO; (3)MMIO; (4) DMA; (5) Interrupt Interface Interception and emulation Hardware-enabled DMA Remapping VT-d CPUCPU DRAM South Bridge System Bus PCI Ex

27、press PCI, LPC, Legacy devices, Integrated Devices North Bridge VT-d PCIe* Root Ports 请参考“Intel Virtualization Technology for Directed I/O Architecture Specification” 几种Intel的IO虚拟化技术 57 Intel 直接 I/O虚拟化技术(VT-d) Intel虚拟设备队列 (VMDq) SR-IOV Xen虚拟环境由以下几部分组成: Xen Hypervisor 硬件启动时首先加载 Domain 0 虚拟机管理与设备访问 Do

28、main User Paravirtual guest HVM guest (需要硬件虚拟化支持) Hypervisor - VMM Domain 0 Domain Management and Control Domain U Paravirtual Guest Domain U Paravirtual Guest Domain U Paravirtual Guest Domain U HVM Guest Domain U HVM Guest Domain U HVM Guest XEN Overview Executing Privileged instructions from Xen

29、VM Guest kernels dont run at ring 0 theyre not allowed to execute privileged instructions, a mechanism is needed to execute them in the right ring ApplicationApplication Kernel Kernel Hypervisor Ring 0 Ring 1 Ring 2 Ring 3 NativeParavirtualize d System Call Hypercall Direct System Call (Xen specific

30、) The Hypervisor has the interrupts table NativeNative Device Device DriversDrivers Control Control Panel Panel (xm/xen(xm/xen d)d) Front end Virtual Front end Virtual DriversDrivers Linux Linux xen64xen64 Device Device ModelsModels Guest BIOSGuest BIOS Unmodified OSUnmodified OS Domain NDomain N Li

31、nux xen64Linux xen64 Callback / HypercallCallback / Hypercall VMExitVMExit Virtual Platform 0D0D BackendBackend Virtual driverVirtual driver Native Native Device Device DriversDrivers Domain 0Domain 0 Event channelEvent channel 0P0P 1/3P1/3P 3P3P I/O: PIT, APIC, PIC, IOAPICI/O: PIT, APIC, PIC, IOAPI

32、CProcessorProcessorMemoryMemory Control InterfaceControl InterfaceHypercalls Hypercalls Event Channel Event Channel SchedulerScheduler Guest BIOSGuest BIOS Unmodified OSUnmodified OS VMExitVMExit Virtual Platform 3D3D Guest VM (HVM)Guest VM (HVM) (32-bit mode)(32-bit mode) Guest VM (HVM)Guest VM (HV

33、M) (64-bit mode)(64-bit mode) XEN 架构 KVM虚拟环境由以下几部分组成: Kvm内核模块 执行硬件虚拟化相关操作 虚拟机执行监控 Kvm用户程序(大部分代码来自Qemu) 虚拟机管理接口(启动、停止、休眠等) 外设模拟:模拟guest虚拟机的I/O操作等 Guest虚拟机 运行在客户模式下 KVM Overview Hardware Linux Kernel kvm Other user applications Guest OS Qemu User Application Linux Process KVM KVM架构 KVM基本架构KVM运行态转换 KVM

34、运行态切换 KVM基础结构 系统实现方式不同 Kvm 进入虚拟化模式时,kernel成为VMM Linux功能强大,无需重复发明轮子 Guest虚拟机为Linux进程 Xen Hypervisor位于最底层,运行和调度虚拟机 需要修改Domain 0的操作系统 Code size大,维护成本高 内核升级和移植困难 基于Hypercall机制, I/O性能较高 技术路线 “殊途同归” 小结:KVM vs XEN Hardware Xen Domain0 Event channel Hypercall Para Domain HVM Domain backend frontend Hardware

35、 Linux Kernel kvm Other user applications Guest OS Qemu User Application Linux Process KVMXEN Hybrid Virtualization 硬件虚拟化 +半虚拟化 伴随硬件虚拟化 技术诞生(2006) 支持操作系统 不加修改运行 出于性能考虑 引入virtio机制 半虚拟化的 杰出代表 (2003) 大量修改内核 不支持windows 加入HVM模式 支持完全虚拟化 Xen 优势: 工业界应用广泛,稳定性高、管理功能丰富、优异的性能表现 劣势: 对内核改动过大,难以融入主流linux, 维护升级困难 K

36、VM 优势: Linux和Redhat重点支持,随内核升级而升级 劣势: 不够稳定且功能尚不完善 开源云计算平台 (如OpenNebula, Eucalyptus等) 通常Xen和KVM都支持 工业界及开源社区 代表性论文引用率 Xen and the art of virtualization (SOSP 03) 2501次 kvm: the Linux virtual machine monitor (ols 2007) 93次 硬件虚拟化 Intel virtualization technology (2005) 210次 AMD Secure Virtual Machine Arch

37、itecture (2005) 172次 学术论文中各种VMM的使用情况 VEE(虚拟化旗舰会议):约50%的研究者基于xen开展自己的 研究 趋势 研究者更倾向于Xen: “雪球效应” 硬件虚拟化技术成为近年来的研究热点 硬件支持:具有天然的性能优越性 通用性:不依赖于VMM的具体实现 学术界 VEE 2007-2010VEE 2007-2010论文统计论文统计 内容提要 3.1 云计算和虚拟化 3.2 虚拟化技术发展简史 3.3 系统虚拟化技术 3.4 虚拟化技术应用 67 虚拟化带来的影响 可提供一种新的软件封装和分发模式(Virtual Appliance) 现有的封装方式是“OS-O

38、riented”,软件需要安装、配置 VA可将这部分工作放在“软件出厂前”,实现软件的uPnP 可提供一种新的资源分配单位(HaaS) 按需(按时、定量)分配资源集合(CPU、内存、外存、网络) 用虚拟化/虚拟机的方式,便于实现分配/回收和计量 可提供一种新的运行时容器 VMM可以承载运行时的管理功能(把Node Server做到OS之下) 利用虚拟机的在线迁移技术,支持负载迁移模式 Virtualization Usage Models Legacy SW Support Training/QA Testing Manageability Server Consolidation Failo

39、ver infrastructure Flexible Datacenter Manageability Virtualization has a broad range of usages Migration Consolidation Consolidation Consolidation Isolation Migration Embedding IsolationMigration Embedding IsolationMigration CLIENTSERVER 新应用场景1透明应用访问 用户仅关心软件执行效果 不关心 如何安装、部署、维护软件 软件代码在哪执行 软件代码依赖何种操作

40、系统 新应用场景1透明应用访问(续) 软件仓库 新应用场景2软件容错执行 用户希望能够有 一个独立的分布式计算环境 可以快速、灵活地部署配置软件 可以方便地记录、恢复整个环境状态 可以灵活调整环境参数(高可伸缩特性) 应用举例 分布式软件测试 软件教学实验 可伸缩Web Hosting 新应用场景3独有计算环境 V V V V V V 研究热点 Load Balance vs Load Concentration 在线迁移 容错 73 VM Migration 无需停机 不影响上层应用 需要共享磁盘 对带宽要求较高 数据中心 DataCenter 基于在线迁移的数据中心管理 为了提高资源利用率

41、,基于虚拟机的数据中心资源管理需要应对以下两种情况: 虚拟机迁移是其中的关键 Ap p VM Ap p VM 负载均衡 平衡负载以提高应用响应速度 Ap p VM Ap p VM 负载汇聚 将低负载任务汇聚以节约能耗 故障恢复 虚拟机快照是执行状态 的持久化表示 包括内存、处理器、虚 拟设备等信息 虚拟机失效后通过快照, 能够恢复虚拟机的运行 通过增量方式实现快照 同步,能提高快照创建 频率,降低故障恢复代 价,实现非预期故障的 快速恢复 原宿主机和备份宿主机 之间具有较强耦合关系, 只能实现一对一的备份 记录虚拟CPU的指令流 和非确定性事件的插入 时间,能完整地重现虚 拟机运行生命周期中的 任意时刻 既能重现执行过程,支 持故障诊断、入侵检测; 也可以保存运行状态, 并在虚拟机发生故障时 进行恢复 Take Aways 系统虚拟化的动机 隔离、共享、提高资源利用率 系统虚拟化的原理与分类 半虚拟化、全虚拟化 X86系统虚拟化的关键技术 CPU、内存、IO 系统虚拟化应用与关键技术 Virtual App, Live Migration, Load Concentration 77 参考书目 系统虚拟化原理与实现 Intel、复旦大学著 清华大学出版社 78 Xen虚拟化技术 石磊,邹德清,金海

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论