云计算系统中运用了很多技术, 其中以编程模型技术、海量数据分布存储技术、海量数据管理技术、虚拟化技术、可扩展的并行计算技术和高可靠的系统技术最为关键。
1.编程模型技术
云计算必须保证后台复杂的并行执行和任务调度, 对用户和编程人员是透明, 因此, 云计算的编程模型必须简单有效, 才能让用户更方便地享受云服务。 云计算采用类MAPReduce 的编程模式, 是一种简化的分布式编程模型和高效的任务调度模型, 适用于大规模数据集(大于1 TB) 的并行运算。 现在, 大部分IT 厂商采用的编程模型都是基于MAPReduce 的思想开发的。
严格的编程模型使云计算环境下的编程十分简单。 MapReduce 模式的思想是将要执行的问题分解成Map (映射) 和Reduce (化简) 的方式, 先通过Map 程序将数据切割成不相关的区块, 分配(调度) 给计算机进行处理, 达到分布式运算的效果, 再通过Reduce 程序将结果输出。
2.海量数据分布存储技术
云计算用分布式存储数据, 并用冗余的方式保证数据存储的高可用、高可靠和经济性。云计算系统由大量的服务器组成, 为保证大量可靠的用户服务, 数据存储技术必须在具有高传输率和高吞吐率特性的同时, 还需要保证数据的可靠性, 因此云计算系统采用分布式存储的方式存储数据, 用冗余存储的方式保证数据的可靠性。 现在, 广泛使用的数据存储技术是分布式文件系统(Google File System, GFS) 和Hadoop 分布式文件系统(Hadoop Distributed File System, HDFS) 。 大部分IT 厂商都是使用HDFS 的数据存储技术, 未来将集中发展超大规模的数据存储、数据安全、数据加密和提高I/O 速率等。
3.海量数据管理技术
云计算需要对分布的、海量的数据进行处理、分析, 因此, 数据管理技术必须能够高效的管理大量的数据。 云计算系统中的数据管理技术主要是Google 的BT (BigTable) 数据管理技术和Hadoop 团队开发的开源数据管理模块(HBase)。
BT 是建立在GFS、Scheduler、Lock Service 和MapReduce 之上的一个大型的分布式数据库, 与传统的关系数据库不同, 它把所有数据都作为对象来处理, 形成一个巨大的表格, 用来分布存储大规模结构化数据。
Google 的很多项目使用BT 来存储数据, 包括网页查询、Google earth 和Google 金融。 这些应用程序对BT 的要求各不相同: 数据大小(从URL 到网页到卫星图像) 不同, 反应速度(从后端的大批处理到实时数据服务) 不同。 对于不同的要求, BT 都能提供灵活高效的服务。(www.xing528.com)
4.虚拟化技术
虚拟化技术是指计算任务在虚拟的基础上而不是真实的硬件基础上运行, 可实现软件应用与底层硬件相隔离, 扩大硬件的容量, 简化软件的重新配置过程。 它包括将单个资源划分成多个虚拟资源的裂分模式, 也包括将多个资源整合成一个虚拟资源的聚合模式。
利用虚拟化技术, 可以有效地整合数据中心的硬件资源、虚拟服务器和其他基础设施,通过高效的管理和调度, 为上层应用程序提供动态的、可扩展的、灵活的基础设施平台, 以满足云计算按需部署、随需随用的需求。 半虚拟化技术是目前主流的技术, 能减少CPU 额外的开销, 但内存性能消耗较大。 因此, 原来的CPU 集型应用程序可以较好地迁移到虚拟化平台上来, 而内存或I/O 密集型应用程序, 在数据操作等方面将会面临更大的性能问题。
虚拟化技术根据对象可分成存储虚拟化、计算虚拟化和网络虚拟化等, 计算虚拟化又分为系统级虚拟化、应用级虚拟化和桌面虚拟化。
5.可扩展的并行计算技术
并行计算技术是云计算最具挑战性的核心之一, 多核处理器增加了并行的层次结构和并行程序开发的难度。 可扩展性是并行计算的关键技术之一, 将来的很多并行应用必须能够有效扩展到成千上万个处理器上, 必须能随着用户需求的变化和系统规模的增大进行有效的扩展, 这对开发者是一个巨大的挑战, 短期内很难开发出成熟的产品。
6.高可靠的系统技术
如何有效地管理庞大的资源, 使大量分布在不同地点的服务器能够协同工作, 执行各种任务, 并能快速地发现和恢复系统故障, 从而保证整个系统提供不间断的服务是巨大的挑战。 当系统规模增大后, 面对大量的紧耦合通信应用, 有效的系统级容错方案难于出现。 应用层面的检查点和重启技术不但增加了系统开发的难度和工作量, 还影响系统运行的性能。而如何形成一个强大可靠的、动态的、自治的计算存储资源池, 提供云计算所需要的高容量的计算能力, 保证大规模系统的可靠运营, 都有待进一步的深入研究。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。