-
Notifications
You must be signed in to change notification settings - Fork 0
计算机系统结构(2月5日)
云计算研究与实践
云计算N种说法:基于互联网的计算,是虚拟化、网格计算、分布式计算、公共计算、WEB2.0、SaaS等众多新技术的融合,等等
一个概念,多种表述:从事云计算研究的人员具有不同背景(互联网服务、网格计算、软件工程、数据库等),他们从不同角度(业务、应用、技术、平台等)来看待云计算:支撑云计算的使能技术(enabling technology)是多种多样的,并且这些技术仍在不断发展变化;云计算的应用规模还不足以使其概念人人皆知;媒体对云计算铺天盖地的宣传进一步模糊了其本质;每家企业和机构对云计算及其前景的解析都或多或少地结合了企业自身的业务方向和现实利益
云计算本质上是一种新的提供资源按需租用的服务模式,是一种新型的互联网数据中心(Internet Data Center,IDC)业务
云计算业务和传统IDC业务的相似点:
1、业务运营模式相似。均是提供IT基础设施资源的租用,盈利模式也以收取租用费为主
2、目标客户相似。主要目标客户均是ICP以及大量无法自行建立数据中心的中小企业客户
3、业务运营需要的基础条件相似。都需要建设一定规模的数据中心
云计算业务与传统IDC业务的差别:
1、租用资源范围差别。云计算业务中,提供租用的资源范围广泛延伸,不仅是服务器、带宽,还可以包括存储系统、系统软件平台、应用软件和服务等
2、服务能力差别。云计算业务提供“弹性”的按需扩展的资源租用服务
3、资源透明性差别。在云计算业务中,用户并不需要了解资源的物理信息
云计算包括云端和客户端。云端是一个庞大的资源池,有计算机、存储器、软件等,它通过Internet对外提供按需服务。客户端通过Internet发请求给云端,云端根据请求提供服务。用户无需了解提供这种服务的底层基础设施,也无需去拥有和控制
有了云计算,广大用户无需自购软件、硬件,甚至无需知道是谁提供的服务,只关注自己真正需要什么样的资源或者得到什么样的服务
三种形式云:
基础设施云 IaaS:用户将部署处理器、存储系统、网络及其他基本的计算资源,并按自己的意志运行操作系统和应用程序等软件 (硬件)
平台云 PaaS:用户采用提供商支持的编程语言和工具编写好应用程序,然后放到云计算平台上运行 (硬件+软件)
应用云 SaaS:提供商在云计算设施上运行程序,用户通过各种客户端设备的瘦客户界面(如网页浏览器、基于网页的电子邮件)使用这些应用程序 (软件)
云存储系统MeePo:个人空间(可离线使用);社区空间(1TB初始社区空间);公共社区(系统自建社区)
实现文件数据的存储和共享,将网络资源与本地无缝集成
根据不同的需求采用不同的缓存策略,增强用户体验
云计算系统NOVA:虚拟化集群,自动配置用户所需要的环境
游戏云:提供现有大型3D游戏的网络在线发布与在线操控关键技术,显著扩展在线游戏的受众范围
1、可以在不支持3D游戏的客户端设备上(除了便携式设备外,还包括显卡能力较弱的PC与笔记本电脑)支持此类游戏
2、可以在原先不支持现有PC游戏的客户端设备上(尤其是便携式设备)支持游戏操控
3、提供统一的各类游戏的发布与运营平台
手机访问云端
移动云计算平台
移动互联网是未来网络计算的核心
三个基本限制:1、网络终端的安全性和可管理性问题(设备的更换和丢失频繁;用户不具备计算机使用经验)
解决办法:数据存储在云上,更加可靠地存放、搜索与读取;利用云计算技术保证系统的安全性与管理性
2、电池容量(有限电池容量使得移动终端本身的功能和性能受到限制,无法直接运行PC上的传统应用程序)
解决办法:计算放到云上执行,扩展移动终端能力,降低功耗
3、网络的稳定性(无线网络所固有的连接断续、带宽震荡问题)
安全的数据中心
云存储:1、数据安全,不能丢(备份);2、数据不能给别人看到(加密、隔离等)
容灾云
大数据研究与实践
从系统结构角度
大数据是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合(维基百科定义)
4V:Volume(体量巨大)、Velocity(速度极快)、Variety(模态多样)、Veracity(真伪难辨)
当数据的规模和性能要求成为数据管理分析系统的重要设计和决定因素时,这样的数据就被称为大数据
--不是简单地以数据规模来界定大数据,要考虑数据查询与分析的复杂程度
以目前计算机硬件的发展水平看:
针对简单查询(如关键字搜索),数据量为TB至PB级时可称为大数据
针对复杂查询(如数据挖掘),数据量为GB至TB级时可称为大数据
大数据两个基本特征不同于传统数据集:1、大数据不一定存储在固定的数据库,而是分布在不同地方的网络空间;2、大数据以半结构化和非结构化数据为主,具有较高的复杂性,
“池塘捕鱼”和“大海捕鱼”:
“池塘捕鱼”代表着传统数据库时代的数据管理方式
“大海捕鱼”则对应着大数据时代的数据管理方式
鱼是待处理的数据
捕鱼环境条件的变化导致了捕鱼方式的根本性差异
1、数据规模:池塘和大海最容易发现的区别是规模,池塘规模相对较小,即便是先前认为比较大的池塘,比如VLDB(Very Large Database)和大海XLDB(Extremely Large Database)相比仍旧偏小,池塘的处理对象通常是以MB为基本单位,而大海则常常以GB、甚至是TB、PB为基本处理单位
2、数据类型:过去的池塘中,数据的种类单一,往往仅仅有一种或少数几种,这些数据又以结构化数据为主,而在大海中,数据的种类繁多,数以千计,而这些数据又包含着结构化、半结构化以及非结构化的数据,并且半结构化和非结构化数据所占份额越来越大
3、模式(Schema)和数据的关系:传统的数据库都是先有模式,然后才会产生数据。这就好比是先选好合适的池塘,然后才会向其中投放适合在该池塘环境生长的鱼。而大数据时代很多情况下难以预先确定模式,模式只有在数据出现之后才能确定,且模式随着数据量的增长处于不断的演变之中。这就好比先有少量的鱼类,随着时间推移,鱼的种类和数量都在不断地增长。鱼的变化会使大海的成分和环境处于不断的变化之中
4、处理对象:在池塘中捕鱼,鱼仅仅是其捕捞对象,而在大海中,鱼除了是捕捞对象之外,还可以通过某些鱼的存在来判断其他种类的鱼是否存在。也就是说传统数据库中数据仅作为处理对象。而在大数据时代,要将数据作为一种资源来辅助解决其他诸多领域的问题
5、处理工具:捕捞池塘中的鱼,一种渔网或少数几种基本就可以应对,也就是所谓的One Size Fits All。但是在“大海”中,不可能存在一种渔网能够捕获所有的鱼类,也就是说No Size Fits All。
大数据涉及诸多不同的领域:天文、气象、基金、医学、经济、物理等
大数据价值:1、科研价值,数据驱动的研究将是第四种科学研究范式;2、经济价值;3、工业价值;4、社会价值;5、其它价值
战略意义:大数据的深度资源挖掘与价值利用是国家战略,从深空+深海到深网
产业价值:促进工业与信息产业的生产效率提升,未来产业竞争的核心要素,研究共性问题
现实需求:感知现在,历史数据与当前数据的融合,潜在线索与模式的挖掘,事件、群体与社会发展状态的感知
预测未来:全量数据、流式数据、离线数据的关联分析,态势与效应的判定与调控,揭示事物发展的演变规律,进而对事物发展趋势进行预测
美国的大数据规划——大数据上升为国家意志
2012年3月29日,美国联邦政府整合6个部门宣布2亿美元的“Big Data Research and Development Initiative”
-促进采集、存储、维护、管理、分析和共享海量数据的核心技术
-利用以上技术来加速科学与工程发现的步伐,强化国家安全,改变教育和学习
-培养开发和使用大数据技术的人力资源
欧盟的大数据规划——基础设施是先导
Horizon 2020——The Framework Programming for Research and Innovation 面向大数据的数据信息化基础设施(E-Infrastructure)是优先资助领域
GRDI 2020——Global Research Data Infrastructure 建立针对科研大数据的基础设施,实现数据管理系统、数字数据图书馆、研究图书馆、数据工具和研究团体的整合
FP7 call 8 Intelligent Information Management——Big Data 预算5千欧元,2012-1-17截止,目标:1、提升发现、分析、开采、使用大数据及其基础设施的能力;2、通过对大数据收集与分析创造更大价值;3、探索基于大规模互联数据资源与专用基础设施的新型科学研究;4、面向大数据的人力资源开发
目前大数据的规模:
IDC公司发布的数字宇宙研究报告称:全球信息总量每两年就会增长一倍,2011年全球被创建和被复制的数据总量为1.8ZB(10的21次方)
IDC认为,到下一个十年(2020年),全球所有IT部门拥有服务器的总量将会比现在多出10倍,所管理的数据将会比现在多出50倍,预计到2020年,全球将总共拥有35ZB的数据量
2011年企业创造、采集、管理和储存信息的成本已经下降到2005年的1/6,而同期企业关于数据的总投资自2005年以来却反而上升了50%
数据成本的下降助推了数据量的增长,而新的数据源和数据采集技术的出现则大大增加了未来数据的类型,数据类型的增加导致现有数据空间维度增加,极大地增加了未来大数据的复杂度
大数据特点:
1、收集的数据还没有实现高度共享和深度利用
2、超大规模:为保证可靠性,需要存储数据副本,实际存储的数据量数倍于净数据量
3、时空属性:包含时间与位置信息
4、模糊高维:数据未必精确和完整:传感器误差,网络中断...
5、数据维度高:例如一次体检可以得到数百项生命体征数据
清华大学大数据研究实践
关键问题及技术:
1、大数据获取、表示及传输
2、大数据存储 HDFS/GFS/MooseFS
3、大数据处理 Hadoop/MR、Spark、Dryad、Pregel/Hama
4、大数据查询/分析 Hive、GraphLib、MLBase、Shark、DryadLINQ
大数据存储四个要求:高可用(数据能够随时访问,不丢失);成本低(对磁盘容量要求低);性能(访问速度要快);低开销(对CPU,网络资源占用少)
优先级:由于IO的速度远低于CPU和网络,优先级应为 高可用>成本低>性能>低开销 高可用和低成本是两个主要目标
如何在保证数据高可用性的同时,又最小化存储容量需求
这个问题可以简单抽象为:给定F个文件,存储在P台机器上,每台机器有M块硬盘,每块硬盘的容量为C字节,如何存储这些文件,使得在2块硬盘或两台机器故障的情况下,系统仍然能够恢复出所有F个文件的内容,并使得所占用的存储容量最小
变“大数据”为“小数据”:
1、数据无处不在,但许多数据是重复的或者没有价值,未来的任务主要不是获取越来越多的数据,而是数据的去冗分类、去粗取精,从数据中挖掘知识
2、数据量大到一定程度,数据压缩就必不可少。去重、压缩和归档技术是大数据处理技术中不可或缺的组成部分
3、大数据有简单和复杂之分,个体间联系很少,只是个体数量庞大的大数据问题并不难解决:组合爆炸的困难产生于个体之间的联系,社会网络的复杂性来源于社会联系。小世界也会产生大数据
高效主存储删冗系统构建方法:
什么是删冗(Data Deduplication):一种数据精减方法(Data Reduction),将重复数据以指针代替
将数据写入硬盘时,先到硬盘中看一看是否有一样的,如果有一样的,就不存入,而是做一个指针
只存差异的数据
可能的应用场景:
1、云存储领域:多个用户共享同一存储,重复数据出现的概率极大提高;
2、高性能计算领域:每轮计算产生的数据量极大,且有很大相似性;
3、网络社区,网络游戏等Internet服务领域,数据重复出现的概率极大
4、网络邮件系统:相同的邮件数量非常大,比如垃圾邮件和频繁转发的邮件等
5、数据库应用领域:许多用户数据和用户信息均可能有相似之处
现有大数据存储技术:
1、分布式文件系统
GFS、HDFS、MooseFS等,使用多副本技术提高数据的可用性和性能,当一个副本失效,系统自动进行数据的重分布,尽快恢复成3个副本,多副本不仅带来可用性上的好处,也带来了性能上的好处
缺点:需要3X的存储容量,存储效率低,成本高
2、分布式RAID
Garth Gibson等提出,并在Hadoop中实现了原型,将RAID的思想扩展到网络连接的服务器上,分布式RAID6的效果是在典型负载下,以1.3X左右的容量获得容2个错的能力
提出异步编码,即对新加入的文件,不马上进行RAID编码,而是先进行多副本拷贝
缺点:对常见的单点故障,数据恢复开销大
3、冗余删除系统
大数据的高效可靠存储解决方法:
分布式RAID和冗余删除的简单组合不能解决问题,两个技术在很多设计决策方面有冲突:1、在块大小的选取;2、块长是否可变;3、编码时机;4、编码范围;5、数据块的摆放
系统化地将数据可用性和冗余删除技术统一考虑:容2个错,容量需求仅为0.9X
大数据处理平台:
关系数据库曾经是万能的,它具有强大的知识表达能力;能够方便地为各种对象以及对象之间的联系设计逻辑模型;关系代数理论十分完备,并且易于实现;支持结构化查询语言,让用户无需了解数据库的实现,它重视了1、关系数据模型功能的完善;2、实现原子性、一致性、分离性和持久性(ACID);3、优化并发访问性能;但是它没有重视:1、设计容错的并行化执行引擎;2、对“一次写多次读”的数据进行存储结构优化;3、数据规模增大导致查询执行性能差的问题
大数据时代关系数据库的困境:
实现关系数据模型理论的全部内容,同时对所有查询做到高效执行,几乎是不可能的。1、同样的查询,多种执行方式,如何优化执行?2、数据与查询在变化,不存在普适的物理存储结构和查询优化方法;3、数据规模增大,原来高效的算法会变得低效;4、实现事务处理要求的原子性、一致性、分离性和持久性(ACID)的开销巨大
能够并行化并不意味着高可扩展性,复杂分析查询,1个节点1000个小时查询完成,10个节点100个小时查询完成,100个节点10个小时是否查询完成,就不一定了,因为,节点一大,节点失效、网络中断将成为常态,在执行过程中出错,传统的并行数据库将重新执行整条查询,可能永远无法完成查询
社交网络-Volume、velocity、variety、
社交网络是典型的大数据分问题,分析的方法是图算法,局部性、大数据量和大计算量对计算机系统提出了挑战,计算机系统研究者将通过编程抽象、数据存储和运行时系统三个方面的结合来面对这些挑战