1.2.4 虚拟化与云计算
云计算可以说是虚拟化的升级版,通过在数据中心部署云计算技术,可以完成多数据中心之间的业务无感知迁移,并可为公众同时提供服务,此时数据中心就成为云数据中心。云计算与虚拟化并非一回事,云计算旨在通过网络按需交付共享资源,利用虚拟化可以实现云计算的所有功能。服务器虚拟化并不是云,而是基础架构自动化或者数据中心自动化,它并不需要提供基础设施服务。无论是否位于云环境之中,都可以首先将服务器虚拟化,然后将其迁移到云计算平台,以提高敏捷性,并增强自动化服务。
云计算是继20世纪80年代大型计算到客户机/服务器转变之后的又一次转变。云计算是一种新技术,也是一种新概念、新模式,而不是单纯地指某项具体的应用或标准,它是近十年来在IT领域出现并飞速发展的新技术之一。对于云计算中的“计算”一词,大家并不陌生,而对于云计算中的“云”,我们可以将其理解为一种提供资源的方式,或者说提供资源的硬件和软件系统被统称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取、按需使用、随时扩展、按使用量付费。云计算模式是对计算资源使用方式的巨大变革。因此,我们可以将云计算初步理解为可通过网络随时随地获取到特定的计算资源。
1. 云计算的起源
云计算提供的计算机资源服务是与水、电、煤气和电话类似的公共资源服务。亚马逊云计算服务(Amazon Web Services,AWS)提供专业的云计算服务,于2006年推出,以Web服务的形式向企业提供IT IaaS,其主要优势之一是能够根据业务发展来进行扩展,它已成为公有云的事实标准。
V1-2 云计算的起源
1959年,克里斯托弗·斯特雷奇(Christopher Strachey)提出虚拟化的基本概念。2006年3月,亚马逊公司首先提出弹性计算云服务。2006年8月,谷歌公司首席执行官埃里克·施密特(Eric Schmidt)在搜索引擎大会上首次提出“云计算”(CloudComputing)的概念。从那时起,云计算开始受到关注,这也标志着云计算的诞生。从2010年中华人民共和国工业和信息化部联合中华人民共和国国家发展和改革委员会印发《关于做好云计算服务创新发展试点示范工作的通知》,到2015年中华人民共和国工业和信息化部印发《云计算综合标准化体系建设指南》,云计算由最初的美好愿景发展到概念落地,目前已经进入广泛应用阶段。
云计算经历了先由集中时代向网络时代转变,再向分布式时代转变,并在分布式时代的基础之上形成了云时代,如图1.7所示。
图1.7 云计算的转变
云计算作为一种计算技术和服务理念,有着极其浓厚的技术背景。随着众多互联网厂商的发展,各家互联网公司对云计算的研发不断深入,陆续形成了完整的云计算技术架构、硬件网络。服务器方面逐步向数据中心、全球网络互联、软件系统等方向发展,完善了操作系统、文件系统、并行计算架构、并行计算数据库和开发工具等云计算系统关键部件。
云计算的最终目标是将计算、服务和应用作为公共设施提供给公众,使人们能够便捷地使用这些计算资源。
2. 无处不在的云计算
云计算作为一种新技术的代表,就像互联网一样,越来越密切地渗透到我们的日常生活中。例如,当需要与同事共享一份电子资料时,如果这份资料文件有几百兆字节,超出了电子附件大小的限制,该如何进行文件传送和保存呢?以前我们一般会通过快递来传送U盘或移动硬盘等存储介质,费时、费力。但现在有了更便捷的方式,即使用百度网盘之类的云存储服务,只需要将资源文件放入自己的网盘,再发送共享链接和存取密码给接收方,接收方通过互联网就能随时随地获取共享的资料文件。又如,某公司需要召开专项会议,但参会人员却分散在全国各地。如果让参会人员乘坐交通工具从全国各地聚集到一起开现场会议,不仅浪费资金,还耽误时间。因此,大家会优先考虑使用腾讯会议、Zoom之类的云会议系统。参会人员只需要通过互联网,使用浏览器进行简单的操作,便可快速、高效地与不同地理位置的参会人员同步分享视频、语音及文件等。实际上,云会议的参与人员只需具备一台能上网的设备(计算机、平板电脑、手机等)和一个能正常使用的网络,就可以实现在线视频会议和交流,而不必关心会议中数据的传输、处理等复杂技术,这些全部由云会议服务商提供支持。
像这种提前将资源准备好,通过特定技术随时随地使用这些资源去执行特定任务的方式一般属于云计算,能够提供这种服务的供应商就是云服务提供商,如华为的公有云就是一个云服务提供商,图1.8所示为华为云网站。
图1.8 华为云网站
在“产品”服务选项中,可以看到精选推荐、计算、容器、存储、网络、CDN(Content Delivery Network,内容分发服务)与智能边缘、数据库、人工智能、大数据、物联网、应用中间件、开发与运维、企业应用、视频、安全与合规、管理与监管、迁移、区块链、华为云Stack等大类。每个大类又可以分为数量不等的细分类型,这里以“产品”→“存储”中的“对象存储服务”(Object Storage Service,OBS)为例进行介绍,如图1.9所示。
图1.9 对象存储服务
对象存储服务是基于对象的存储服务,可为客户提供海量、安全、高可靠、低成本的数据存储能力,使用时无须考虑容量限制,并且有多种存储类型可供选择,能够满足客户各类业务场景的诉求,图1.10所示为多种存储类型。
图1.10 多种存储类型
云服务提供商除了为用户提供云存储服务外,还会提供一些其他的云服务。例如,华为云提供的云服务器实际上是一种虚拟服务器。与购买计算机时类似,华为云提供了不同档次和类型的云服务器实例,配置包括CPU数量、主频、内存及网络带宽等参数,用户可以根据自己的需求选择最具性价比的云服务器实例。以一个热门的云服务器为例,弹性云服务器(Elastic Cloud Server,ECS)是一种云上可随时自动获取、可弹性伸缩的计算服务,可帮助用户打造安全、可靠、灵活、高效的应用环境,如图1.11所示,其弹性云服务规格如图1.12所示。实际上,购买云服务器实例就好比购买物理机,借助它可以完成绝大部分可以在物理机上完成的工作,如编辑文档、发送邮件或者协同办公等。只不过云服务器不在眼前,而是放在了网络的远端(云端)。另外,云服务器还具备一些物理机不具备的优势,如对云服务器的访问不受时间和地点的限制,只要有互联网,就可随时随地使用;并且可以使用多种多样的设备操作云服务器,如用户可以通过个人计算机(Personal Computer,PC)、手机等对云服务器进行操作,需要时还可以修改或扩展自己的云服务器的性能配置。
图1.11 弹性云服务器
图1.12 弹性云服务规格
总之,云计算可以让我们像使用水、电一样使用网络服务。用户一打开水龙头,水就哗哗流出来,这是因为自来水厂已经将水送入了连通千家万户的蓄水池;对云计算来说,云服务提供商已经为用户准备好所有的资源及服务,用户通过互联网络就可以使用这些资源及服务。
随着云计算技术的迅猛发展,类似的云服务会越来越多地渗透到我们的日常生活中,我们能够切实地感受到云计算技术带给我们的生活上的便利。我们身边的云服务其实随处可见,如百度网盘、有道云笔记、网易云音乐和手机的自动备份等,用户可以将手机端的文件备份到云端的数据中心中。更换手机后,使用自己的账号和密码就可以将自己的数据还原到新手机上。
3. 云计算的基本概念
相信读者都听说过阿里云、华为云、百度云、腾讯云等,那么到底什么是云计算呢?云计算又能做什么呢?
(1)云计算的定义
云计算是一种基于网络的超级计算模式,基于用户的不同需求提供所需要的资源,包括计算资源、网络资源、存储资源等。云计算服务通常运行在若干台高性能物理服务器之上,具备约10万亿次/秒的运算能力,可以用来模拟核爆炸、预测气候变化及市场发展趋势等。
V1-3 云计算的定义
云计算将计算任务分布在由大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和各种软件服务,这种资源池中的资源称为“云”。“云”是可以自我维护和管理的虚拟计算资源,通常为大型服务器集群,包括计算服务器、存储服务器、宽带资源服务器等。之所以称为“云”,是因为它在某些方面具有现实中云的特征:云一般较大;云的规模可以动态伸缩,它的边界是模糊的;云在空中飘忽不定,无法也无须确定它的具体位置,但它确实存在于某处。云计算将所有的计算资源集中起来,并由软件实现自动管理,无须人为参与。
“端”指的是用户终端,可以是PC、智能终端、手机等任何可以连入互联网的设备。
云计算的一个核心理念就是通过不断提高“云”的处理能力,进而减少“端”的处理负担,最终使“端”简化成为一个单纯的I/O设备,并能按需使用“云”强大的计算处理能力。
云计算的定义有狭义和广义之分。
狭义上讲,“云”实质上就是一种网络,云计算就是一种提供资源的网络,包括硬件、软件和平台。用户可以随时获取“云”上的资源,按需求量使用,并且容易扩展,只要按使用量付费就可以。“云”就像自来水厂一样,我们可以随时接水,并且不限量,按照自己家的用水量付费给自来水厂即可。在用户看来,水的资源是无限的。
广义上讲,云计算是与IT、软件、互联网相关的一种服务,通过网络以按需、易扩展的方式提供所需要的服务。云计算把许多计算资源集合起来,通过软件实现自动化管理,只需要很少的人参与,就能让资源被快速提供。也就是说,计算能力作为一种商品,可以在互联网上流通,就像水、电、煤气一样,可以方便地取用,且价格较为低廉。这种服务可以是与IT、软件、互联网相关的,也可以是其他领域的。
总之,云计算不是一种全新的网络技术,而是一种全新的网络应用概念。云计算的核心思想就是以互联网为中心,在网站上提供快速且安全的计算与数据存储服务,云计算让每一个用户都可以使用网络中庞大的计算资源。
云计算是继计算机、互联网之后的一种革新,是信息时代的一个巨大飞跃,未来的时代可能是云计算的时代。虽然目前有关云计算的定义有很多,但总体上来说,云计算的基本含义是一致的,即云计算具有很强的可扩展性和必要性,可以为用户提供全新的体验,可以将很多的计算资源协调在一起。因此,用户通过网络就可以获取到几乎不受时间和空间限制的大量资源。
(2)云计算的服务模式
云计算的服务模式由3部分组成,包括基础设施即服务(Infrastructure as a Service,IaaS)、平台即服务(Platform as a Service,PaaS)和软件即服务(Software as a Service,SaaS),如图1.13所示。传统模式与云计算服务模式层次结构如图1.14所示。
图1.13 云计算的服务模式
V1-4 云计算的服务模式
图1.14 传统模式与云计算服务模式层次结构
① 基础设施即服务(IaaS)。什么是基础设施呢?主机、存储、网络和计算服务等物理设备都是基础设施。云服务提供商购买服务器、硬盘、交换机、路由器等设备,搭建基础设施;我们便可以在云平台上根据需求购买相应的计算能力、内存空间、磁盘空间、网络带宽,搭建自己的云计算平台。这类云计算服务提供商的典型代表便是阿里云、腾讯云、华为云等。
优点:能够根据业务需求灵活配置资源,扩展、伸缩方便。
缺点:开发、维护需要较多人力,专业性要求较高。
② 平台即服务(PaaS)。什么是平台呢?我们可以将平台理解成中间件。这类云计算厂商在基础设施上进行开发,搭建操作系统,提供一套完整的应用解决方案,开发大多数用户所需的中间件服务(如MySQL数据库服务、RocketMQ服务等),用户无须深度开发,只专注业务代码即可。典型的云计算平台代表便是Pivatol Cloud Foundary、Google App Engine等。
优点:用户无须开发中间件,所需即所用,能够快速使用;部署快速,可减少人力投入。
缺点:应用开发时的灵活性、通用性较低,过度依赖平台。
③ 软件即服务(SaaS)。SaaS是大多数人每天都能接触到的,如办公自动化(Office Automation,OA)系统、微信公众号平台。SaaS可直接通过互联网为用户提供软件等服务,用户可通过租赁的方式获取安装在厂商或者服务供应商那里的软件。虽然这些服务是用于商业或者娱乐的,但是它们也属于云计算,面向的对象一般是普通用户,常见的服务模式是给用户提供一组账号和密码。
优点:所见即所得,无须开发。
缺点:需定制,无法快速满足个性化需求。
IaaS主要对应基础设施,可实现底层资源虚拟化以及实际云应用平台部署,完成网络架构由规划架构到最终物理实现的过程;PaaS基于IaaS技术和平台,部署终端用户使用的软件或应用程序,提供对外服务的接口或服务产品,最终实现对整个平台的管理和平台的可伸缩化;SaaS基于现成的PaaS,提供终端用户的最终接触产品,完成现有资源的对外服务以及服务的租赁化。
(3)云计算的部署类型
云计算的部署类型分为公有云、私有云、社区云和混合云,其特点和应用场景如图1.15所示。
图1.15 云计算部署类型的特点与应用场景
① 公有云。在这种部署类型下,应用程序、资源和其他服务都由云服务提供商来提供给用户。这些服务多半是免费的,部分服务按使用量来收费。这种部署类型只能使用互联网来访问和使用。同时,这种部署类型在私人信息和数据保护方面也比较有保障,通常可以提供可扩展的云服务并能高效设置。
V1-5 云计算的部署类型
② 私有云。这种部署类型专门为某一个企业服务。不管是企业自己管理还是第三方管理,不管是企业自己负责还是第三方托管,只要使用的方式没有问题,就能为企业带来很显著的成效。不过这种部署类型所要面临的是,纠正、检查等安全问题需由企业自己负责,出了问题也只能由企业自己承担后果。此外,整套系统需要企业自己购买、建设和管理。这种云计算部署类型可产生正面效益。从模式的名称也可看出,它可以为所有者提供具备充分优势和功能的服务。
③ 社区云。公有云和私有云都有自己的缺点与不足,折中的一种云就是社区云,顾名思义,就是由一个社区,而不是一家企业所拥有的云平台。社区云一般隶属于某个企业集团、机构联盟或行业协会,服务于同一个集团、联盟或协会。社区云是由几个组织共享的云端基础设施,它们支持特定的社群,有共同的关切事项,如使命任务、安全需求、策略与法规遵循考量等。管理者可能是组织本身,也可能是第三方;管理位置可能在组织内部,也可能在组织外部。凡是属于该群体组织的成员都可以使用该社区云。为了管理方便,社区云一般由一家机构来运维,但也可以由多家机构共同组成一个云平台运维团队来管理。
④ 混合云。混合云是两种或两种以上的云计算部署类型的混合体,如公有云和私有云混合。它们相互独立,但在云的内部又相互结合,可以发挥出多种云计算部署类型各自的优势。它们通过标准的或专有的技术组合起来,具有可移植数据和应用程序的特性。
4. 云计算的主要特点
云计算是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。“云”是互联网和底层基础设施的一种比喻说法。用户可以通过计算机、PC、手机等方式接入数据中心,按自己的需求进行运算。云计算具有如下特点。
(1)快速弹性伸缩
快速弹性伸缩是云计算的特点之一,也通常被认为是吸引用户“拥抱”云计算的核心理由之一。云计算用户可以根据自己的需要,自动透明地扩展IT资源。例如,用户为了应对热点事件的突发大流量,临时购买大量的虚拟资源进行扩容;而当热点事件“降温”后,访问流量趋于下降时,用户又可以将这些新增加的虚拟资源释放,这种行为就属于典型的快速弹性伸缩。具有大量IT资源的云提供商可以提供极大范围的弹性伸缩。快速弹性伸缩包括多种类型,除了人为手动扩容或缩容外,云计算还支持根据预定的策略进行自动扩容或缩容。伸缩可以是增加或减少服务器数量,也可以是对单台服务器进行资源的增加或减少。在云计算中,对用户来说,快速弹性伸缩最大的好处是在保证业务或应用稳定运行的前提下节省成本。企业在创立初期需求量较少时,可以购买少量的资源,随着企业规模的扩大,可以逐步增加资源方面的投资;或者,可在特殊时期将所有资源集中提供给重点业务使用,如果资源还不够,则可以及时申请增加新的资源,度过特殊时期后,再将新增加的资源释放。无论是哪种情景,对用户来说都是很方便的。
(2)资源池化
资源池化是实现按需自助服务的前提之一,通过资源池化不但可以把同类商品放在一起,而且能对商品的单位进行细化。稍大规模的超市一般会将场地划分为果蔬区、海鲜区、日常用品区等多个区域,以方便客户快速地找到自己所需要的商品,但这种形式不算是资源池化,只能算是资源归类。那么,什么是资源池化呢?资源池化除了将同类的资源转换为资源池的形式外,还需要将所有的资源分解到较小的单位。要使用资源池化的方式,就需要打破物理硬盘数量的“个”这个单位,将所有的硬盘的容量合并起来,聚集到一个“池子”里,分配时可以以较小的单位,如以“GB”作为单位进行分配,用户需要多少就申请多少。资源池化可以屏蔽不同资源之间的差异性,例如,包含机械硬盘和固态硬盘的存储资源被池化后,用户申请一定数量的存储空间,具体对应的是机械硬盘还是固态硬盘,或者两者都有,用户是看不出来的。在云计算中,可以被池化的资源包括计算、存储和网络等资源。其中计算资源包括CPU和内存,如果对CPU进行池化,则用户看到的CPU最小单位是一个虚拟的核,而不再体现CPU的厂商是Intel公司或者AMD公司这类物理属性。
(3)按需自助服务
说到按需自助服务,我们最先想到的可能就是超市。每个顾客在超市里都可以按照自己的需求挑选需要的商品,如果是同类商品,则可以通过查看说明、价格、品牌等商品信息来确定是否购买或购买哪一款商品。按需自助服务是云计算的特点之一,用户可以根据自己的需要选择其中的一种模式,选择模式后,一般又会有细分的不同配置可供选择,用户可以根据自己的需求购买所需的服务。整个过程一般是自助完成的,除非遇到问题需要咨询,否则不需要第三方介入,如华为云的弹性云服务器规格中就有许多不同配置的云服务器实例可供用户选择。按需自助服务的前提是了解自己的需求,并知道哪款产品能够满足这个需求,这就要求使用云计算的用户具备相关的专业知识。不具备这方面知识和能力而想使用云计算的用户可咨询云服务提供商或求助相关专业服务机构。
(4)服务可计量可计费
计量不是计费,尽管计量是计费的基础。在云计算提供的服务中,大部分服务需要付费使用,但也有服务是免费的,如弹性伸缩可以作为一个免费的服务为用户开通。计量是利用技术和其他手段实现单位统一和量值准确、可靠的测量。可以说,云计算中的服务都是可计量的,有的是根据时间,有的是根据资源配额,还有的是根据流量进行计量。计算服务可以帮助用户准确地根据自己的业务进行自动控制和优化资源配置。在云计算系统中,一般有一个计费管理系统,专门用于收集和处理数据,它涉及云服务提供商的结算和云用户的计费。计费管理系统允许管理员制定不同的定价规则,还可以针对每个云用户或每个IT资源自定义定价模型。计费可以选择使用前支付或使用后支付,后一种支付类型又分为预定义限值和无限制使用。如果设定了限值,则它们通常以配额形式出现,超出配额时,计费管理系统可以拒绝云用户的进一步使用请求。假设某用户存储的配额是2TB,一旦用户在云计算系统中的存储容量达到2TB,新的存储请求将被拒绝。用户可以根据需求来购买相应的服务,并可以很清晰地看到自己购买服务的使用情况。对于合约用户,通常在合约中规定使用产品的类型、服务质量要求、单位时间的费用或每个服务请求的费用,如华为云的弹性云服务器的计价标准给出了按月收费的不同配置的虚拟机服务器。
(5)泛在接入
泛在接入是指广泛的网络接入,云计算的一个特点是所有的云必须依赖网络连接。可以说,网络是云计算的基础支撑,尤其是互联网,云离不开互联网。互联网提供了对IT资源远程的、随时随地的访问,网络接入是云计算自带的属性,可以把云计算看成“互联网+计算”。虽然大部分云的访问通过互联网来实现,但云用户也可以选择使用私有的专用线路来访问云。云用户与云服务提供商之间网络连接的服务水平取决于为他们提供网络接入服务的互联网服务提供方。在当今社会,互联网几乎覆盖了全球各个角落,我们可以通过各种数字终端(如手机、计算机等)连接互联网,并通过互联网连入云,使用云服务。因此,广泛的网络接入是云计算的一个重要特点,这个网络可以是有线网络,也可以是无线网络。总之,离开了网络,就不会有云计算。
(6)支持异构基础资源
云计算可以构建在不同的基础平台之上,即它可以有效兼容各种不同种类的硬件基础资源和软件基础资源。硬件基础资源主要包括网络环境下的三大类设备,即计算(服务器)、存储(存储设备)和网络(交换机、路由器等设备);软件基础资源则包括单机操作系统、中间件、数据库等。
(7)支持异构多业务体系
在云计算平台上,可以同时运行多个不同类型的业务。异构表示该业务不是相同的,不是已有的或事先定义好的,而是用户可以自己创建并定义的业务。
(8)支持海量信息处理
云计算在底层需要面对众多的软件、硬件基础资源,在上层需要能够同时支持众多的、异构的业务;而具体到某一业务,往往也需要面对大量的用户。由此,云计算必然需要面对海量信息交互,需要有高效、稳定的海量数据通信/存储系统作为支撑。
(9)高可靠性与可用性
云计算技术主要通过冗余方式进行数据处理服务。在大量计算机机组存在的情况下,系统中所出现的错误会越来越多,而通过冗余方式能够降低错误出现的概率,同时保证数据的可靠性。云计算技术具有很高的可用性。在存储和计算能力上,云计算技术相比以往的计算技术具有更高的服务质量,在节点检测上也能做到智能检测,在排除问题的同时不会对系统造成任何影响。
(10)经济性与多样性服务
云计算平台的构建费用与超级计算机的构建费用相比要低很多,但是在性能上基本持平,这使得开发成本能够得到极大的减少。用户在选择上将具有更大的空间,通过缴纳不同的费用来获取不同层次的服务。云计算本质上是一种数字化服务,同时这种服务较以往的计算服务更便捷,用户在不清楚云计算技术机制的情况下,就能够使用相应的服务。云计算平台能够为用户提供良好的编程模型,用户可以根据自己的需要进行程序制作,这样便为用户提供了极大的便利,同时节约了相应的开发资源。
5. 云计算与虚拟化的关系
云计算是中间件、分布式计算(网格计算)、并行计算、效用计算、网络存储、虚拟化和负载均衡等网络技术发展、融合的产物。
V1-6 云计算与虚拟化的关系
虚拟化不一定与云计算相关,如CPU虚拟化、内存虚拟化等也属于虚拟化,但与云计算无关,如图1.16所示。
图1.16 云计算与虚拟化的关系
(1)虚拟化的特征
虚拟化将一台计算机虚拟为多台逻辑计算机,可在一台计算机上同时运行多台逻辑计算机,每台逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。虚拟化使用软件的方法重新定义、划分IT资源,可以实现IT资源的动态分配、灵活调度、跨域共享,提高IT资源的利用率,使IT资源能够真正成为社会基础设施,满足各行各业中灵活多变的应用需求。
① 更高的资源利用率。虚拟化可实现物理资源和资源池的动态共享,提高资源利用率,特别是针对那些平均需求资源远低于需要为其提供专用资源的不同负载。
② 降低管理成本。虚拟化可通过以下途径提高工作人员的效率:减少必须进行管理的物理资源的数量;降低物理资源的复杂性;通过实现自动化、获得更好的信息和实现集中管理来简化公共管理任务;实现负载管理自动化。另外,虚拟化还支持在多个平台上使用公共的工具。
③ 提高使用灵活性。通过虚拟化可实现动态的资源部署和重配置,满足不断变化的业务需求。
④ 提高安全性。虚拟化可实现较简单的共享机制无法实现的隔离和划分,也可对数据和服务进行可控和安全的访问。
⑤ 更高的可用性。虚拟化可在不影响用户的情况下对物理资源进行删除、升级或改变。
⑥ 更高的可扩展性。根据不同的产品、资源分区和汇聚可实现比个体物理资源更少或更多的虚拟资源,这意味着用户可以在不改变物理资源配置的情况下进行虚拟资源的大规模调整。
⑦ 提供互操作性和兼容性。互操作性又称为互用性,是指不同的计算机系统、网络和应用程序一起工作并共享信息的能力。虚拟资源可提供底层物理资源无法提供的对各种接口和协议的兼容性。
⑧ 改进资源供应。与个体物理资源单位相比,虚拟化能够以更小的单位进行资源分配。
(2)云计算的特征
① 按需自动服务。用户不需要或很少需要云服务提供商的协助,就可以单方面按需获取云端的计算资源。例如,计算、网络、存储等资源是按需自动部署的,用户不需要与服务提供商进行交互。
② 广泛的网络访问。用户可以随时随地使用云终端设备接入网络并使用云端的计算资源。常见的云终端设备包括手机、平板电脑、笔记本电脑、掌上电脑和台式计算机等。
③ 资源池化。云端的计算资源需要被池化,以便通过多租户形式共享给多个消费者。只有将资源池化才能根据用户的需求动态分配或再分配各种物理的和虚拟的资源。用户通常不知道自己正在使用的计算资源的确切位置,但是在自助申请时可以指定大概的区域范围(如在哪个国家、哪个省或者哪个数据中心)。
④ 快速弹性伸缩。用户能方便、快捷地按需获取和释放计算资源。也就是说,用户需要时能快速获取资源从而提高计算能力,不需要时能迅速释放资源,以便降低计算能力,从而减少资源的使用费用。对用户来说,云端的计算资源是无限的,可以随时申请并获取任何数量的计算资源。但是,我们一定要消除一个误解,那就是实际的云计算系统不一定是投资巨大的工程,不一定需要成千上万台计算机,不一定具备超级强大的运算能力。其实,一台计算机就可以组建一个最小的云端,云端建设方案务必采用可伸缩性策略,例如,建设开始时采用几台计算机,然后根据用户规模来增减计算资源。
⑤ 按需、按量可计费。用户使用云端的计算资源是要付费的,付费的计量方法有很多,如根据某类资源(如存储资源、CPU、网络带宽等)的使用量和使用时间计费,也可以按照使用次数来计费。但不管如何计费,对消费者来说,价码要清楚、计量方法要明确,而云服务提供商需要监视和控制资源的使用情况,并及时输出各种资源的使用报表,做到供需双方的费用结算清楚、明白。
6. 云计算中的虚拟化
在云计算环境中,计算服务通过API服务器来控制虚拟机管理程序。它具备一个抽象层,可以在部署时选择一种虚拟化技术来创建虚拟机,为用户提供云服务。可用的虚拟化技术如下。
(1)KVM
KVM是通用的开放虚拟化技术,也是OpenStack用户使用较多的虚拟化技术,它支持OpenStack的所有特性。
(2)Xen
Xen是部署快速、安全、开源的虚拟化技术,可使多个具有相同操作系统或不同操作系统的虚拟机运行在同一主机上。Xen技术主要包括服务器虚拟化平台(XenServer)、云基础架构(Xen Cloud Platform,XCP)、管理XenServer和XCP的API程序(XenAPI)、基于Libvert的Xen。OpenStack通过XenAPI支持XenServer和XCP这两种虚拟化技术,不过在Red Hat企业级Linux(Red Hat Enterprise Linux,RHEL)等平台上,OpenStack使用的是基于Libvert的Xen。
(3)容器
容器是在单一Linux主机上提供多个隔离的Linux环境的操作系统级虚拟化技术。不像基于虚拟管理程序的传统虚拟化技术,容器并不需要运行专用的客户机操作系统。目前的容器有以下两种。
① Linux容器(Linux Container,LXC),提供了在单一可控主机上支持多个相互隔离的服务器容器同时执行的机制。LXC可以快速兼容所有应用程序和工具,以及对其进行任意管理和编制层次来替代虚拟机。
② Docker,一个开源的应用容器引擎,使开发者可以把应用以及依赖包打包到一个可移植的容器中,然后将其发布到任何流行的Linux平台上。Docker也可以实现虚拟化,容器完全使用沙盒机制,二者之间不会有任何接口。
Docker的目的是尽可能减少容器中运行的程序,减少到只运行单个程序,并且通过Docker来管理这个程序。
虚拟机管理程序提供更好的进程隔离能力,呈现一个完全的系统。LXC/Docker除了一些基本隔离功能外,并未提供足够的虚拟化管理功能,缺乏必要的安全机制,基于容器的方案无法运行与主机内核不同的其他内核,也无法运行一个与主机完全不同的操作系统。目前OpenStack社区对容器的驱动支持还不如虚拟化管理程序。在OpenStack项目中,LXC属于计算服务项目Nova,通过调用Libvirt来实现。Docker驱动是一种新加入虚拟化管理程序的驱动,目前无法替代虚拟化管理程序。
(4)Hyper-V
Hyper-V是微软公司推出的企业级虚拟化解决方案。Hyper-V的设计借鉴了Xen,其管理程序采用微内核的架构,兼顾了安全性和性能。Hyper-V作为一种免费的虚拟化方案,在OpenStack中得到了支持。
(5)ESXi
VMware公司提供业界领先且可靠的服务器虚拟化平台和SDC产品。其ESXi虚拟化平台用于创建和运行虚拟机及虚拟设备,在OpenStack中也得到了支持。但是,如果没有vCenter Server和企业级许可,它的一些API的使用会受到限制。
(6)BareMetal与Ironic
有些云平台除了提供虚拟化和虚拟机服务外,还提供传统的主机服务。在OpenStack中可以将BareMetal与其他部署虚拟化管理程序的节点通过不同的计算池(可用区域)一起管理。BareMetal是计算服务的后端驱动,与Libvirt驱动、VMware驱动类似,只不过它是用来管理没有虚拟化的硬件的,主要通过预启动执行环境(Preboot Execution Environment,PXE)和智能平台管理接口(Intelligent Platform Management Interface,IPMI)进行控制、管理。
现在BareMetal已经被Ironic所取代。Ironic和Nova都是OpenStack中的计算机服务项目,Nova管理的是虚拟机的生命周期,而Ironic管理的是主机的生命周期。Ironic提供了一系列管理主机的API,可以对具有“裸”操作系统的主机进行管理,从主机上架安装操作系统到主机下架维修,可以像管理虚拟机一样管理主机。创建一个Nova计算物理节点,只需告诉Ironic,然后自动地从镜像模板中加载操作系统到nova-computer。Ironic可解决主机的添加、删除、电源管理、操作系统部署等问题,目标是成为主机管理的成熟解决方案,使OpenStack可以在软件层面解决云计算问题,也使供应商可以为自己的服务器开发Ironic插件。
7. 云计算的优势
任何技术的使用及创新都是为了满足人们的应用需求。云计算也不例外,它逐渐渗透到人们生活、生产的各个领域,为人们带来便利和效益。云计算的优势主要有以下4个方面。
(1)数据可以随时随地访问
云计算带来了更大的灵活性和移动性,使用云可以让企业随时随地通过任何设备即时访问他们的资源;可以轻松存储、下载、恢复或处理数据,从而节省大量的时间和精力。
(2)提高适应能力,灵活扩展IT需求
IT系统的容量大多数情况下和企业需求不相符。如果企业按峰值需求来配置IT设备,则平时设备会有闲置,造成投资浪费。如果企业按平均需求来配置IT设备,则需求高峰时会不够用。但使用云服务,企业可以拥有更灵活的选择,可以随时增加、减少或释放所申请使用的设备资源。
(3)节约成本
通过云计算企业可以最大限度地减少或完全消减初始投资,因为它们不需要自行建设数据中心或搭建软件/硬件平台,也不需要雇佣专业人员进行开发、运营和维护。使用云计算服务通常比自行购买软件/硬件搭建所需的系统要便宜得多。
(4)统一管理平台
企业可能同时运行着不同类型的平台和设备。在云服务平台中,应用程序和硬件平台不直接关联,从而消除了同一应用程序的多个版本的需要,使用同一平台进行统一管理。
8. 云计算的生态系统
云计算的生态系统主要涉及网络、硬件、软件、服务、应用和云安全6个方面,如图1.17所示。
图1.17 云计算的生态系统
(1)网络。云计算具有泛在网络访问特性,用户无论通过电信网、互联网还是广播电视网,都能够使用云服务,以及网络连接的终端设备和嵌入式软件等。
(2)硬件。云计算相关硬件包括基础环境设备、服务器、存储设备、网络设备、融合一体机等数据中心装备以及提供和使用云服务的终端设备。
(3)软件。云计算相关软件主要包括资源调度和管理系统、云平台和应用软件等。
(4)服务。服务包括云服务和面向云计算系统建设应用的云支撑服务。
(5)应用。云计算的应用领域非常广泛,涵盖工作和生活的各个方面。典型的应用包括电子政务、电子商务、智慧城市、大数据、物联网、移动互联网等。
(6)云安全。云安全涉及服务可用性、数据机密性和完整性、隐私保护、物理安全、恶意攻击防范等诸多方面,是影响云计算发展的关键因素之一。云安全领域主要包括网络安全、系统安全、服务安全及应用安全。