发布日期:2013-04-28 16:03 来源:中国电信网络安全实验室 标签: 核心 架构 安全
 

PaaS核心架构安全(2)

(3)分布式计算

分布式计算是让多个物理上独立的组件作为一个单独的系统协同工作,这些组件可能指多个CPU,或者网络中的多台计算机。它作了如下假定:如果1台计算机能够在5秒钟内完成一项任务,那么5台计算机以并行方式协同工作时就能在1秒钟内完成。实际上,由于协同设计的复杂性,分布式计算并不都能满足这一假设。对于分布式编程而言,核心的问题是如何把一个大的应用程序分解成若干可以并行处理的子程序。有两种可能的处理方法:一种是分割计算,即把应用程序的功能分割成若干个模块,由网络上的多台机器协同完成;另一种是分割数据,即把数据集分割成小块,由网络上的多台计算机分别计算。对于海量数据分析等计算密集型问题,通常采取分割数据的分布式计算方法,对于大规模分布式系统则可能同时采取这两种方法。

分割数据的分布式计算模型,把需要进行大量计算的数据分割成小块,由网络上的多台计算机分别计算,然后对结果进行组合得出数据结论。Google针对其内部大规模数据密集型应用提出的分布式编程模型MapReduce,是这类分布式计算模型的典范,在云计算领域被广泛采用。

MapReduce提供了泛函编程的一个简化版本。与传统编程模型中函数参数只能代表一个明确的数或数的集合不同,泛函编程模型中函数参数能够代表一个函数,这使得泛函编程模型的表达能力和抽象能力更高。它隐藏了并行化、容错、数据分布、负载均衡等复杂的分布式处理细节,提供简单有力的接口来实现自动的并行化和大规模分布式计算,从而在大量普通PC上实现高性能计算。

在MapReduce模型中,输入数据和输出结果都被视做由一系列key/value对组成的集合。用户指定map函数对输入key/value集进行处理,形成中间形式的key/value集;MapReduce库按照key值把中间形式的value集中起来,传给用户指定的reduce函数;reduce函数把具有相同key的value合并在一起,最终输出一系列key/value对。MapReduce执行过程如图4-6所示。

图4 6  MapReduce执行过程

MapReduce模型具有很强的容错性,当某一worker节点出现错误时,该worker执行的程序将被迁移到其他worker重新执行,Master还将把迁移信息发送给需要该节点处理结果的节点。此外,MapReduce通过设置检查点来处理Master失效的问题,当Master出现错误时,可以根据最近的一个检查点重新选择一个节点作为Master,并由此检查点位置继续运行。

MapReduce编程模型已被许多系统成功运用,它使用简单,隐藏了并行化、容错、位置优化、负载均衡等细节。大量不同的问题,都可以用MapReduce计算来表达,如Web搜索、排序、数据挖掘、机器学习等。目前,大多数企业的云计算平台都采用了MapReduce分布式编程模型。

(4)分布式同步技术

在分布式系统中,对共享资源的并行操作可能会引起丢失修改、读脏数据、不可重复读等数据不一致问题,这时需要引入同步机制,控制进程的并发操作。

对于由大规模廉价服务器群构成的云计算数据中心而言,分布式同步机制是开展一切上层应用的基础,是系统正确性和可靠性的基本保证。Google Chubby和Hadoop ZooKeeper是云基础架构分布式同步机制的典型代表,用于协调系统各部件,其他分布式系统可以用它来同步访问共享资源。

Chubby是一个针对松散耦合分布式系统的锁服务,提供开发人员常用的加解锁功能,解决分布一致性问题。它本身是一个分布式文件系统,客户端可以在其上创建文件和执行一些基本的文件操作。在Chubby中,一个锁就是一个文件,创建文件就是进行加锁操作,文件创建成功,意味着加锁成功,用户通过打开、关闭和读取文件,获取共享锁或者独占锁。

Chubby的基本设计目标是高可用性和可靠性,对于性能、吞吐量和存储容量并没有过多的要求。Chubby提供了一种基于分布式文件系统实现的锁机制,解决松散耦合系统中的分布式一致性问题。它还可以作为名字服务和配置信息仓库。

相关评论

专题信息
    随着云计算技术的应用越来越广泛,云计算的可信性和安全性问题凸显。本书叙述了采用可信云安全技术解决云计算可信和安全问题的方法。可信云安全技术是在云计算环境中,针对云端互动的人进行可信计算和安全计算的技术。