1、云计算原理与实践Principles and Practice of Cloud ComputingOutline 4.1 虚拟化的定义 4.2 服务器虚拟化 4.3 商用虚拟机技术 4.4 新型硬件虚拟化 4.5 实践:Xen虚拟化技术 4.6 实践:KVM虚拟化技术 4.7 轻量级虚拟化 4.8 实践:Docker容器Data ScienceStatisticsMachine LearningDomain expertiseMathematicsData engineering4.1 虚拟化的定义在计算机科学领域中,虚拟化代表着对计算资源的抽象,而不仅仅局限于虚拟机的概念。虚拟化技术分类:
2、1服务器虚拟化 2网络虚拟化 3桌面虚拟化 4软件定义的存储1服务器虚拟化大多数服务器的容量利用率不足15%,这不仅导致了服务器数量剧增,还增加了部署复杂性。实现服务器虚拟化后,多个操作系统可以作为虚拟机在单台物理服务器上运行,并且每个操作系统都可以访问底层服务器的计算资源,从而解决了效率低下问题。将服务器集群聚合为一项整合资源,可以提高整体效率并降低成本。服务器虚拟化还可以加快工作负载部署速度、提高应用性能并改善可用性。2网络虚拟化网络虚拟化以软件的形式完整再现了物理网络,应用在虚拟网络上的运行与在物理网络上的运行完全相同。网络虚拟化向已连接的工作负载提供逻辑网络连接设备和服务(逻辑端口、交
3、换机、路由器、防火墙、负载均衡器、VPN等)。虚拟网络不仅可以提供与物理网络相同的功能特性和保证,而且具备虚拟化所具有的运维优势和硬件独立性。3桌面虚拟化通过以代管服务的形式部署桌面,可以使使用者更加快速地对不断变化的需求做出响应。外包员工、海外员工以及使用平板电脑的移动工作人员交付虚拟化桌面和应用,从而降低成本并改进服务。4软件定义的存储海量数据和实时应用使存储需求达到新的高度。存储虚拟化对服务器内部的磁盘和闪存进行抽象,将它们组合到高性能存储池,并以软件形式交付。软件定义的存储(Software Defined Storage,SDS)是一种全新的存储方法,可从根本上提高运维模式的效率。4
4、.2 服务器虚拟化4.2.1 x86架构对虚拟化的限制4.2.2 全虚拟化4.2.3 半虚拟化4.2.4 硬件辅助虚拟化图4.1 虚拟化前后的计算机体系结构4.2 服务器虚拟化图4.2 虚拟化软件层所处的位置4.2 服务器虚拟化4.2.1 x86架构对虚拟化的限制图4.3 x86架构下指令执行方式通过虚拟机监控器(VMM)可实现客户操作系统对硬件的访问,根据其原理不同分为以下3种技术:全虚拟化;半虚拟化;硬件辅助虚拟化4.2.2 全虚拟化图4.4 使用VMM二进制翻译客户操作系统的请求二进制翻译技术简称BT,是一种直接翻译可执行二进制程序的技术,能够把一种处理器上的二进制程序翻译到另一种处理器
5、上执行。虚拟化软件层将操作系统的指令翻译并将结果缓存供之后使用,而用户级指令无须修改就可以运行,具有和物理机一样的执行速度。4.2.3 半虚拟化图4.5 将不可虚拟化的操作系统指令替换为超级调用 半虚拟化指的是虚拟机系统和虚拟化软件层通过交互来改善性能和效率。半虚拟化涉及修改操作系统内核来将不可虚拟化的指令替换为可直接与虚拟化层交互的超级调用(hypercalls)。4.2.3 半虚拟化 半虚拟化和全虚拟化不一样,全虚拟化时未经修改的虚拟机系统不知道自身被虚拟化,系统敏感的调用陷入虚拟化层后再进行二进制翻译。半虚拟化的价值在于更低的虚拟化代价,但是相对全虚拟化,半虚拟化的性能优势根据不同的工作
6、负载有很大差别。半虚拟化不支持未经修改的操作系统(如Windows),因此它的兼容性和可移植性较差。由于半虚拟化需要系统内核的深度修改,在生产环境中,技术支持和维护上会有很大的问题。4.2.4 硬件辅助虚拟化图4.6 使用VMM二进制翻译客户操作系统的请求 第一代技术包括Intel的VT-x和AMD的AMD-V,两者都针对特权指令为CPU添加了一个执行模式,即VMM运行在一个新增的根模式下。随着对CPU、内存和I/O设备进行硬件辅助开发,半虚拟化相对于硬件辅助虚拟化的性能优势将逐渐缩小。4.3 商用虚拟机技术1Xen虚拟机技术Xen虚拟机技术是英国剑桥大学计算机实验室原始开发的。之后,Xen社
7、区负责Xen的后续版本开发并将其作为免费开源的软件,以GNU通用公众执照(General Public License)(GPLv2)进行使用。Xen虚拟机技术目前支持的计算机架构包括Intel公司的IA-32、x86-64和ARM公司的ARM。Xen在目前已经有很多版本,著名的亚马逊Web服务(AWS)就建立于Xen虚拟机技术之上。Xen虚拟机的最大商用支持者为美国的Citrix公司。4.3 商用虚拟机技术2KVM虚拟机技术KVM是基于内核的虚拟机(Kernel-based Virtual Machine)的缩写。KVM虚拟机监视器既可以在全虚拟化模式下运行,也能够为部分操作系统提供准虚拟化
8、支持。在准虚拟化模式下,KVM使用一种称为VirtIO的框架作为后端驱动。该框架能够支持准虚拟化的以太网卡、准虚拟化的控制器,调整宿主内存容量的设备,以及使用SPICE或VMware驱动程序的VGA图形界面。4.3 商用虚拟机技术3Hyper-V虚拟化技术Hyper-V是微软公司使用的虚拟机监视器,其前身是Windows服务器虚拟化(Windows Server Virtualization)。Hyper-V也是准虚拟化的监视器,其主机操作系统为经过Hyper-V修改的Windows服务器,其提供的虚拟机容器称为划分,其中根划分里面容纳的是主机操作系统,子划分里面则运行宿主操作系统。目前,Hy
9、per-V的使用者主要是微软的Windows Azure。4.3 商用虚拟机技术4VMware ESX和ESXi虚拟化技术VMware公司的ESX虚拟机监视器是一个企业级的虚拟化产品,为VMware虚拟化产品家族(被称为VMWare基础设施)里的一员。ESX和ESXi均为全虚拟化产品,都是运行在裸机上的虚拟机监视器,它们无须主机操作系统的协作,就能够将硬件的全部功能虚拟化,提供给上面的宿主操作系统使用。ESX和ESXi为上面可以运行任意操作系统,如Windows、Linux、BSD等。ESX和ESXi的商用范围极为广泛,是目前市面上最成功的虚拟化产品之一。4.3 商用虚拟机技术5VmWare
10、WorkstationVmWare Workstation是运行在x86-64体系架构上的虚拟机监视器。该虚拟机监视器与ESX的不同之处在于它是一个准虚拟化系统,能够桥接现有的主机网络适配器,并与虚拟机共享物理磁盘和USB设备。VmWare Workstation的一个比较独特的功能是可以将多个虚拟机作为一个组来看待,一起启动、关闭、挂起、复活等,这对于搭建测试环境来说非常有用。4.3 商用虚拟机技术6Parallels Virtuozzo虚拟化技术Parallels公司的Virtuozzo产品采用的虚拟化技术非常独特,本质上是一个操作系统级别的虚拟化产品。严格来说,Virtuozzo并不算是
11、一个虚拟机监视器,因为其运行在主机操作系统之上,而不是与其并列或其之下。此外,它并不直接掌握硬件资源的调度和管理,只不过将主机操作系统呈现的抽象性再度封装,在其之上呈现多个虚拟机,这些虚拟机里可以运行不同的操作系统。4.4 新型硬件虚拟化4.4.1 硬件虚拟化背景4.4.2 硬件虚拟化的代表4.4.3 硬件虚拟化的未来图4.7 新型硬件的晶体管数目变化趋势4.4.1 硬件虚拟化背景现有虚拟化技术主要针对通用的硬件平台(如x86和x86-64)和系统软件栈(如Linux和Windows),强调对于物理硬件的整合和系统软件栈的兼容,目前还不能高效地承载新型硬件能力供给。工业界和学术界还在寻求新型硬
12、件的虚拟化解决方案,已经提出了GPU、RDMA等硬件资源的直通独占式虚拟化方案。对比CPU、I/O等传统硬件的虚拟化发展历程,RDMA/FPGA等新型硬件的虚拟化尚处于早期阶段。图4.8 设备虚拟化的三种主要方法基于软件模拟的全虚拟化方法:能够支持多个设备共享,并不需要修改客户操作系统,但上下文切换开销大,性能低;基于直通独占的方式:能够使虚拟机直通访问物理设备,减少了虚拟机监控器的切换开销,性能高,但共享困难;基于硬件辅助虚拟化的全虚拟化方法:解决了直通和共享的矛盾,是虚拟化技术走向成熟的标志。目前,基于硬件辅助的虚拟化方法在CPU、内存、网络等传统硬件资源上获得了成功,CPU 和内存虚拟化
13、资源已经接近物理性能。4.4.1 硬件虚拟化背景4.4.2 硬件虚拟化的代表1GPU虚拟化GPU是计算机的一个重要组成部分,但GPU这类重要资源虚拟化的性能、扩展性和可用性相对于CPU还处于滞后的阶段。由于GPU结构复杂,技术限制多,直到2014年才提出了两种针对主流GPU平台的硬件辅助的全虚拟化方案,即基于英伟达GPU的GPUvm和基于英特尔GPU的gVirt。2FPGA虚拟化FPGA作为一种可重新配置的计算资源,与现有的虚拟化框架并不兼容。FPGA器件与各自的开发生态(工具链、库等)具有紧密的耦合关系,目前还没有统一的二进制接口规范。4.4.2 硬件虚拟化的代表3RDMA虚拟化近年来,人们
14、开始探索RDMA硬件虚拟化技术在高性能计算等领域的应用,基于SR-IOV的RDMA在部分场景已能够媲美原生系统的高吞吐量与低延时指标。4NVM虚拟化NVM是一种新的存储技术,它同时拥有内存字节寻址的高性能以及数据存储持久化的特性,因此备受关注。但NVM存在价格高、容量小、使用方式多变等问题,如何进行虚拟化支持进而投入到云环境中使用,仍处在研究的起步阶段。4.4.3 硬件虚拟化的未来1极端虚拟化随着云计算系统应用范围的不断扩大,虚拟机目前正向极大和极小两个方向演化。由于新型硬件设备的加入,单机的处理能力不断增强,由此产生了在单机上构建巨规模/巨型虚拟机的迫切需求。同时,针对部署在智能移动终端上、
15、面向极端受限的特征化硬件环境的微型虚拟机,需要能够便捷共享集约化硬件资源、高效抽象具有多样性的硬件设备,按需移动和重构组件化的虚拟机,以及提供面向交互式和移动性的个性化系统软件栈。4.4.3 硬件虚拟化的未来2异构硬件的融合和归一化首先,异构硬件的融合将本着“优势互补”的原则,向应用提供优势资源以满足极端化需求。其次,不同的硬件需要采用不同的虚拟化方法,提供各异的接口以获得最佳的性能。因此,要通过虚拟化实现异构硬件归一化管理,向应用提供统一的编程接口。可利用来自应用的需求信息动态判断实际的后台执行硬件,实现应用需求指导的动态硬件选择技术。4.4.3 硬件虚拟化的未来3多硬件和特性的聚合和抽象目
16、前,虚拟化侧重于“一虚多”技术,即将单个物理资源通过虚拟化技术作为多个虚拟资源提供。同时,可利用新型硬件实现对多硬件或多特性的虚拟化聚合和抽象,提升硬件性能,甚至突破单一硬件的物理极限(“多虚一”)。4.5 实践:Xen虚拟化技术4.5.1 Xen的历史4.5.2 Xen功能概览4.5.3 Xen实际操作20世纪90年代,剑桥大学的伊恩普拉特(Ian Pratt)和基尔弗雷特(Keir Fraser)在一个叫作Xenoserver的研究项目中,开发了Xen虚拟机。作为Xenoserver的核心,Xen虚拟机负责管理和分配系统资源,并提供必要的统计功能,其一开始是作为一个准虚拟化的解决方案出现的
17、。2002年Xen正式被开源,在先后推出了1.0和2.0版本之后,Xen开始被诸如Red Hat、Novell和Sun等公司的Linux发行版集成,作为其中的虚拟化解决方案。2005年发布的Xen 3.0开始正式支持Intel的VT技术和IA64架构,从而Xen虚拟机可以运行完全没有修改的操作系统。2007年10月,思杰(Citrix)公司出资5亿美元收购了XenSource。4.5.1 Xen的历史 Xen是一个直接在系统硬件上运行的虚拟机管理程序。Xen在系统硬件与虚拟机之间插入一个虚拟化层,将系统硬件转换为一个逻辑计算资源池,Xen可将其中的资源动态地分配给任何操作系统或应用程序。在虚拟
18、机中运行的操作系统能够与虚拟资源交互,就好像它们是物理资源一样。4.5.2 Xen功能概览图4.9 Xen的总体结构4.5.3 Xen实际操作1检查CPU是否支持Xen虚拟化2安装Xen3创建一个CentOS Xen客户操作系统图4.10 virt-manager GUI工具图4.11 选择虚拟化方法图4.12 为虚拟机分配存储空间图4.13 配置客户虚拟机的内存和CPU使用率图4.14 虚拟机配置信息摘要图4.15 客户操作系统开始安装4.6 实践:KVM虚拟化技术4.6.1 KVM简介4.6.2 KVM的基本安装操作KVM的全称是Kernel Virtual Machine,即内核虚拟机。
19、KVM的运行需要主机是x86架构且硬件支持虚拟化技术(如Intel VT或AMD-V),还需要一个经过修改的QEMU软件(qemu-kvm)作为虚拟机上层控制和界面。KVM能在不改变Linux或Windows镜像的情况下同时运行多个虚拟机,并为每一个虚拟机配置个性化硬件环境。支持KVM虚拟化技术的操作系统有很多,包括各种Linux版本、FreeBSD、Solaris、Windows、Haiku、ReactOS、Plan 9、AROS Research OS、Mac OS X等。4.6.1 KVM简介4.6.2 KVM的基本安装操作1安装kvm及其依赖包2启动Virt Manager3配置桥接接
20、口4.创建虚拟机图4.16 Virt Manager操作界面图4.17 新建虚拟机图4.18 指定安装媒体图4.19 指定内存和CPU配置图4.20 指定存储空间大小图4.21 选择网络模式图4.22 进入安装界面4.7 轻量级虚拟化4.7.1 容器技术简介4.7.2 容器与虚拟机的对比4.7.3 容器背后的内核知识4.7.1 容器技术简介图4.23 容器技术的发展过程4.7.2 容器与虚拟机的对比图4.24 虚拟机(左)与 容器(右)的区别4.7.3 容器背后的内核知识Docker容器本质上是宿主机上的一个进程,通过namespace实现了资源隔离,通过cgroups实现了资源限制,通过写时
21、复制技术实现了高效的文件操作。1.namespace资源隔离2.Cgroups资源控制3.写时复制技术1namespace资源隔离Linux内核中提供了6种namespace系统调用,基本实现了容器需要的隔离机制。具体系统调用名称如表4.1所示。表4.1 namespace六项隔离2Cgroups资源控制Linux cgroups 的全称是 Linux Control Groups,它是Linux内核的特性,主要作用是限制、记录和隔离进程组(process groups)使用的物理资源(CPU、memory、IO等)。它的主要功能包括以下几点:资源限制:限制进程使用的资源上限,如最大内存、文件
22、系统缓存使用限制。优先级控制:不同的组可以有不同的优先级,如CPU使用和磁盘IO吞吐。审计:计算 group 的资源使用情况,可以用来计费。控制:挂起一组进程,或者重启一组进程。3.写时复制技术图4.25 Docker镜像的文件结构当Docker第一次启动一个容器时,初始的读写层是空的,当文件系统发生变化时,这些变化都会应用到这一层之上。例如,如果想修改一个文件,这个文件首先会从该读写层下的只读层复制到该读写层。由此,该文件的只读版本依然存在于只读层,只是被读写层的该文件副本所隐藏,该机制则被称之为写时复制(Copy on write)。4.8 实践:Docker容器4.8.1 安装Docke
23、r4.8.2 运行第一个Docker容器4.8.1 安装Docker1安装可选内核模块包以使用AUFS2添加使用HTTPS传输的软件包以及CA证书3添加软件源的GPG密钥4.向source.list中添加Docker软件源5.更新apt软件包缓存,并安装docker-ce6.测试Docker是否安装正确4.8.2 运行第一个Docker容器1pull命令从远端的Docker仓库中将容器镜像拉取到本地2执行docker run命令来运行容器初识云计算虚拟化的定义服务器虚拟化商用虚拟机技术新型硬件虚拟化实践:Xen虚拟化技术实践:KVM虚拟化技术轻量级虚拟化实践:Docker容器小结课内复习1什么
24、是虚拟化技术?该技术有哪三种类型?2全虚拟化技术和半虚拟化技术的区别是什么?3硬件虚拟化技术有哪些代表?4什么是轻量级虚拟化技术?其代表是什么?课外思考1虚拟化技术对提高计算资源的利用率究竟带来了怎样的好处?2轻量级虚拟化技术相对于传统虚拟化技术的优势和不足是什么?3容器的轻量级虚拟化技术还能进一步轻量化吗?有什么样的方式?动手实践1lKVM目前已成为学术界和工业界的主流虚拟机监控器(VMM)之一,在越来越多的应用场景中使用。任务:通过KVM的官方网站下载并安装使用KVM,进一步了解KVM的原理。任务:通过Phoronix的官方网站下载安装Phoronix基准测试程序(Benchmark)对一
25、个KVM系统的性能进行评测和比较。动手实践2lDocker是目前最流行的轻量级虚拟化解决方案之一,开始在越来越多的场合中替代传统的虚拟机技术。任务:通过Docker的官方网站下载并安装使用最新的Docker,进一步了解Docker的原理。任务:通过基准测试程序对容器和传统虚拟机的性能进行评测和比较。1.从以往的选文看,高考虽说回避社会的焦点和热点问题,但倡导并弘扬真善美是永恒的时代主题,结合当前反腐倡廉和社会舆论看,对忠臣廉吏的价值判断依然会影响高考文言文的选文。2.可以根据上句或下句推导提醒。内容提示的默写,可先在头脑中默背有关内容,选取与提示相对应的内容默写。如果默写的内容印象不深,可先记
26、得几个字默写几个字,暂时放过,后面记起来了再默写。3.一般而言,课外文言文阅读文段都会给出标题。同学们要留意并仔细分析文段的标题。因为大部分标题本身就概括了文言文的主要内容。理解题目可以帮助自己理解材料的内容,从而正确答题。4.课外文言文阅读问题设计有三种类型即词语解释题、句子翻译题和内容理解题。对于不同的题目则采用不同的解题方法.5.首先,能够读懂文章,理清文章的思路,把握文章层次之间的关系,并且能够概括出文章各个层次的含义。其次,能够抓住文章的关键语句,概括文章的要点,把握文章的主旨。在答题之前我们要结合注释,疏通文意,读懂语段。6.赫鲁晓夫因退一步成就了自己,卡耐基因退一步获得友谊,由此
27、可见,退一步不但给他人留下一片天地,同时也给自己留下了更宽阔的天地。退一步不仅表现了对他人一份爱,更表现了自己对自己的爱,这种爱已经超出了人与人的界限,于社会每一个角落中显示着它的力量。7.阳光总在风雨后,不管失败还是痛苦,我们如果能快乐地笑一笑,高歌生活多么好,蓝天白云多么美,那我们就会获得微笑的幸福,甚至能拥有金灿灿的硕果。朋友,为了生活更加美好,快快亮出你的笑容吧!8.社会性是人的本质属性。社会参与,重在强调能处理好自我与社会的关系,养成现代公民所必须遵守和履行的道德准则和行为规范,增强社会责任感,提升创新精神和实践能力,促进个人价值实现,推动社会发展进步,发展成为有理想信念、敢于担当的人。1、乐学善学重点是能正确认识和理解学习的价值,具有积极的学习态度和浓厚的学习兴趣;能养成良好的学习习惯,掌握适合自身的学习方法;能自主学习,具有终身学习的意识和能力等。