大数据导论
上QQ阅读APP看书,第一时间看更新

2.2 云计算技术

云计算作为一种新的超级计算方式和服务模式,以数据为中心,是一种数据密集型的超级计算,它运用了多种计算机技术,其中以虚拟化技术、并行运算技术、数据管理技术和数据存储技术最为关键,如图2-3所示。下面分别介绍云计算的一些关键技术。

图2-3 云计算技术

2.2.1 虚拟化技术

虚拟化是指计算机相关模块在虚拟的基础上而不是真实的独立的物理硬件基础上运行,这种把有限的固定的资源根据不同需求进行重新规划以达到最大利用率,从而实现简化管理,优化资源等目的的解决方案,就称为虚拟化技术。虚拟化技术是云计算的核心支撑技术,是将各种计算及存储资源充分整合和高效利用的关键技术。

虚拟化技术可以提高利用率,提供统一访问同一类型资源的访问方式,进而为用户隐藏底层的具体实现,方便用户使用各种不同的IT资源。

虚拟化技术包括服务器虚拟化、存储虚拟化、应用虚拟化和桌面虚拟化4种。

1.服务器虚拟化

服务器虚拟化技术是IaaS的核心技术,通过服务器虚拟化技术将一个服务器虚拟成多个独立的虚拟服务器,充分发挥服务器的硬件性能。

服务器虚拟化技术统一管理CPU、内存和I/O 设备等物理资源,使各个虚拟服务器都能拥有运行时所需要的资源。

服务器虚拟化的优点如下。

● 降低能耗,减少了物理服务器的数量,节省电力。

● 节省空间,通过虚拟化技术节省了众多物理服务器的空间。

● 提高基础架构的利用率,虚拟化大幅提升了资源利用率。

● 提高稳定性、安全性和可用性,可以负载均衡、动态迁移等。

● 提高灵活性,通过动态资源配置提高IT对业务的灵活适应力,支持异构操作系统的整合,支持老应用的持续运行,减少迁移成本。

2.存储虚拟化

存储虚拟化是指在基础管理层对大量存储设备进行统一管理。对于存储数据的用户来说,如何将数据存储到终端、数据存储的安全性等是他们关心的重点,而对于提供服务的供应商来说,需要做到的是对不同用户的不同数据进行统一的管理和存储。

存储虚拟化在云存储系统中应用广泛,存储的容量成为衡量该系统性能的重要指标,通过在云存储系统中应用存储虚拟化,可以避免不同厂家因为存储设备的不同而带来的差异化,也可以使原有的存储空间可伸缩,同时实现动态扩展存储容量和动态分配存储空间。一种云存储环境下典型的存储虚拟化结构如图2-4所示。

图2-4 一种云环境下的存储虚拟化结构

3.应用虚拟化

应用程序的运行依赖于其安装的操作系统,如CPU、内存分配等。在同一个操作系统中运行的不同应用可能包含许多共同的系统信息,这样可能导致应用程序之间发生冲突问题。这就需要依靠应用虚拟化技术来解决,通过应用虚拟化技术,各个应用程序具有极大的自由性和独立性。

应用虚拟化是SaaS的基础,提供一个虚拟化平台,使所有的应用都可以在其上运行,所有与应用相关的信息和配置文件都由该平台提供,应用被重新锁定到一个虚拟的位置,通过与自身相关的运行环境打包,构成一个单独的文件,这样,应用需要运行时就无须考虑安装环境,可以在不同的环境下运行。打包成单独文件的应用是在数据中心集中化管理,当用户需要安装、更新或者维护应用时,不需要重新安装应用程序,只需要在数据中心下载即可完成。

4.桌面虚拟化

桌面虚拟化是指将计算机的桌面进行虚拟化,使用户使用桌面更加安全和灵活。服务器虚拟化是桌面虚拟化的基础,通过对数据中心的服务器进行服务器虚拟化,使一个桌面生成许多独立的桌面系统,即虚拟桌面,根据相关协议将虚拟桌面发送到终端设备。借助桌面虚拟化,用户可以实现通过任何设备(如手机、平板和笔记本电脑等)远程工作。

虚拟化技术具有以下几个特点。

● 资源共享。

● 资源定制。

● 细粒度资源管理。

虚拟化技术在实际生活中广泛应用,包括金融业、制造业和政府部门等。以下是对虚拟化技术应用较好的行业。

(1)银行用户

银行是国内最早使用大型主机和小型机的行业,在应用中得到的技术支持最多。其行业特点在于对成本敏感度低,对虚拟化技术的安全性和使用效率关注度高。

(2)政府部门

对预算较敏感,通过最低的总体拥有成本(Total Cost of Ownership,TCO)获得最多的计算性能,对系统效率的提高最为关注。

(3)企业单位

虚拟化技术在企业的管理以及企业的信息化建设中发挥着重要作用,企业应用虚拟化技术时,主要集中在对企业服务器虚拟化管理及企业信息化建设应用中。服务器虚拟化可以提高资源的利用率,简化系统管理,实现服务器整合,给企业带来许多优势。

(4)高等院校

随着高校信息化的不断深入,校园网络上承载的应用越来越多,通过网络虚拟化技术可以实现不同应用的相互隔离,而同一类应用可在全网范围内访问,实现将物理网络的逻辑进行纵向划分。

2.2.2 并行计算技术

并行计算的实现层次有两个。

● 单机(单个结点)即内部的多个CPU、多个核并行计算。

● 集群内部结点间的并行计算。

对于云计算来说,集群结点间的并行更为常见和重要。集群中的结点一般是通过IP网络连接,在带宽足够的前提下,各结点不受地域和空间限制。所以,云计算中的并行计算也被称为分布式并行计算。

并行计算编程模型一般包括两类:

1)在原有串行编程语言基础上,引入并行控制机制,提供并行API、运行库或者并行编译指令,这类模型包括OpenMP、MPI,以及为人熟知的MapReduce。

2)并行编程语言,其语言本身就是基于并行算法的,相对影响比较大的主要有Erlang。OpenMP一般用于实现结点内的并行,MPI一般用于实现结点间的并行;而Erlang既可以实现结点间的并行,也可以实现结点内的并行。

虚拟化技术目前已经有成熟的产品,而并行计算并没有成熟的产品和虚拟化成熟的产品,只有相对成熟的工具。并行计算的实现依赖于开发者和用户对业务的熟悉程度,以及对并行工具正确、熟练地使用。

2.2.3 海量数据管理技术

海量数据管理是指对大规模数据进行计算、分析和处理,如现在互联网的各种搜索引擎。以互联网为计算平台的云计算能够对分布的、海量的数据进行有效可靠的处理和分析。因此,数据管理技术必须能够高效地管理大量的数据,通常数据规模达TB甚至PB级。

云计算系统中的数据管理技术主要是指Google的BT(Big Table)数据管理技术,以及Hadoop团队开发的开源数据管理模块HBase和Hive。BT是建立在GFS、Scheduler、Lock Service和MapReduce上的一个大型的分布式数据库,Google的很多项目都使用 BT,其中包括网页查询、Google Earth和Google金融。图2-5所示为整个Big Table的存储服务体系结构。HBase和Hive作为基于Hadoop的开源数据工具(http://appengine.Google.com),主要用于存储和处理海量结构化数据。

图2-5 存储服务体系结构

2.2.4 海量数据存储技术

云计算系统中广泛使用的数据存储系统是Google的GFS。GFS即Google文件系统(Google File System),是一个可扩展的分布式文件系统。GFS的设计理念是可以进行大规模的数据处理,以及满足Google 应用特性。通过提供容错功能,使用户得到性能较高的服务。图2-6所示是一个大规模气象云存储服务系统体系结构,用户把气象资料存储在存储资源上,只需向服务提供商购买存储服务,而不需要购买存储资源。

图2-6 气象云存储服务系统体系结构