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

PaaS核心架构安全(1)

PaaS是把分布式软件的开发、测试和部署环境当做服务,通过互联网提供给用户。PaaS可以构建在IaaS的虚拟化资源池上,也可以直接构建在数据中心的物理基础设施之上。PaaS为用户提供了包括中间件、数据库、操作系统、开发环境等在内的软件栈,允许用户通过网络来进行应用的远程开发、配置、部署,并最终在服务商提供的数据中心内运行。

如何采用合适的分布式技术解决分布式存储和分布式计算问题,并屏蔽底层复杂的分布式处理操作,把简单易用的编程接口和编程模型提供给用户,是PaaS的关键技术问题。PaaS同样需要构建PaaS运营管理系统解决用户管理、资源管理等问题,在某些情况下,PaaS还需要整合企业的其他平台,将企业特有的服务能力通过开发接口的形式向开发者开放。

1.PaaS关键技术

PaaS的核心技术是分布式处理技术,主要解决云计算数据中心大规模服务器群的协同工作问题,由分布式文件系统、分布式计算、分布式数据库和分布式同步机制四部分组成。

(1)分布式文件系统

分布式文件系统是分布式计算环境的基础架构之一,它把分散在网络中的文件资源以统一的视点呈现给用户,简化了用户访问的复杂性,加强了分布式系统的可管理性,也为进一步开发分布式应用准备了条件。分布式文件系统建立在客户机/服务器技术基础之上,由服务器与客户机文件系统协同操作。控制功能分散在客户机和服务器之间,使得诸如共享、数据安全性、透明性等在集中式文件系统中很容易处理的事情变得相当复杂。文件共享可分为读共享、顺序写共享和并发写共享。在分布式文件系统中顺序写需要解决共享用户的同一视点问题,并发写则需要考虑中间插入更新导致的一致性问题。

以Google GFS和Hadoop HDFS为代表的分布式文件系统,是符合PaaS要求的典型分布式文件系统设计。系统由一台主服务器和多台块服务器构成,被多个客户端访问,文件以固定尺寸的数据块形式分散存储在块服务器中。主服务器是分布式文件系统中最主要的环节,它管理着文件系统所有的元数据,包括名字空间、访问控制信息、文件到块的映射信息、文件块的位置信息等,还管理着系统范围的活动,如块租用管理、孤儿块的垃圾回收以及块在块服务器间的移动。块服务器负责具体的数据存储和读取。主服务器通过心跳信息周期性地跟每个块服务器通信,给它们指示并收集其状态,通过这种方式系统可以迅速感知服务器的增减和组件的失效,从而解决扩展性和容错能力问题。

客户端被嵌到每个程序里,实现文件系统的API,帮助应用程序与主服务器和块服务器通信,对数据进行读/写。客户端不通过主服务器读取数据,它从主服务器获取目标数据块的位置信息后,直接和块服务器交互进行读操作,避免大量读/写主服务器而形成系统性能瓶颈。在进行追加操作时,数据流和控制流被分开。客户端向主服务器申请租约,获取主块的标识符以及其他副本的位置后,直接将数据推送到所有的副本上,由主块控制和同步所有副本间的写操作。

(2)分布式数据库

分布式数据库(Distributed Database System,DDBS)是一组结构化的数据集,逻辑上属于同一系统,而物理上分散在用计算机网络连接的多个场地上,并统一由一个分布式数据库管理系统进行管理。与集中式或分散数据库相比,分布式数据库具有可靠性高、模块扩展容易、响应延迟小、负载均衡、容错能力强等优点。在银行等大型企业,分布式数据库系统被广泛使用。分布式数据库仍处于研究和发展阶段,目前还没有统一的标准。

以Google BigTable和Hadoop Hbase为代表的分布式数据库是符合云计算基础架构要求的典型分布式数据库,可以存储和管理大规模结构化数据,具有良好的可扩展性,可部署在上千台廉价服务器上,存储PB级别的数据。这类型的数据库通常不提供完整的关系数据模型,而只提供简单的数据模型,使得客户端可以动态控制数据的布局和格式。

BigTable和Hbase采取了基于列的数据存储方式,数据库本身是一张稀疏的多维度映射表,以行、列和时间戳作为索引,每个值都是未作解释的字节数组。在行关键字下的每个读/写操作都是原子性的,不管读/写行中有多少不同的列。BigTable通过行关键字的字典序来维护数据,一张表可动态划分成多个连续行,连续行称为Tablet,它是数据分布和负载均衡的基本单位。BigTable把列关键字分成组,每组为一个列族,列族是BigTable的基本访问控制单元。通常,同一列族下存放的数据具有相同的类型。在创建列关键字存放数据之前,必须先创建列族。在一张表中列族的数量不能太多,列的数量则不受限制。BigTable表项可以存储不同版本的内容,用时间戳来索引,按时间戳倒序排列。

分布式数据库通常建立在分布式文件系统之上,BigTable使用Google分布式文件系统来存储日志和数据文件。BigTable采用SSTable格式存储数据,后者提供永久存储的、有序的、不可改写的关键字到值的映射,以及相应的查询操作。此外,BigTable还使用分布式锁服务Chubby来解决一系列问题,如:保证任何时间最多只有一个活跃的主备份;存储BigTable数据的启动位置;发现Tablet服务器;存储BigTable模式信息、访问权限等。BigTable系统架构如图4-5所示。

BigTable由客户程序库、一台主服务器(Master)和多台子表服务器(Tablet Server)组成。Master负责给子表服务器指派Tablet,检测加入或失效的子表服务器,在子表服务器间进行负载均衡,对文件系统进行垃圾收集,以及处理诸如建表和列族之类的表模式更改工作。子表服务器负责管理一个子表集合,处理对子表的读/写操作及分割维护等。客户数据不经过主服务器,而是直接与子表服务器交互,避免了对主服务器的频繁读/写造成的性能瓶颈。为提升系统性能,BigTable还采用了压缩、缓存等一系列技术。

图4 5  BigTable系统架构

相关评论

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