《大数据通识教程》 课件 第9、10章 大数据处理与存储、大数据与云计算_第1页
《大数据通识教程》 课件 第9、10章 大数据处理与存储、大数据与云计算_第2页
《大数据通识教程》 课件 第9、10章 大数据处理与存储、大数据与云计算_第3页
《大数据通识教程》 课件 第9、10章 大数据处理与存储、大数据与云计算_第4页
《大数据通识教程》 课件 第9、10章 大数据处理与存储、大数据与云计算_第5页
已阅读5页,还剩147页未读 继续免费阅读

下载本文档

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

文档简介

数字文明与数字治理大数据通识教程第9章杨武剑周苏主编大数据处理与存储01开源技术商业支援02Hadoop基础03分布式处理04NoSQL数据库目录/CONTENTS05NewSQL数据库PART01开源技术商业支援在大数据生态系统中,基础设施主要负责数据存储以及处理公司掌握的海量数据。应用程序则是指人类和计算机系统通过使用这些程序,从数据中获知关键信息。人们使用应用程序使数据可视化,并由此做出更好的决策;而计算机则使用应用系统将广告投放到合适的人群,或者监测信用卡欺诈行为。9.1开源技术商业支援最初,IBM、甲骨文以及其他公司都将他们拥有的大型关系型数据库商业化。关系型数据库使数据存储在自定义表中,再通过一个密码进行访问。例如,一个雇员可以通过一个雇员编号认定,然后该编号就会与包含该雇员信息的其他字段相联系——她的名字、地址、雇用日期及职位等。这样的结构化数据库还是适用的,直到公司不得不解决大量的非结构化数据。比如企业网络必须处理海量网页以及这些网页链接之间的关系,而社交网络必须应付社交图谱数据。9.1开源技术商业支援社交图谱是社交网站上人与人之间关系的数字表示,其上的每个点末端连接着非结构化数据,例如照片、信息、个人档案等。于是,像腾讯、阿里巴巴、谷歌、脸书以及其他这样的公司开发出各自的解决方案,以存储和处理大量的数据。9.1开源技术商业支援在大数据的演变中,开源软件起到了很大的作用。如今,越来越多的企业将UNIX操作系统的开源版本Linux大规模地应用于商业用途,并与低成本的服务器硬件系统相结合,他们期望获得企业级的商业支持和保障,以低成本获得所需要的功能。Oracle(甲骨文)公司的MySQL开源关系数据库、Apache开源网络服务器以及PHP开源脚本语言(最初为创建网站开发)搭配起来的实用性也推动了Linux的普及。大数据世界里有许多类似的事物在不断涌现。9.1开源技术商业支援源自谷歌的原始创建技术的ApacheHadoop是一个开源分布式计算平台,通过Hadoop分布式文件系统HDFS(HadoopDistributedFileSystem)存储大量数据,再通过名为MapReduce的编程模型将这些数据的操作分成小片段。随后,开发了一系列围绕Hadoop的开源技术。ApacheHive提供数据仓库功能,包括数据抽取、转换、装载(ETL),即将数据从各种来源中抽取出来,再实行转换以满足操作需要(包括确保数据质量),然后装载到目标数据库。ApacheHBase则提供处于Hadoop顶部的海量结构化表的实时读写访问功能。同时,ApacheCassandra通过复制数据来提供容错数据存储功能。9.1开源技术商业支援过去,开源软件所拥有的这些功能通常只能从商业软件供应商处依靠专门的硬件获取。开源大数据技术正在使数据存储和处理能力——这些本来只有像谷歌或其他商用运营商之类的公司才具备的能力,在商用硬件上也得到了应用,降低了使用大数据的先期投入,并且具备了使大数据接触到更多潜在用户的潜力。9.1开源技术商业支援开源软件在开始使用时,在个人使用或有限数据的前提下是免费的,这使其对大多数人颇具吸引力,从而使一些商用运营商采用免费增值的商业模式参与到竞争当中。用户需要在之后为部分或大量数据的使用付费。久而久之,采用开源技术的这些企业也往往需要得到商业支援,一如当初使用Linux碰到的情形。9.1开源技术商业支援PART02Hadoop基础Hadoop是以开源形式发布的一种对大规模数据进行分布式处理的技术。特别是处理大数据时代的非结构化数据时,Hadoop在性能和成本方面都具有优势,而且通过横向扩展进行扩容也相对容易。Hadoop是最受欢迎的在因特网上对搜索关键字进行内容分类的工具,但它也可以解决许多要求极大伸缩性的问题。9.2Hadoop基础Hadoop的基础是谷歌公司于2004年发表的一篇关于大规模数据分布式处理的题为“MapReduce:大集群上的简单数据处理”的论文。MapReduce指的是一种分布式处理的方法,而Hadoop则是将MapReduce通过开源方式进行实现的框架的名称。这是因为谷歌在其论文中公开的仅限于处理方法,而并没有公开程序本身。也就是说,提到MapReduce,指的只是一种处理方法,而对其实现的形式并非只有Hadoop一种。Hadoop则指的是一种基于Apache授权协议,以开源形式发布的软件程序。9.2.1Hadoop的由来Hadoop原本是由三大部分组成的,即用于分布式存储大容量文件的HDFS(HadoopDistributedFileSystem)分布式文件系统,用于对大量数据进行高效分布式处理的HadoopMapReduce框架,以及超大型数据表HBase。这些部分与谷歌的基础技术相对应。图9-2谷歌与开源基础技术的对应关系9.2.1Hadoop的由来从数据处理的角度来看,HadoopMapReduce是其中最重要的部分。HadoopMapReduce并非用于配备高性能CPU和磁盘的计算机,而是一种工作在由多台通用型计算机组成的集群上的,对大规模数据进行分布式处理的框架。9.2.1Hadoop的由来Hadoop将应用程序细分为在集群中任意节点上都可执行的成百上千个工作负载,并分配给多个节点来执行。然后,通过对各节点瞬间返回的信息进行重组,得出最终的回答。虽然存在其他功能类似的程序,但Hadoop依靠其处理的高速性脱颖而出。最早由HDFS、HadoopMapReduce、HBase这三个组件所组成的软件架构,现在也衍生出了多个子项目,其范围也随之逐步扩大。9.2.1Hadoop的由来企业里的数据分析师和市场营销人员过去由于成本、处理时间的限制,而不得不放弃的对大量非结构化数据的处理,只能依赖抽样数据来进行分析。现在,由于Hadoop集群的规模可以很容易地扩展到PB甚至是EB级别,因此可以将分析对象扩展到全部数据的范围。而且,由于处理速度比过去有了飞跃性的提升,现在可以进行若干次重复的分析,也可以用不同的查询来进行测试,从而有可能获得过去无法获得的更有价值的信息。9.2.2Hadoop的优势Hadoop是一个能够对大量数据进行分布式处理的软件框架。Hadoop假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop还是可伸缩的,能够处理PB级数据。此外,使用Hadoop的成本比较低,适用面广。9.2.2Hadoop的优势Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它有以下几个优点:(1)高可靠性。Hadoop按位存储和处理数据。(2)高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。(3)高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。9.2.2Hadoop的优势(4)高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。Hadoop带有用Java语言编写的框架,其上的应用程序也可以使用其他语言编写,比如C++。9.2.2Hadoop的优势PART03分布式处理文件系统是在一个存储设备上存储和组织数据的方法,这个存储设备可以是闪存、DVD和硬盘。文件是存储的原子单位,被文件系统用来存储数据。一个文件系统提供了一个存储在存储设备上的数据逻辑视图,并以树结构的形式展示了目录和文件。操作系统采用文件系统为应用程序来存储和检索数据。每个操作系统支持一个或多个文件系统,例如MicrosoftWindows上的NTFS和Linux上的ext。9.3分布式处理分布式系统是建立在网络之上的软件系统,它具有高度的内聚性和透明性,因此网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统。透明性是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。在分布式数据库系统中,用户感觉不到数据是分布的,无须知道关系是否分割、有无副本、数据存于哪个站点以及事务在哪个站点上执行等。9.3.1分布式系统在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体。系统拥有多种通用的物理和逻辑资源,可以动态分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。系统中存在一个以全局方式管理计算机资源的分布式操作系统,通常对用户来说,分布式系统只有一个模型,在操作系统之上有一层软件中间件负责实现这个模型。例如互联网就是一个典型的分布式系统,在互联网中,所有的一切看起来就好像是一个文档(Web页面)一样。9.3.1分布式系统在计算机网络中,这种统一性、模型以及其中的软件都不存在。用户看到的是实际的机器,计算机网络并没有使这些机器看起来是统一的。如果这些机器有不同的硬件或者不同的操作系统,那么,这些差异对于用户来说都是完全可见的。如果一个用户希望在一台远程机器上运行一个程序,那么,他必须登陆到远程机器上,然后在那台机器上运行该程序。9.3.1分布式系统分布式系统和计算机网络系统的共同点是:多数分布式系统是建立在计算机网络之上的,所以分布式系统与计算机网络在物理结构上是基本相同的。分布式操作系统的设计思想和网络操作系统是不同的,这决定了它们在结构、工作方式和功能上也不同。网络操作系统要求网络用户在使用网络资源时首先必须了解网络资源,网络用户必须知道网络中各个计算机的功能与配置、软件资源、网络文件结构等情况,在网络中如果用户要读一个共享文件时,用户必须知道这个文件放在哪一台计算机的哪一个目录下。9.3.1分布式系统分布式操作系统是以全局方式管理系统资源的,它可以为用户任意调度网络资源,并且调度过程是“透明”的。当用户提交一个作业时,分布式操作系统能够根据需要在系统中选择最合适的处理器,将用户的作业提交到该处理程序,在处理器完成作业后,将结果传给用户。在这个过程中,用户并不会意识到有多个处理器的存在,这个系统就像是一个处理器一样。9.3.1分布式系统一个分布式文件系统作为一个文件系统可以存储分布在集群的节点上的大文件。对于客户端来说,文件似乎在本地上;然而,这只是一个逻辑视图,在物理形式上文件分布于整个集群。这个本地视图展示了通过分布式文件系统存储并且使文件可以从多个位置获得访问。例如Google文件系统(GFS)和Hadoop分布式文件系统(HDFS)。9.3.2分布式文件系统像其他文件系统一样,分布式文件系统对所存储的数据是不可知的,因此能够支持无模式的数据存储。通常来讲,分布式文件系统存储设备通过复制数据到多个位置而提供开箱即用的数据冗余和高可用性,但并不提供开箱即用的搜索文件内容的功能。一个实现了分布式文件系统的存储设备可以提供简单快速的数据存储功能,并能够存储大型非关系型数据集,如半结构化数据和非结构化数据。尽管对于并发控制采用了简单的文件锁机制,它依然拥有快速的读/写能力,从而能够应对大数据的快速特性。9.3.2分布式文件系统对于包含大量小文件的数据集来说,分布式文件系统不是一个很好的选择,因为它造成过多的磁盘寻址行为,降低了总体数据获取速度。此外,在处理大量较小文件时也会产生更多开销,因为在处理每个文件时,且在结果被整个集群同步之前,处理引擎会产生一些专用的进程。由于这些限制,分布式文件系统更适用于数量少、空间大、并以连续方式访问的文件。多个较小的文件通常被合并成一个文件以获得最佳的存储和处理性能。当数据必须以流模式获取而且没有随机读写需求时,会使分布式文件系统获得更好的性能。9.3.2分布式文件系统分布式文件系统存储设备适用于存储原始数据的大型数据集,或者需要归档数据集时。另外,分布式文件系统对需要在相当长的一段时期内在线存储大量数据提供了一个廉价的选择。因为集群可以非常简单地增加磁盘而不需要将数据卸载到像磁带等离线数据存储空间中。9.3.2分布式文件系统并行数据处理就是把一个规模较大的任务分成多个子任务同时进行,目的是减少处理的时间。虽然并行数据处理能够在多个网络机器上进行,但目前来说更为典型的方式是在一台机器上使用多个处理器或内核来完成。图9-3任务被分成子任务,在一台机器的不同处理器上并行执行9.3.3并行与分布式数据处理分布式数据处理与并行数据处理非常相似,二者都利用了“分治”的原理。与并行数据处理不同的是,分布式数据处理通常在几个物理上分离的机器上进行,这些机器通过网络连接构成一个集群。如下图所示,一个任务同样被分为三个子任务,但是这些子任务在三个不同的机器上进行,这三个机器连接到一个交换机。

图9-4分布式数据处理举例9.3.3并行与分布式数据处理大数据导致了数据量的爆发式增长,传统的集中式存储(如NAS或SAN)在容量和性能上都无法较好地满足大数据的需求。因此,具有优秀的可扩展能力的分布式存储成为大数据存储的主流架构方式。分布式存储多采用普通的硬件设备作为基础设施,因此,单位容量的存储成本也得到大大降低。另外,分布式存储在性能、维护性和容灾性等方面也具有不同程度的优势。9.3.4分布式存储分布式存储系统需要解决的关键技术问题包括诸如可扩展性、数据冗余、数据一致性、全局命名空间、缓存等,从架构上来讲,大体上可以将分布式存储分为C/S(客户机/服务器)架构和P2P(点对点)架构两种。当然,也有一些分布式存储中会同时存在这两种架构方式。分布式存储面临的另一个问题,就是如何组织和管理成员节点,以及如何建立数据与节点之间的映射关系。成员节点的动态增加或者离开,在分布式系统中基本上可以算是一种常态。9.3.4分布式存储PART04NoSQL数据库存储技术随着时间的推移持续发展,把存储从服务器内部逐渐移动到网络上。当今对融合式架构的推动把计算、存储、内存和网络放入一个可以统一管理的架构中。在这些变化中,大数据的存储需求彻底地改变了自20世纪80年代末期以来企业信息通信技术所支持的以关系型数据库为中心的观念。其根本原因在于,关系型技术不是一个可以支持大数据的容量的可扩展的方式。更何况,企业通常通过处理半结构化和非结构化数据获取有用的价值,而这些数据通常与关系型方法不兼容。9.4NoSQL数据库大数据促进形成了统一的观念,即存储的边界是集群可用的内存和磁盘存储。如果需要更多的存储空间,横向可扩展性允许集群通过添加更多节点来扩展。这个事实对于内存与磁盘设备都成立,尤其重要的是创新的方法能够通过内存存储来提供实时分析。甚至批量为主的处理速度都由于越来越便宜的固态硬盘而变快了。9.4NoSQL数据库磁盘存储通常利用廉价的硬盘设备作为长期存储的介质,并可由分布式文件系统或数据库实现。图9-5磁盘存储可通过分布式文件系统或数据库实现9.4NoSQL数据库NoSQL数据库是一个非关系型数据库,具有高度的可扩展性、容错性,并且专门设计用来存储半结构化和非结构化数据。NoSQL数据库通常会提供一个能被应用程序调用的基于API的查询接口。NoSQL数据库也支持结构化查询语言(SQL)以外的查询语言,因为SQL是为了查询存储在关系型数据库中的结构化数据而设计的。例如,优化一个NoSQL数据库用来存储XML文件通常会使用XQuery作为查询语言。9.4NoSQL数据库同样,设计一个NoSQL数据库用来存储RDF数据将使用SPARQL来查询它包含的关系。不过,还是有一些NoSQL数据库提供类似于SQL的查询界面。图9-6NoSQL数据库可以提供一个类似于API或SQL-like的查询接口9.4NoSQL数据库下面列举一些NoSQL存储设备与传统RDBMS不一致的主要特性,但并不是所有的NoSQL存储设备都具有这些特性。(1)无模式的数据模型——数据可以以它的原始形式存在。(2)横向扩展而不是纵向扩展——为了获得额外的存储空间,NoSQL可以增加更多的节点,而不是用更好的性能/容量更高的节点替换现有的节点。(3)高可用性——NoSQL建立在提供开箱即用的容错性的基于集群的技术之上。9.4.1主要特征(4)较低的运营成本——许多NoSQL数据库建立在开源的平台上,不需要支付软件许可费。它们通常可以部署在商业硬件上。(5)最终一致性——跨节点的数据读取可能在写入后短时间内不一致。但是,最终所有的节点会处于一致的状态。(6)BASE兼容而不是ACID兼容——BASE兼容性需要数据库在网络或者节点故障时保持高可用性,而不要求数据库在数据更新发生时保持一致的状态。数据库可以处于不一致状态直到最后获得一致性。9.4.1主要特征(7)API驱动的数据访问——数据的访问通常支持基于API的查询,但一些实现可能也提供类SQL查询的支持。(8)自动分片和复制——为了支持水平扩展提供高可用性,NoSQL存储设备自动地运用分片和复制技术,数据集可以被水平分割然后被复制到多个节点。(9)集成缓存——没有必要加入第三方分布式缓存层。9.4.1主要特征(10)分布式查询支持——NoSQL存储设备通过多重分片来维持一致性查询。(11)不同类型设备同时使用——NoSQL存储的使用并没有淘汰传统的RDBMS,支持不同类型的存储设备可以同时使用。即在相同的结构里,可以使用不同类型的存储技术以持久化数据。这对于需要结构化也需要半结构化或非结构化数据的系统开发有好处。9.4.1主要特征(12)注重聚集数据——不像关系型数据库那样对处理规范化数据最为高效,NoSQL存储设备存储非规范化的聚集数据(一个实体为一个对象),所以减少了在不同应用对象和存储在数据库中的数据之间进行连接和映射操作的需要。但是有一个例外,图数据存储设备不注重聚集数据。9.4.1主要特征NoSQL存储设备的出现主要归因于大数据数据集的容量、速度和多样性等3V特征。由于NoSQL数据库能够像随着数据集的进化改变数据模型一样改变模式,基于这个能力,NoSQL存储设备能够存储无模式数据和不完整数据。换句话说,NoSQL数据库支持模式进化。9.4.1主要特征如右图所示,根据不同存储数据的方式,NoSQL存储设备可以被分为四种类型。9.4.1主要特征键-值存储设备以键-值对的形式存储数据,并且运行机制和散列表类似。该表是一个值列表,其中每个值由一个键来标识。值对数据库不透明并且通常以BLOB形式存储。存储的值可以是任何从传感器数据到视频数据的集合。只能通过键查找值,因为数据库对所存储的数据集合的细节是未知的。不能部分更新,更新操作只能是删除或者插入。键-值存储设备通常不含有任何索引,所以写入非常快。基于简单的存储模型,键-值存储设备高度可扩展。由于键是检索数据的唯一方式,为了便于检索,所保存值的类型经常被附在键之后。123_sensor1就是一个这样的例子。9.4.2键-值存储为了使存储的数据具有一些结构,大多数的键-值存储设备会提供集合或桶(像表一样)来放置键-值对。如下图所示,一个集合就可以容纳多种数据格式。一些实现方法为了降低存储空间从而支持压缩值。但是这样在读出期间会造成延迟,因为数据在返回之前需要先被解压。图9-11数据被组织在键-值对中的一个例子9.4.2键-值存储键-值存储设备适用于:·需要存储非结构化数据。·需要具有高效的读写性能。·值可以完全由键确定。·值是不依赖其他值的独立实体。·值有着相当简单的结果或是二进制的。·查询模式简单,只包括插入、查找和删除操作。·存储的值在应用层被操作。键-值存储设备的实例包括Riak、Redis和AmazonDynamoDB。9.4.2键-值存储文档存储设备也存储键-值对。但是,与键-值存储设备不同,存储的值是可以数据库查询的文档。这些文档可以具有复杂的嵌套结构,例如发票。这些文档可以使用基于文本的编码方案,如XML或JSON,或者使用二进制编码方案,如BSON(BinaryJSON)进行编码。9.4.3文档存储像键-值存储设备一样,大多数文档存储设备也会提供集合或桶来放置键-值对。文档存储设备和键-值存储设备之间的区别如下:·文档存储设备是值可感知的。·存储的值是自描述的,模式可以从值的结构或从模式的引用推断出,因为文档已经被包括在值中。·选择操作可以引用集合值内的一个字段。·选择操作可以检索集合的部分值。·支持部分更新,所以集合的子集可以被更新。·通常支持用于加速查找的索引。9.4.3文档存储每个文档都可以有不同的模式,所以,在相同的集合或者桶中可能存储不同种类的文档。在最初的插入操作之后,可以加入新的属性,所以提供了灵活的模式支持。应当指出,文档存储设备并不局限于存储像XML文件等以真实格式存在的文档,它们也可以用于存储包含一系列具有平面或嵌套模式的属性的集合。右图展示了JSON文件如何以文档的形式存储在NoSQL数据库中。图9-12JSON文件存储在文档存储设备中的一个例子9.4.3文档存储文档存储设备适用于:·存储包含平面或嵌套模式的面向文档的半结构化数据。·模式的进化由于文档结构的未知性或者易变性而成为必然。·应用需要对存储的文档进行部分更新。·需要在文档的不同属性上进行查找。·以序列化对象的形式存储应用领域中的对象,例如顾客。·查询模式包含插入、选择、更新和删除操作。文档存储设备的例子包括MongoDB、CouchDB和Terrastore。9.4.3文档存储列簇存储设备像传统RDBMS一样存储数据,但是会将相关联的列聚集在一行中,从而形成列簇。如下图所示,每一列都可以是一系列相关联的集合,被称为超列。图9-13图中加下划线的列表示列簇数据库提供的灵活模式特征,此处每一行可以有不同的列9.4.4列簇存储每个超列可包含任意数量的相关列,这些列通常作为一个单元被检索或更新。每行都包括多个列簇,并且含有不同的列的集合,所以有灵活的模式支持。每行被行键标识。列簇存储设备提供快速数据访问,并带有随机读写能力。它们把列簇存储在不同的物理文件中,这会提高查询响应速度,因为只有被查询的列簇才会被搜索到。9.4.4列簇存储一些列簇存储设备支持选择性地压缩列簇。不对一些能够被搜索到的列簇进行压缩,会让查询速度更快,因为在查找中,那些目标列不需要被解压缩。大多数的实现支持数据版本管理,然而有一些支持对列数据指定到期时间。当到期时间过了,数据会被自动移除。9.4.4列簇存储列簇存储设备适用于:·需要实时的随机读写能力,并且数据以已定义的结构存储。·数据表示的是表的结构,每行包含着大量列,并且存在着相互关联的数据形成的嵌套组。·需要对模式的进化提供支持,因为列簇的增加或者删除不需要在系统停机时间进行。·某些字段大多数情况下可以一起访问,并且搜索需要利用字段的值。9.4.4列簇存储·当数据包含稀疏的行而需要有效地使用存储空间时,因为列簇数据库只为存在列的行分配存储空间。如果没有列,将不会分配任何空间。·查询模式包含插入、选择、更新和删除操作。列簇存储设备包括Cassandra、HBase和AmazonSimpleDB。9.4.4列簇存储图存储设备被用于持久化互联的实体。不像其他的NoSQL存储设备那样注重实体的结构,图存储设备更强调存储实体之间的联系。

图9-14图存储设备存储实体和它们之间的关系9.4.5图存储存储的实体被称作节点(注意不要与集群节点相混淆)也被称为顶点,实体间的联系被称为边。按照RDBMS的说法,每个节点可被认为是一行,而边可表示连接。节点之间通过多条边形成多种类型的链路,每个节点有如键-值对的属性数据,例如顾客可以有ID、姓名和年龄属性。一个节点有多条边,和在RDBMS中含有多个外键是相类似的,但是,并不是所有的节点都需要有相同的边。查询一般包括根据节点属性或者边属性查找互联节点,通常被称为节点的遍历。边可以是单向的或双向的,指明了节点遍历的方向。一般来讲,图存储设备通过ACID兼容性而支持一致性。9.4.5图存储图存储设备的有用程度取决于节点之间的边的数量和类型。边的数量越多,类型越复杂,可以执行的查询的种类就越多。因此,如何全面地捕捉节点之间存在的不同类型的关系很重要。这不仅可用于现有的使用场景,也可以用来对数据进行探索性的分析。图存储设备通常允许在不改变数据库的情况下加入新的节点类型,这也使得可以在节点之间定义额外的连接,以新的关系或者节点体现在数据库中。9.4.5图存储图存储设备适用于:·需要存储互联的实体。·需要根据关系的类型查询实体,而不是实体的属性。·查找互联的实体组。·就节点遍历距离来查找实体之间的距离。·为了寻找模式而进行的数据挖掘。图存储设备的主要例子有Neo4J、InfiniteGraph和OrientDB。9.4.5图存储传统的关系型数据库管理系统(RDBMS)是通过SQL这种标准语言来对数据库进行操作的,而相对地,NoSQL数据库并不使用SQL语言。因此,有时候人们会将其误认为是对使用SQL的现有RDBMS的否定,并将要取代RDBMS,而实际上却并非如此。NoSQL数据库是对RDBMS所不擅长的部分进行的补充,因此应该理解为“NotonlySQL”的意思。NoSQL数据库和传统上使用的RDBMS之间的主要区别见表9-1。9.4.6与RDBMS的主要区别表9-1RDBMS与NoSQL数据库的区别9.4.6与RDBMS的主要区别(1)数据模型与数据库结构。在RDBMS中,数据被归纳为表(Table)的形式,并通过定义数据之间的关系,来描述严格的数据模型。这种方式需要在理解要输入数据的含义的基础上,事先对字段结构做出定义。一旦定义好的数据库结构就相对固定了,很难进行修改。在NoSQL数据库中,数据是通过键及其对应的值的组合,或者是键值对和追加键来描述的,因此结构非常简单,也无法定义数据之间的关系。其数据库结构无需在一开始就固定下来,且随时都可以进行灵活的修改。9.4.6与RDBMS的主要区别(2)数据一致性。在RDBMS中,由于存在ACID(Atomicity=原子性,Consistency=一致性、Isolation=隔离性、Durability=持久性)原则,因此可以保持严密的数据一致性。而NoSQL数据库并不是遵循ACID这种严格的原则,而是采用结果上的一致性(Eventualconsistency),即可能存在临时的、无法保持严密一致性的状态。到底是用RDBMS还是NoSQL数据库,需要根据用途来进行选择,而数据一致性这一点尤为重要。9.4.6与RDBMS的主要区别例如,像银行账户的转入/转出处理,如果不能保证交易处理立即在数据库中得到体现,并严密保持数据一致性的话,就会引发很大的问题。相对地,我们想一想Twitter上增加一个粉丝的情况。粉丝数量从1050人变成1051人,但这个变化即便没有即时反映出来,基本上也不会引发什么大问题。前者这样的情况,适合用RDBMS;而后者这样的情况,则适合用NoSQL数据库。9.4.6与RDBMS的主要区别(3)扩展性。RDBMS由于重视ACID原则和数据的结构,因此在数据量增加的时候,基本上是采取购买更大的服务器这样向上扩展的方法来进行扩容,而从架构方面来看,是很难进行横向扩展的。9.4.6与RDBMS的主要区别此外,由于数据的一致性需要严密的保证,对性能的影响也十分显著,如果为了提升性能而进行非正则化处理,则又会降低数据库的维护性和操作性。虽然通过像Oracle的“真正应用集群”这样能够从多台服务器同时操作数据库的架构,也可以对RDBMS实现横向扩展,但从现实情况来看,这样的扩展最多到几倍的程度就已经达到极限了。除此之外还有一种方法,将数据库的内容由多台应用程序服务器进行分布式缓存,并将缓存配置在RDBMS的前面。9.4.6与RDBMS的主要区别但在大规模环境下,会发生数据同步延迟、维护复杂等问题,并不是一个非常实用的方法。NoSQL数据库则具备很容易进行横向扩展的特性,对性能造成的影响也很小。而且,由于它在设计上就是以在一般通用型硬件构成的集群上工作为前提的,因此在成本方面也具有优势。9.4.6与RDBMS的主要区别(4)容错性。RDBMS可以通过复制将数据在多台服务器上保留副本,从而提高容错性。然而,在发生数据不匹配的情况时,以及想要增加副本时,在维护上的负荷和成本都会提高。NoSQL由于本来就支持分布式环境,大多数NoSQL数据库都没有单一故障点,对故障的应对成本比较低。9.4.6与RDBMS的主要区别可见,NoSQL数据库具备这些特征:数据结构简单、不需要数据库结构定义(或者可以灵活变更)、不对数据一致性进行严格保证、通过横向扩展可实现很高的扩展性等。简而言之,就是一种以牺牲一定的数据一致性为代价,追求灵活性、扩展性的数据库。9.4.6与RDBMS的主要区别PART05NewSQL数据库NoSQL存储设备是高度可扩展的、可用的、容错的,对于读写操作是快速的。但是,它们不提供ACID兼容的RDBMS所表现的事务和一致性支持。根据BASE模型,NoSQL存储设备提供了最终一致性而不是立即一致性。所以它们在达到最终的一致性状态前处于软状态,因此并不适用于实现大规模事务系统。9.5NewSQL数据库进一步发展的NewSQL存储设备结合了RDBMS的ACID特性和NoSQL存储设备的可扩展性与容错性。它们既保留了高层次结构化查询语言SQL查询的方便性,又能提供高性能和高可扩展性,而且还能保留传统的事务操作的ACID特性。NewSQL数据库通常支持符合SQL语法的数据定义与数据操作,对于数据存储使用逻辑上的关系数据模型。由于NewSQL数据库对SQL的支持,与NoSQL存储设备相比,它更容易从传统的RDBMS转化为高度可扩展的数据库。9.5NewSQL数据库NewSQL系统涉及很多新颖的架构设计,例如,可以将整个数据库都在主内存中运行,从而消除掉数据库传统的缓存管理;可以在一个服务器上面只运行一个线程,从而去除掉轻量的加锁阻塞(尽管某些加锁操作仍然需要,并且影响性能);还可以使用额外的服务器来进行复制和失败恢复的工作,从而取代昂贵的事务恢复操作。9.5NewSQL数据库NewSQL可以用来开发有大量事务的OLTP系统,例如银行系统。它们也可以用于实时分析,如运营分析,因为一些实现采用了内存存储。NewSQL数据库的实例包括Clustrix、NimbusDB、VoltDB、NuoDB和InnoDB。9.5NewSQL数据库数字文明与数字治理大数据通识教程第10章杨武剑周苏主编大数据与云计算01与数字化相关的技术02云计算概述03计算虚拟化04网络虚拟化目录/CONTENTS05存储虚拟化06云计算服务形式06大数据与云计算PART01与数字化相关的技术麦肯锡全球研究院(MGI)为大数据给出的定义是:一种规模大到在获取、存储、管理和分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。10.1与数字化相关的技术除了大数据,数字化所依托的还有如下一些主要技术。(1)云计算。是把各种计算资源集合起来,通过软件实现自动化管理,只需要很少的人参与,就能让资源被快速提供,也就是说,计算能力作为一种商品,可以在互联网上流通,就像水、电、煤一样,可以方便地按需取用,且价格较为低廉。10.1与数字化相关的技术(2)5G。即第五代移动通信技术,是4G、3G、2G的延伸,有传输速度更快,时滞更短(接口延时在1ms左右)、容量更大、系统协同化和智能化水平提升等特点。主要的应用场景如:车联网和自动驾驶、外科远程手术、VR游戏、物联网等场景。10.1与数字化相关的技术(3)工业互联网。本质和核心是通过工业互联网平台,把设备、生产线、工厂、供应商、产品和客户紧密地联结整合起来。可以形成跨设备、跨系统、跨厂区、跨地区的互联互通,从而提高效率,推动整个制造服务体系化智能化。10.1与数字化相关的技术(4)物联网。即“万物相连的互联网”,是在互联网的基础上延伸和扩展的网络,是将各种信息传感设备与互联网结合起来形成一个巨大的网络,实现在任何时间、任何地点,人、机、物的互联互通。物联网通过视频识别、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品和互联网相连接,进行信息交换和通信,以实现对物品的智能识别、定位、跟踪、监控和管理。10.1与数字化相关的技术(5)区块链。本质是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每个数据块都包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链是分布式数据存储、点对点传输、共识传输、共识机制、加密算法等计算机技术的新型应用模式。区块链的特点:去中心化、开放性、独立性、安全性、匿名性。10.1与数字化相关的技术(6)人工智能。其主要目标是使机器能够胜任一些通常需要人类智能才完成的复杂工作。它是一门跨学科的科学,如机器学习、计算机视觉等科学和技术,还涉及心理学和哲学等人文学科。该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。10.1与数字化相关的技术PART02云计算概述所谓基础设施,是指在IT环境中,为具体应用提供计算、存储、互联、管理等基础功能的软硬件系统。在信息技术发展的早期,IT基础设施往往由一系列昂贵的,经过特殊设计的软硬件设备组成,存储容量有限,系统之间也没有高效的数据交换通道,应用软件直接运行在硬件平台上。在这种环境中,用户不容易、也没有必要去区分哪些部分属于基础设施,哪些部分是应用软件。然而,随着对新应用的需求不断涌现,IT基础设施发生了翻天覆地的变化。10.2云计算概述摩尔定律在过去的几十年书写了奇迹。在这奇迹的背后,是越来越廉价、越来越高效的计算能力。有了强大的计算能力,人类可以处理更为庞大的数据,而这又带来对存储的需求。再之后,就需要把并行计算的理论搬上台面,更大限度地挖掘IT基础设施的潜力。于是,网络也蓬勃发展起来。由于硬件已经变得前所未有的复杂,专门管理硬件资源、为上层应用提供运行环境的系统软件也顺应历史潮流,迅速发展壮大。10.2.1云计算定义基于大规模数据的系列应用正在悄然推动着IT基础设施的发展,尤其是大数据对海量、高速存储的需求。为了对大规模数据进行有效的计算,必须最大限度地利用计算和网络资源。计算虚拟化和网络虚拟化要对分布式、异构的计算、存储、网络资源进行有效的管理。10.2.1云计算定义所谓“云计算”是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机和其他设备。或者,云计算是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算为我们提供了跨地域、高可靠、按需付费、所见即所得、快速部署等能力,这些都是长期以来IT行业所追寻的。随着云计算的发展,大数据正成为云计算面临的一个重大考验。10.2.1云计算定义云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。云计算是继1980年代大型计算机到客户端-服务器的大转变之后的又一种巨变。用户不再需要了解“云”中基础设施的细节,不必具有相应的专业知识,也无需直接进行控制。云计算描述了一种基于互联网的新的IT服务增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展,而且经常是虚拟化的资源,它意味着计算能力也可作为一种商品通过互联网进行流通。10.2.1云计算定义美国国家标准与技术研究院(NIST)的定义是:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。10.2.1云计算定义云计算是分布式计算、并行计算、网格计算、效用计算、网络存储、虚拟化、负载均衡等传统计算机和网络技术发展融合的产物。其中,网格计算是由一群松散耦合的计算机组成的一个超级虚拟计算机,常用来执行一些大型任务;效用计算是IT资源的一种打包和计费方式,比如按照计算、存储分别计量费用,像传统的电力等公共设施一样;自主计算是具有自我管理功能的计算机系统。事实上,许多云计算部署依赖于计算机集群(但与网格的组成、体系结构、目的、工作方式大相径庭),也吸收了自主计算和效用计算的特点。10.2.1云计算定义大数据解决方案的构架离不开云计算的支撑。支撑大数据及云计算的底层原则是一样的,即规模化、自动化、资源配置、自愈性,这些都是底层的技术原则。也可以说,大数据是构建在云计算基础架构之上的应用形式,因此它很难独立于云计算架构而存在。云计算下的海量存储、计算虚拟化、网络虚拟化、云安全及云平台就像支撑大数据这座大楼的钢筋水泥。只有好的云基础架构支持,大数据才能立起来,站得更高。10.2.2云基础设施虚拟化是云计算所有要素中最基本,也是最核心的组成部分。和云计算在最近几年才出现不同,虚拟化技术的发展其实已经走过了半个多世纪(1956)。在虚拟化技术的发展初期,IBM是主力军,它把虚拟化技术用在了大型机领域。1964年,IBM设计了名为CP-40的新型操作系统,实现了虚拟内存和虚拟机。到1965年,IBM推出了System/360Model67和TSS分时共享系统,允许很多远程用户共享同一高性能计算设备的使用时间。10.2.2云基础设施1972年,IBM发布了用于创建灵活大型主机的虚拟机技术,实现了根据动态需求快速而有效地使用各种资源的效果。作为对大型机进行逻辑分区以形成若干独立虚拟机的一种方式。这些分区允许大型机进行“多任务处理”——同时运行多个应用程序和进程。由于当时大型机是十分昂贵的资源,虚拟化技术起到了提高投资利用率的作用。利用虚拟化技术,允许在一台主机上运行多个操作系统,让用户尽可能地充分利用昂贵的大型机资源。其后,虚拟化技术从大型机延伸到UNIX小型机领域。10.2.2云基础设施1998年,VMware公司成立,这是在x86虚拟化技术发展史上很重要的一个里程碑。VMware发布的第一款虚拟化产品VMwareVirtualPlatform,通过运行在WindowsNT上的VMware来启动Windows95,开启了虚拟化在x86服务器上的应用。10.2.2云基础设施相比于大型机和小型机,x86服务器和虚拟化技术并不是兼容得很好。但是VMware针对x86平台研发的虚拟化技术不仅克服了虚拟化技术层面的种种挑战,其提供的VMware基础设施更是极大地方便了虚拟机的创建和管理。VMware对虚拟化技术的研究,开创了虚拟化技术的x86时代,在很长一段时间内,服务器虚拟化市场都是VMware一枝独秀。虚拟化技术中最核心的部分分别是计算虚拟化、存储虚拟化和网络虚拟化。10.2.2云基础设施PART03计算虚拟化计算虚拟化,又称平台虚拟化或服务器虚拟化,它的核心思想是使在一个物理计算机上同时运行多个操作系统成为可能。在虚拟化世界中,我们通常把提供虚拟化能力的物理计算机称为宿主机,而把在虚拟化环境中运行的计算机称为客户机。宿主机和客户机虽然运行在同样的硬件上,但是它们在逻辑上却是完全隔离的。10.3计算虚拟化这些虚拟计算机(以及物理计算机)在逻辑上是完全隔离的,拥有各自独立的软、硬件环境。讨论计算虚拟化,所涉及的计算机仅包含构成一个最小计算单位所需的部件,其中包括处理器(CPU)和内存,不包含任何可选的外接设备(例如,主板、硬盘、网卡、显卡、声卡等)。10.3计算虚拟化计算虚拟化是大数据处理不可缺少的支撑技术,其作用体现在提高设备利用率、提高系统可靠性、解决计算单元管理问题等方面。将大数据应用运行在虚拟化平台上,可以充分享受虚拟化带来的管理红利。例如,虚拟化可以支持对虚拟机的快照(Snapshot)操作,从而使得备份和恢复变得更加简单、透明和高效。此外,虚拟机还可以根据需要动态迁移到其他物理机上,这一特性可以让大数据应用享受高可靠性和容错性。10.3计算虚拟化虚拟机(VirtualMachine,VM)是对物理计算机功能的一种部分或完全的软件模拟,其中虚拟设备在硬件细节上可以独立于物理设备。虚拟机的实现目标通常是在其中不经修改地运行那些原本为物理计算机设计的程序。通常情况下,多台虚拟机可以共存于一台物理机上,以期获得更高的资源使用率以及降低整体的费用。虚拟机之间是互相独立、完全隔离的。

图10-8VMware虚拟化10.3计算虚拟化虚拟机管理程序(VMM)是在宿主机上提供虚拟机创建和运行管理的软件系统或固件。虚拟机管理程序可以归纳为原生的和托管的两个类型。前者直接运行在硬件上去管理硬件和虚拟机,常见的有XenServer、KVM、VMwareESX/ESXi和微软的Hyper-V。后者则运行在常规的操作系统上,作为二层的管理软件存在,而客户机相对硬件来说则是在第三层运行,常见的有VMware工作站和Virtual盒子。10.3计算虚拟化PART04网络虚拟化网络虚拟化,简单来讲是指把逻辑网络从底层的物理网络分离开来。网络虚拟化涉及的技术范围相当宽泛,包括网卡的虚拟化、虚拟接入技术、覆盖网络交换,以及软件定义的网络等,这个概念的产生已经比较久了。VLAN、VPN、VPLS等都可以归为网络虚拟化的技术。近年来,云计算的浪潮席卷IT界。几乎所有的IT基础构架都在朝着云的方向发展。10.4网络虚拟化在云计算的发展中,虚拟化技术一直是重要的推动因素。作为基础构架,服务器和存储的虚拟化已经发展得有声有色,而同作为基础构架的网络却还是一直沿用老的套路。在这种环境下,网络确实期待一次变革,使之更加符合云计算和互联网发展的需求。在云计算的大环境下,网络虚拟化的定义没有变,但是其包含的内容却大大增加了(例如动态性、多租户模式等)。10.4网络虚拟化多个虚拟机共享服务器中的物理网卡,需要一种机制既能保证I/O的效率,又能保证多个虚拟机对用物理网卡共享使用。I/O虚拟化的出现就是为了解决这类问题。I/O虚拟化包括了从CPU到设备的一揽子解决方案。10.4.1网卡虚拟化从CPU的角度看,要解决虚拟机访问物理网卡等I/O设备的性能问题,能做的就是直接支持虚拟机内存到物理网卡的DMA操作。Intel的VT-d技术及AMD的输入/输出内存管理单元技术通过DMA重新映射机制来解决这个问题。DMA重新映射机制主要解决了两个问题,一方面为每个VM创建了一个DMA保护域并实现了安全的隔离,另一方面提供一种机制是将虚拟机的物理地址翻译为物理机的物理地址。10.4.1网卡虚拟化从虚拟机对网卡等设备访问角度看,传统虚拟化的方案是虚拟机通过虚拟机管理程序来共享地访问一个物理网卡,虚拟机管理程序需要处理多虚拟机对设备的并发访问和隔离等。具体的实现方式是通过软件模拟多个虚拟网长(完全独立于物理网卡),所有的操作都在CPU与内存进行。这样的方案满足了多租户模式的需求,但是牺牲了整体的性能,因为虚拟机管理程序很容易形成一个性能瓶颈。为了提高性能,一种做法是虚拟机绕过虚拟机管理程序直接操作物理网卡,这种做法通常称为PCI直通,VMware、XEN和KVM都支持这种技术。但这种做法的问题是虚拟机通常需要独占一个PCI插槽,不是一个完整的解决方案,成本较高且扩展性不足。10.4.1网卡虚拟化最新的解决方案是物理设备(如网卡)直接对上层操作系统或虚拟机管理程序提供虚拟化的功能,一个以太网卡可以对上层软件提供多个独立的虚拟的PCIe设备并提供虚拟通道来实现并发访问;这些虚拟设备拥有各自独立的总线地址,从而可以提供对虚拟机I/O的DMA支持。这样一来,CPU得以从繁重的I/O中解放出来,能够更加专注于核心的计算任务(例如大数据分析)。这种方法也是业界主流的做法和发展方向,目前已经形成了标准。10.4.1网卡虚拟化在虚拟化早期阶段,由于物理网卡并不具备为多个虚拟机服务的能力,为了将同一物理机上的多台虚拟机接入网络,引入了一个虚拟交换机的概念。通常也称为软件交换机,以区别于硬件实现的网络交换机。虚拟机通过虚拟网片接入到虚拟交换机,然后通过物理网卡外连到外部交换机,从而实现了外部网络接入,例如VMware虚拟交换机就属于这一类技术。图10-9VMware虚拟交换机结构图10.4.2虚拟交换机这样的解决方案也带来一系列的问题。首先,一个很大的顾虑就是性能问题,因为所有的网络交换都必须通过软件模拟。研究表明:一个接入10~15台虚拟机的软件交换机,通常需要消耗10%~15%的主机计算能力;随着虚拟机数量的增长,性能问题无疑将更加严重。其次,由于虚拟交换机工作在二层,无形中也使得二层子网的规模变得更大。更大的子网意味着更大的广播域,对性能和管理来说都是不小的挑战。最后,由于越来越多的网络数据交换在虚拟交换机内进行,传统的网络监控和安全管理工具无法对其进行管理,也意味着管理和安全的复杂性大大增加了。10.4.2虚拟交换机在传统的服务器虚拟化方案中,从虚拟机的虚拟网卡发出的数据包在经过服务器的物理网片传送到外部网络的上联交换机后,虚拟机的标识信息被屏蔽掉了,上联交换机只能感知从某个服务器的物理网卡流出的所有流量,而无法感知服务器内某个虚拟机的流量,这杆就不能从传统网络设备层面来保证服务质量和安全隔离。虚拟接入要解决的问题是要把虚拟机的网络流量纳入传统网络交换设备的管理之中,需要对虚拟机的流量做标识。10.4.3接入层虚拟化虚拟网络并不是全新的概念,事实上我们熟知的VLAN就是一种已有的方案。VLAN的作用是在一个大的物理二层网络里划分出多个互相隔离的虚拟三层网络,这个方案在传统的数据中心网络中得到了广泛的应用。这里就引出了虚拟网络的第一个需求:隔离;VLAN虽然很好地解决了这个需求。然而由于内在的缺陷,VLAN无法满足第二个需求,即可扩展性(支持数量庞大的虚拟网络)。随着云计算的兴起,一个数据中心需要支持上百万的用户,每个用户需要的子网可能也不止一个。在这样的需求背景下,VLAN已经远远不敷使用,需要重新思考虚拟网络的设计与实现。10.4.4覆盖网络虚拟化当虚拟数据中心开始普及后,其本身的一些特性也带来对网络新的需求。物理机的位置一般是相对固定的,虚拟化方案的一个很大的特性在于虚拟机可以迁移。当迁移发生在不同网络、不同数据中心之间时,对网络产生了新的要求,比如需要保证虚拟机的IP在迁移前后不发生改变,需要保证虚拟机内运行的应用程序在迁移后仍可以跨越网络和数据中心进行通信等。这又引出了虚拟网络的第三个需求:支持动态迁移。10.4.4覆盖网络虚拟化覆盖网络虚拟化就是应以上需求而生的,它可以更好地满足云计算和下一代数据中心的需求,它为用户虚拟化应用带来了许多好处(特别是对大规模的、分布式的数据处理),包括:(1)虚拟网络的动态创建与分配;(2)虚拟机的动态迁移(跨子网、跨数据中心);(3)一个虚拟网络可以跨多个数据中心;(4)将物理网络与虚拟网络的管理分离;(5)安全(逻辑抽象与完全隔离)。10.4.4覆盖网络虚拟化OpenFlow和SDN(软件定义网络)尽管不是专门为网络虚拟化而生,但是它们带来的标准化和灵活性却给网络虚拟化的发展带来无限可能。OpenFlow起源于斯坦福大学的CleanSlate项目组,其目的是要重新发明因特网,旨在改变现有的网络基础架构。2006年,斯坦福的学生马丁·卡萨多领导的Ethane项目试图通过一个集中式的控制器,让网络管理员可以方便地定义基于网络流的安全控制策略,并将这些安全策略应用到各种网络设备中,从而实现对整个网络通信的安全控制。10.4.5软件定义网络(SDN)受此项目启发,研究人员发现如果将传统网络设备的数据转发和路由控制两个功能模块相分离,通过集中式的控制器以标准化的接口对各种网络设备进行管理和配置,这将为网络资源的设计、管理和使用提供更多的可能性,从而更容易推动网络的革新与发展。10.4.5软件定义网络(SDN)OpenFlow可能的应用场景包括:(1)校园网络中对实验性通信协议的支持;(2)网络管理和访问控制;(3)网络隔离和VLAN;(4)基于WiFi的移动网络;(5)非IP网络;(6)基于网络包的处理。10.4.5软件定义网络(SDN)PART05存储虚拟化存储虚拟化是一种贯穿于整个IT环境、用于简化本来可能会相对复杂的底层基础架构的技术。存储虚拟化的思想是将资源的逻辑映像与物理存储分开,从而为系统和管理员提供一幅简化、无缝的资源虚拟视图。10.5存储虚拟化对于用户来说,虚拟化的存储资源就像是一个巨大的“存储池”,用户不会看到具体的磁盘、磁带,也不必关心自己的数据经过哪一条路径通往哪一个具体的存储设备。

图10-10异构环境构建存储虚拟化10.5存储虚拟化从管理的角度来看,虚拟存储池是采取集中化的管理,并根据具体的需求把存储资源动态地分配给各个应用。值得特别指出的是,利用虚拟化技术,可以用磁盘阵列模拟磁带库,为应用提供速度像磁盘一样快、容量却像磁带库一样大的存储资源,这就是当今应用越来越广泛的虚拟磁带库,在当今企业存储系统中扮演着越来越重要的角色。10.5存储虚拟化将存储作为池子一样,存储空间如同一个流动的池子的水一样,可以任意地根据需要进行分配。通过将一个(或多个)目标服务或功能与其它附加的功能集成,统一提供有用的全面功能服务。典型的虚拟化包括如下一些情况:屏蔽系统的复杂性,增加或集成新的功能,仿真、整合或分解现有的服务功能等。虚拟化是作用在一个或者多个实体上的,而这些实体则是用来提供存储资源及服务的。10.5存储虚拟化PART06云计算服务形式云计算按照服务的组织方式不同,有公有云、私有云、混合云之分。公有云向所有人提供服务,典型的公有云提供商例如阿里云、腾讯云等,人们可以用相对低廉的价格方便地使用虚拟主机服务。私有云往往只针对特定客户群提供服务,比如一个企业内部IT可以在自己的数据中心搭建私有云,并向企业内部提供服务。也有部分企业整合了内部私有云和公有云,统一交付云服务,这就是混合云。10.6云计算服务形式云计算包括以下几个层次的服务:基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)。这里,分层体系架构意义上的“层次”IaaS、PaaS和SaaS分别在基础设施层、软件开放运行平台层和应用软件层实现。

图10-11IaaS和PaaS都脱胎于SaaS10.6.1云计算的服务层次IaaS(基础设施即服务):消费者通过因特网可以从完善的计算机基础设施获得服务。IaaS通过网络向用户提供计算机(物理机和虚拟机)、存储空间、网络连接、负载均衡和防火墙等基本计算资源;用户在此基础上部署和运行各种软件,包括操作系统和应用程序。例如,通过亚马逊的AWS,用户可以按需定制所要的虚拟主机和块存储等,在线配置和管理这些资源。10.6.1云计算的服务层次PaaS(平台即服务):实际上是指将软件研发的平台作为一种服务,以SaaS的模式提交给用户。因此,PaaS也是SaaS模式的一种应用。但是,PaaS的出现可以加快SaaS的发展,尤其是加快SaaS应用的开发速度。平台通常包括操作系统、编程语言的运行环境、数据库和Web服务器,用户在此平台上部署和运行自己的应用。用户不能管理和控制底层的基础设施,只能控制自己部署的应用。目前常见的PaaS提供商有CloudFoundry、谷歌的GAE等。10.6.1云计算的服务层次SaaS(软件即服务):是一种通过因特网提供软件的模式,用户无需购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动,例如邮件服务、数据处理服务、财务管理服务等。10.6.1云计算的服务层次DaaS(数据即服务):是继IaaS、PaaS、SaaS之后又一个新的服务概念,指数据为决策提供依据,数据可以转化为财富。DaaS是一个跨越大数据基础设施和应用的领域。过去的公司一般先获得

温馨提示

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

评论

0/150

提交评论