首页 理论教育云计算技术在计算机应用基础教程中的应用

云计算技术在计算机应用基础教程中的应用

【摘要】:由于云计算需要对海量的分布式数据进行处理、分析,因此,数据管理技术必须能够高效地管理大量的数据。全球各大云计算方案/服务提供商们都在积极开展相关技术的研发工作。

1.云存储技术

与传统的存储设备相比,云存储不仅是一个硬件,还是一个由网络设备、存储设备、服务器、应用软件、公用访问接口、接入网和客户端程序等多个部分组成的复杂系统。各部分以存储设备为核心,通过应用软件来对外提供数据存储和业务访问服务。云存储系统的结构由4 层组成。

分布式存储与传统的网络存储并不完全一样,传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的“瓶颈”,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性可用性和存取效率,还易于扩展。

在当前的云计算领域,Google 的GFS 和Hadoop 开发的开源系统HDFS 是比较流行的两种云计算分布式存储系统。

GFS (Google File System)技术:谷歌的非开源的GFS (Google File System)云计算平台满足大量用户的需求,并行地为大量用户提供服务,使得云计算的数据存储技术具有高吞吐率和高传输率的特点。

HDFS (Hadoop Distributed File System)技术:大部分ICT 厂商,包括Yahoo、Intel 的“云”计划采用的都是HDFS 的数据存储技术。未来的发展将集中在超大规模的数据存储、数据加密和安全性保证及继续提高I/O 速率等方面。

2.虚拟化技术

虚拟化是云计算最重要的核心技术之一,它为云计算服务提供基础架构层面的支撑,是ICT 服务快速走向云计算的最主要驱动力。

从技术上讲,虚拟化是一种在软件中仿真计算机硬件,以虚拟资源为用户提供服务的计算形式,旨在合理调配计算机资源,使其更高效地提供服务。它把应用系统各硬件间的物理划分打破,从而实现架构的动态化,实现物理资源的集中管理和使用。虚拟化的最大好处是增强系统的弹性和灵活性、降低成本、改进服务、提高资源利用效率。

(1)服务器虚拟化

将服务器物理资源抽象成逻辑资源,让一台服务器变成几台,甚至上百台相互隔离的虚拟服务器,不再受限于物理上的界限,而是让CPU、内存、磁盘、I/O 等硬件变成可动态管理的“资源池”,从而提高资源的利用率,简化系统管理,实现服务器整合。

(2)网络虚拟化

网络虚拟化技术将硬件设备和特定的软件结合,以创建和管理虚拟网络。网络虚拟化将不同的物理网络集成为一个逻辑网络,或让操作系统分区,具有类似于网络的功能。

3.编程模式

从本质上讲,云计算是一个多用户、多任务、支持并发处理的系统。高效、简捷、快速是其核心理念,它旨在通过网络把强大的服务器计算资源方便地分发到终端用户手中,同时保证低成本和良好的用户体验。在这个过程中,编程模式的选择至关重要。云计算项目中分布式并行编程模式将被广泛采用。(www.chuimin.cn)

分布式并行编程模式创立的初衷是更高效地利用软、硬件资源,让用户更快速、更简单地使用应用或服务。在分布式并行编程模式中,后台复杂的任务处理和资源调度对于用户来说是透明的,这样用户体验能够大大提升。MapReduce 是当前云计算主流并行编程模式之一。MapReduce 模式将任务自动分成多个子任务,通过Map 和Reduce 两步实现任务在大规模计算节点中的高度与分配。

MapReduce 是Google 开发的Java、Python、C++编程模型,主要用于大规模数据集(大于1TB)的并行运算。MapReduce 模式的思想是将要执行的问题分解成Map (映射)和Reduce (化简)的方式,先通过Map 程序将数据切割成不相关的区块,分配(调度)给大量计算机处理,达到分布式运算的效果,再通过Reduce 程序将结果汇整输出。

4.大规模数据管理

处理海量数据是云计算的一大优势,而如何处理则涉及很多层面的内容,因此,高效的数据处理技术也是云计算不可或缺的核心技术之一。对于云计算来说,数据管理面临巨大的挑战。云计算不仅要保证数据的存储和访问,还要能够对海量数据进行特定的检索和分析。由于云计算需要对海量的分布式数据进行处理、分析,因此,数据管理技术必须能够高效地管理大量的数据。

Google 的BT (BigTable)数据管理技术和Hadoop 团队开发的开源数据管理模块HBase是业界比较典型的大规模数据管理技术。

(1)BT (BigTable)数据管理技术

BigTable 是非关系的数据库,是一个分布式的、持久化存储的多维度排序。BigTable 与传统的关系数据库不同,它把所有数据都作为对象来处理,形成一个巨大的表格,用来分布存储大规模结构化数据。BigTable 的设计目的是可靠地处理PB 级别的数据,并且能够部署到上千台机器上。

(2)开源数据管理模块HBase

HBase 是Apache 的Hadoop 项目的子项目,定位于分布式、面向列的开源数据库。HBase 不同于一般的关系数据库,它是一个适合非结构化数据存储的数据库。另一个不同是,HBase 采用的是基于列的而不是基于行的模式。作为高可靠性分布式存储系统,HBase在性能和可伸缩方面都有比较好的表现。利用HBase 技术可在廉价PC Server 上搭建起大规模结构化存储集群。

5.分布式资源管理

云计算采用了分布式存储技术存储数据,那么自然要引入分布式资源管理技术。在多节点的并发执行环境中,各个节点的状态需要同步,并且在单个节点出现故障时,系统需要有效的机制来保证其他节点不受影响。而分布式资源管理系统恰是这样的技术,它是保证系统状态的关键

另外,云计算系统所处理的资源往往非常庞大,少则几百台服务器,多则上万台,还可能跨越多个地域。此外,云平台中运行的应用也数以千计,如何有效地管理这批资源,保证它们正常提供服务,需要强大的技术支撑。因此,分布式资源管理技术的重要性可想而知。

全球各大云计算方案/服务提供商们都在积极开展相关技术的研发工作。其中,Google内部使用的Borg 技术很受业内称道。另外,微软、IBM、Oracle/Sun 等云计算巨头都有相应解决方案提出。