首页 理论教育云安全深度剖析:数据中心的应用实践

云安全深度剖析:数据中心的应用实践

【摘要】:这一阶段的数据中心须具有高可用性。在此背景下,结合云计算技术的云数据中心应运而生。业界正掀起新一轮的数据中心建设高潮,新一代的云数据中心随之而产生。在当前的云计算架构中,云数据中心是云计算硬件架构最底层的独立计算单位。另外,面向云数据中心的侧重点已由物理架构转向了提供标准化服务。

基于云的服务需要大量的计算能力,并托管在数据中心和服务器集群。这些分布式数据中心和服务器集群跨越多个地点并可以通过互联网络提供分布式计算和服务交付能力挂钩[38]

1.数据中心

数据中心是场地出租概念在因特网领域的延伸。它是人类在IT应用推广模式方面的一大发明,标志着IT应用的规范化和组织化。目前,几乎所有大中型机构都建立有自己的数据中心,全面管理本机构的IT系统。数据中心的发展主要经历了如下四个阶段:

(1)数据存储中心阶段 在这一阶段,数据中心承担了数据存储和管理的功能。此阶段,数据中心的主要特征是有助于数据的集中存放和管理,以及单向存储和应用。由于这一阶段的功能较为单一,因此它对整体可用性的需求也较低。

(2)数据处理中心阶段 由于Internet技术的不断普及和应用,数据中心已经可以承担核心计算的功能。因此,这一阶段数据中心开始关注计算效率和运营效率,并且需要安排专业工作人员来进行维护。但是,这一阶段数据中心的整体可用性仍然较低。

(3)数据应用中心阶段 在这一阶段,需求的变化和满足成为其主要特征。随着互联网应用的广泛普及,数据中心承担了核心计算和核心业务运营支撑功能。因此,这一时期的数据中心也称为信息中心,人们对数据中心的可用性有了较高的要求。

(4)数据运营服务中心阶段 在这一阶段,数据中心承担着组织的核心运营支撑、信息资源服务、核心计算,以及数据存储和备份等功能。业务运营对数据中心的要求不仅仅是支持,而是提供持续可靠的服务。这一阶段的数据中心须具有高可用性。

进入21世纪以来,每天都产生海量的计算和存储需求,对于数据中心而言,传统的数据中心架构和服务方式已经逐渐落后于时代需求,用户对安全、高效及节能等方面的要求也越来越迫切。在此背景下,结合云计算技术的云数据中心应运而生。这种新型的数据中心已经不只是一个简单的服务器统一托管和维护的场所,已经衍变成一个集大数据计算和存储为一体的高性能计算机的集结地。各IT厂商将之前以单台为单位的服务器通过各种方式变成多台为群体的模式,在此基础上开发如云存储等一系列的功能,以提高单位数量内服务器的使用效率。

随着云计算和Web 2.0等新业务的兴起,传统的数据中心已经无法满足。业界正掀起新一轮的数据中心建设高潮,新一代的云数据中心随之而产生。

在当前的云计算架构中,云数据中心是云计算硬件架构最底层的独立计算单位。作为一个大型的数据中心,需要处理大量数据,而这些计算机要承担的任务,绝大部分是简单的计算。与此同时,为了控制成本,数据中心的计算机一般并不是高性能的服务器,而是大量的廉价计算机,随之而来的一个问题就是,当我们进行大量计算的时候,如何保证整个数据中心内部的数据交换效率。另外,面向云数据中心的侧重点已由物理架构转向了提供标准化服务。在物理设施和管理层,对内使用良好的调度和平衡方案,大量使用虚拟化技术;对外则屏蔽了下层物理设备,为上层提供标准化的计算和存储资源,根据用户的不同需求,提供不同水平和集成度的服务。

近几年来,国外研究机构纷纷将关注焦点集中在面向云数据中心的架构设计,提出了不少适用于云数据中心的网络拓扑结构。虽然各种结构的基本构建思想有所不同,但构建网络的目的和要求却是一致的[39]

2.服务器集群

服务器是云计算系统中的基础节点。为了实现云计算的低成本目标,云计算系统中多采用x86服务器,并通过虚拟化提高对服务器资源的利用率。

集群是一种并行或分布式多处理系统,该系统是通过一组松散集成的计算机软件和硬件连接起来作为一个整体向用户提供一组网络资源。在某种意义上,一个连接在一起的计算机集群对于用户和应用程序而言就像一个单一的计算机系统。

集群系统中的单个计算机通常称为节点。节点可以是连接在一起的,也可以是物理上分散而通过局域网连接到一起的。集群计算机通常用来改进单个计算机的计算速度和可靠性。一般情况下集群系统比单个计算机(如工作站)的性价比要高得多。

集群并不是一个全新的概念,早在20世纪60年代,IBM公司就提出了集群计算系统,其基本思想是将大型计算机连接起来通过合理的交互以共同完成某种并行计算。由于当时各种技术的限制,特别是软件和硬件的成本较高,这种思想并不能被很好地商业化。70年代计算机厂商和研究机构开始了对集群系统的研究和开发。由于当时主要用于科学计算,所以这些系统并不为大家所熟知。

直到20世纪80年代,随着高性能低价位的微处理器、高速网络和分布式软硬件工具的发展,集群计算系统才有了得以发展的物质基础。

20世纪90年代以来,昂贵的并行超级计算机向工作站网络转换的趋势越来越强,高性能工作站和网络逐渐的商品化成为促使这种转换的驱动因素。技术的发展使计算机网络成为并行处理的理想工具,从而导致了低价商品化超级计算机的飞速发展,产生了很多典型的系统,如基于Linux和Grendel(系统软件工具包)的PC集群系统Beowulf[1]

由于低价PC集群和高端大型机相比,具有极其优越的性能价格比和高可扩展性,如今,使用低端工作站和PC进行集群计算的技术逐渐成为研究热点。(www.chuimin.cn)

根据集群系统的不同特征可以有多种分类方法,但一般把集群系统分为同构与异构两种。它们的区别在于组成集群系统的计算机之间的体系结构是否相同。然而,在实践中,通常将集群分为如下两类:

(1)高可用性集群 高可用性集群通常是指具有两个或多个节点的集群系统,目的是当集群中有某个节点失效的情况下,其上的任务会自动转移到其他正常的节点上,即仍能继续对外提供服务。高可用性集群的设计思想是要最大限度地减少服务中断的时间。

高可用集群通常有两种工作方式:①容错系统,通常是主从服务器方式,从服务器检测主服务器的状态,当主服务工作正常时,从服务器并不提供服务,但是一旦主服务器失效,从服务器就开始代替主服务器向客户提供服务;②负载均衡系统,集群中所有的节点都处于活动状态,它们分摊系统的工作负载,一般Web服务器集群和数据库集群都属于这种类型。

高可用性集群既适用于提供静态数据的服务,如HTTP服务,又适用于提供动态数据的服务,如数据库等。

计算机系统的可用性是通过系统的可靠性和可维护性来度量的。工程上通常用平均无故障时间来度量系统的可靠性,用平均维修时间来度量系统的可维护性。

(2)高性能计算集群 高性能计算就是研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,分配给多个计算机进行处理,并把这些计算结果综合起来得到最终的结果。

高性能计算机是由多个可同时工作的处理器构成的计算机系统。在一个高性能计算系统中,不同处理器可同时运行同一程序的多个任务或进程,或者同时运行多个独立程序,以提高系统的计算速度、吞吐量或有效地利用系统的资源。

高性能计算集群是指以提高科学计算能力为目的的计算机集群,按照任务间的关联程度,可以分为两种:一种是高吞吐计算,把计算任务分成若干个可以并行的子任务,而且各子任务之间彼此没有什么关联,然后把子任务分配给各节点,在各节点上分别计算后再把从各个计算节点返回的结果进行汇总,生成最终计算结果。因为这种类型应用的一个共同特征是在海量数据上搜索某些模式,所以把这类计算称为高吞吐计算。另一种是并行计算方式,刚好和高吞吐计算相反,虽然也可以将计算任务分成若干并行的子任务,但子任务之间联系紧密,节点之间在计算过程中需要大量的数据交换,可以进行具有强耦合关系的计算。

云计算本身意味着超大的数据处理量,只有高性能计算才能有效发挥其商业模式的优势;另外,云计算是高性能计算在发展过程中呈现的必然特征。随着高性能计算应用市场的不断深入,以及向其他行业、领域的不断扩展,数据量增长已达到前所未有的速度,更多的工作也将从传统的基于本地的集群计算向基于网络的集群计算发展,这在客观上有赖于云计算的发展成果。

云计算所涉及的技术很多,这里仅对云计算的部分核心技术进行了简单阐述。需要指出的是,虽然云计算是发展趋势所在,但现在对云计算基础关键技术的研究还远远不够,业界过于偏重虚拟化技术,而忽视了对计算机系统技术的研究。

3.节能技术

在云计算环境中,数据中心是云计算硬件架构底层的独立计算单位。数据中心的基础设施通常由数以万计的计算机构成,随之而来的一个亟待解决的问题是数据中心巨大的能源消耗。据统计,2010年数据中心能耗已经占全球总能耗的1.3%,绿色化刻不容缓。

针对上述问题,国内外学者及相关机构已经对诸多节能技术进行研究,并提出了很多降低能耗的方法。

(1)组件级的节能 目前对于计算机系统组件的设计追求的目标是使得这些组件能够按使用率成比例地消耗能源,即存储系统中的缓存、内存以及硬盘等没有使用的部分是不消耗或只消耗很少的能量。组件级的节能主要包括CPU组件节能和存储组件节能两种形式。早期解决服务器级能耗问题的主流技术是动态电压和频率缩放(DVFS)方法。其核心思想是通过动态调整CPU的电压和频率,使其能动态适应负载的变化,进而实现节能。基于DVFS的节能技术都是利用物理机CPU的空闲时间来降低能耗。对于云数据中心,人们对共处一个物理机内虚拟机的能耗更加感兴趣。显然,基于DVFS的节能技术不能直接应用于引入虚拟化技术的云数据中心[40]

(2)服务器整合 通过虚拟化技术进行节能已有一些早期的研究。研究方法主要是通过虚拟技术如虚拟机动态迁移机制进行服务器整合,使一些物理机处于空闲状态,然后通过使其处于休眠或关机状态,达到节能效果。比如Vogels[41]和Nathuji等人[42]从能耗的观点出发,探索使用虚拟化进行服务器整合的优点。更进一步,一些研究者对采用虚拟化技术的集群系统如何通过动态配置方法进行能耗优化而进行了研究。比如Petrucci等人[43]针对虚拟化集群,提出了一个考虑关停资源代价、采用服务器整合策略实现节能的算法;Kusic等人[44]提出基于有限先行控制优化策略来指导服务器整合。

(3)数据副本管理 MapReduce的开源实现Hadoop的分布文件系统(HDFS)默认地对每个数据项保持三个副本。三个副本意味着300%的高昂设备运营费用。这种典型的超额配置保证在资源需求高峰期间能维持数据的可用性。斯坦福大学的Leverich等人[45]的研究表明:通过改变数据副本放置策略可以有效节省系统能耗。例如Amur等人[46]针对MapReduce集群提出了一个将数据项以倾斜方式放置数据副本的策略,这样就有可能通过关闭不含数据项的部分节点以实现节能。Pinheiro等人[47]通过把原始数据和冗余数据分开存放到不同节点上达到节能目的。参考文献[48]中提出了一个基于超图的副本存储优化节能算法。另外,不同的数据副本放置策略会对系统性能产生一定影响。比如Vasic等人[49]通过修改Hadoop的任务调度和数据块分配算法,使得任务调度与数据副本位置能相互感知,进而达到节能效果。

(4)节点启动与关闭 与数据副本管理策略和服务器整合技术紧密相关的另一关键技术是节点启动与关闭策略。Goiri等人[50]的研究表明:通过减少在线节点数量可以实现节点数量与能耗之间的最佳折中。目前,关于节点管理策略的研究思路主要是采用机器学习等理论进行决策,使不常用的节点处于低能耗或关闭状态来节能。例如Kamitsos等人[51]采用基于Bellman方法决策何时让一些节点进入睡眠状态来节能,Berral等人[52]提出了一个能量感知的节点启停算法。该算法在保证最大性能的前提下,利用系统行为信息和学习模型预测系统能耗量及CPU负载,进而改进任务调度决策。Berral等人[53]提出从资源、能耗和负载行为中直接学习的机器学习方法进行能耗管理和自适应的任务调度。针对MapReduce集群,Cardosa等人[54]指出通过动态重定位虚拟机,使在线节点数量保持最小,即使空闲节点最多,也可以使空闲节点处于不活动状态而达到节能。