海量数据存储关键技术浅析

时间:2022-05-29 09:53:08

海量数据存储关键技术浅析

摘要:海量数据的大量出现,使存储技术正发生革命性的变化。针对海量数据存储环境,对网络附加存储(NAS)及存储区域网络(SAN)进行了分析,研究了面向对象存储技术。并且对海量数据存储的数据库策略进行了阐述,包括Oracle数据库的表分区技术的策略、特性及应用;Oracle数据库并行处理结构及特性。

关键词:海量数据;对象存储技术;分区技术;并行处理技术

中图分类号:TP311文献标识码:A 文章编号:1009-3044(2010)20-5403-03

A Brief Analysis of Key Technique in Mass Data Storage

JIANG Ran

(Yangzhou Vocational College of Environment and Resources, Yangzhou 225127,China)

Abstract: With emergence of Mass Data, the data storage techniques are experiencing revolutionary change. This paper, focusing on the environment of Mass Storage Technique, made an analysis of NAS and SAN as well as research of object-based storage technique. Then it made the elaborateness to database strategy of mass data storage, including the strategy, feature and application of Oracle and structures and characteristics of Oracle database parallel processing.

Key words: mass data; object-based storage technique; partition technique; parallel processing technique

1 问题提出

当今是一个信息大爆炸的时代,网络的广泛使用更加剧了信息爆炸的速度。信息资源的爆炸性增长,对存储系统在存储容量、数据可用性以及I/O性能等方面提出了越来越高的要求。信息技术正从以计算设备为核心的计算时代步入以存储设备为核心的存储时代。

海量数据是指数据量极大,往往是Terabyte(1012bytes)、Petabyte(1015bytes)甚至Exabyte(1018bytes)级的数据集合。存储这些海量信息不但要求存储设备有很大的储存容量,且还需要大规模数据库来存储和处理这些数据,在满足通用关系数据库技术要求的同时,更需要对海量存储的模式、数据库策略及应用体系架构有更高的设计考虑。

2 海量数据存储模式选择

存储系统的存储模式影响着整个海量数据存储系统的性能,为了提供高性能的海量数据存储系统,应该考虑选择良好的海量存储模式。

对于海量数据而言,实现单一设备上的存储显然是不合适的,甚至是不可能的。结合网络环境,对它们进行分布式存储不失为当前的上策之选。如何在网络环境下,对海量数据进行合理组织、可靠存储,并提供高效、高可用、安全的数据访问性能成为当前一个研究热点。适合海量数据的理想存储模式应该能够提供高性能、可伸缩、跨平台、安全的数据共享能力。

2.1 现有存储模式分析

目前磁盘存储市场上,根据服务器类型存储分类如图1所示。

其中外挂存储占目前磁盘存储市场的70%以上。由于网络技术的崛起,直连式存储(DAS)已显得非常力不从心,存储模式从以服务器为中心转向以数据为中心的网络存储模式,目前典型的代表是:网络附加存储(NAS)和存储区域网络(SAN) [1-3]。

2.1.1 网络附加存储(NAS)

NAS(Network Attached Storage,网络附加存储)是一种文件级的网络存储模式,结构如图2所示。它拥有自己的文件系统,通过NFS或CIFS对外提供文件访问服务。NAS将存储设备通过标准的网络拓扑结构连接到现有的网络上来提供数据和文件服务。NAS管理简单、扩容方便,统一的文件系统使数据共享变得非常简单,所以其最大的优点是跨平台性很好,但NAS服务器在网络存储中处于数据通路上,当服务请求激增时存在I/O瓶颈,性能是NAS的最大问题,因此基于NAS的存储方案对于组建海量存储共享系统来说并不是一种理想的方案。

2.1.2 存储区域网络(SAN)

SAN(Storage Area Network,存储区域网络) 结构如图3所示。它是存储设备与服务器经由高速网络设备连接而形成的存储专用网络。SAN一般基于光纤通道FC(Fibre Channel)或iSCSI(internet SCSI )构建,它是块级的存储,系统性能非常优越。SAN的优点是高容量、高可靠性、低延迟,缺点是SAN没有一个统一的存储系统接口,对存储设备的共享访问存在数据的完整性与安全性问题,设备的跨平台性较差。

2.2 对象存储技术

对象存储技术提供基于对象的访问接口,将NAS和SAN两种存储结构的优势进行了有效地整合,通过高层次的抽象,使之既具有NAS的跨平台共享数据和安全访问的优点,同时又具有SAN的高性能和可伸缩性的优点。

2.2.1 对象存储模式

对象存储模式[4]一般由Client、MDS(Metadata Server)和OSD(Object Storage Device)三部分组成,如图4所示。

Client为客户端,用来发起数据访问;MDS为服务器,用来管理对象存储系统中的元数据并保证访问的一致性;OSD为存储对象数据的设备,它是一个智能设备,包括处理器、RAM内存、网络接口、存储介质等以及运行在其中的控制软件[5]。

对象存储设备(OSD)中,将对象(object)作为对象存储的基本单元,每个对象具有惟一的ID标识符。对象由对象ID、对象数据的起始位置、数据的长度来进行访问。对象提供类似文件访问的方法,如Create,Open,Close,Read,Write,对象属性等;对象的数据包括自身的元数据和用户数据,其中,元数据用于描述对象特定的属性,如对象的逻辑大小、对象的元数据大小、总的字节大小;用户数据用来保存实际的二进制数据。

对象分为根对象、组对象和用户对象。根对象定义了存储设备以及存储设备本身的不同属性;组对象为存储设备上对象提供了目录;用户对象存储实际应用数据。

2.2.2 对象存储模式用于海量数据存储的优势

对象存储模式的特性使其在处理海量数据存储请求时具有较大优势,主要体现在:

1) 高性能数据存储:访问节点有独立的数据通路和元数据访问通路,可以对多个OSD进行并行访问,从而解决了当前存储系统的一个性能瓶颈问题。

2) 跨平台数据共享:由于在对象存储系统上部署基于对象的分布式文件系统比较容易,所有能够实现不同平台下的设备和数据的共享。

3) 方便安全的数据访问:I/O通道的建立及数据的读写需要经过授权许可才能进行,从而保证了数据访问的安全性;另一方面,任何Client都可以通过对象存储系统提供的标准文件接口访问OSD上的数据,统一的命名空间使Client访问数据的一致性得到了保证。

4) 可伸缩性:对象存储模式具有分布式结构的特性。由于OSD是独立的智能设备,可以通过增加OSD数量,使存储系统的聚合I/O带宽、存储容量和处理能力得到提高,这种平衡扩展模式使得存储系统能够具有良好的可伸缩性。

5) 智能的存储设备:OSD中集成了部分的存储管理功能,因此OSD具有一定智能的自主存储功能。

3 数据库策略

数据库管理系统(DBMS)是海量数据存储检索系统的核心部件,所有对数据的控制都要通过DBMS来实现。Oracle数据库管理系统应用十分普及,是目前高性能存储检索系统主要选择的关系数据库管理系统,因此本文海量数据的存储基于Oracle数据库管理系统来实现。

本文基于海量数据环境,对通用的数据库管理策略不作研究,只针对海量数据找到有效存储方法,设计并实现高性能面向海量数据存储的数据库关键策略。

实现高性能的海量数据存储可采取的数据库策略有:

1) 分区技术:为了更精细地对数据库对象如表、索引及索引编排表进行管理和访问。可以对这些数据库对象进行进一步的划分,这就是所谓的分区技术。

2) 并行处理技术:为了提高系统性能,可以让多个处理器协同工作来执行单个SQL语句,这就是所谓的并行处理技术。

3.1 数据库表分区技术

3.1.1 基本概念

本文研究的主要存储对象为海量数据,数据库的大小常常达到数百GB甚至用TB来计算。而单表的数据量往往会达到上亿的记录,并且记录数会随着时间而增长。当表和索引变得非常大时,分区可以将数据分为更小、更容易管理的部分来提高系统的运行效率。对表和索引进行分区的主要目的就是改善大型表的可伸缩性和可管理性。所以对大型表进行分区是处理海量数据的一种十分高效的方法。

由于本文研究的主要存储对象为海量数据,存储时数据库中只存储文件名、摘要及其它文字说明,源文件的内容存储在数据库以外的物理介质上。

3.1.2 分区策略

Oracle分区的表通过使用“分区关键字”分区,分区关键字是确定某个行所在分区的一组列。Oracle提供了三种基本数据分配方法:范围(range)、列表(1ist)与散列(hash)。使用上述的数据分配方法,可以将表分成单一分区表或组合分区表。则Oracle提供的分区技术主要分为以下几种: 范围分区,列表分区,散列分区,组合范围-散列分区,组合范围-列表分区[6]。

此外Oracle还提供三种类型的分区索引,包括本地索引、全局分区索引和全局非分区索引。可以根据业务需求选择相应的索引分区策略,从而实现最合适的分区,以支持任何类型的应用程序。

Oracle提供一套强健的技术用于表、索引和索引编排表的分区。海量数据的数据库存储可以选用以上分区技术中的一种或几种,通过一组完整的SQL命令来管理分区表,从而达到高性能检索的目的。

3.1.3 分区技术的应用

本文的研究对象是海量的文档数据集,对文档集进行分类处理,采用范围分区技术的应用将使系统各方面得到改善:

1) 增强可用性:如果数据库表的某个分区出现了故障,可以确保数据库表在其它分区中的数据仍然可用。

2) 维护方便:如果数据库表的某个分区出现了故障,则仅需修复该故障分区的数据即可,而不需要对整个数据库表进行维护。

3) 均衡I/O:可以将数据库表不同的分区映射到磁盘用以平衡I/O,可以使系统的整体性能得到改善。

4)改善查询性能:用户对分区对象进行查询时,只需要搜索用户关心的分区,从而可以提高查询速度,改善查询性能。

3.2 数据库并行处理技术

3.2.1 基本概念

并行处理技术是数据库的一项核心技术,是指利用多个CPU和I/O资源来执行单个数据库操作,从而使得数据库能够高效地管理和访问TB级的数据[7]。尽管目前主流的数据库管理系统都表示可以提供并行处理能力,但在并行处理结构上都存在着关键的差异。

3.2.2 Oracle并行处理结构

所谓并行处理是指:将单个任务分解为多个更小的单元。不是将所有工作通过一个进程完成,而是将任务并行化,从而使得多个进程同时在更小的单元上运行,这样做能极大地提高系统性能并且能最佳地利用系统资源。

Oracle使用动态并行处理框架,数据操作可以依据当前工作特征、查询及负载的重要性,使用1~N个真正应用集群节点并行运行。

3.2.3 并行处理技术的特性

Oracle数据库并行技术能提高数据库性能,并且能提高数据库的最大运行速度和最大负载量。由于并行系统的每个节点都相互独立,使得一个节点如果出现故障不会导致这个数据库崩溃,剩余的节点可以在为用户提供服务的同时对故障节点进行恢复,因此并行技术比单节点的可靠性要高。Oracle数据库并行技术还能根据需要随时分配和释放数据库实例,数据库的机动性高。还有一点就是并行技术可以克服内存限制,为更多的用户提供数据服务。

4 结束语

对象存储模式由于具有良好的可伸缩性、高性能、跨平台、安全数据共享等能力,成为海量数据存储模式的一个理想选择;配合数据库的分区技术和并行处理技术,可以实现高性能的海量数据存储。

参考文献:

[1] Garth A Gibson,Rodney Van work attached storage architecture[J].Communications of the ACM,2000,43(11):37-45.

[2] Liao H.Storage area network architectures[J].PMC-Sierra,Inc,Technology White Paper,2003.

[3] Morris R J T, Truskowski B J.The evolution of storage systems[J].IBM Systems Journal,2003,42(2):205-217.

[4] 苏勇,周敬利.基于iSCSI OSD存储系统的设计与分析[J].计算机工程与应用,2007,43(23).

[5] Sakar K. An analysis of object storage architecture[J].JEEE Computer,2003,2(3):12-34.

[6] 申红雪,刘育熙.Oraclel0g表分区技术管理[J].科技信息,2008(20).

[7] Grama M.并行计算导论[M].2版.张武,译.北京:机械工业出版社,2005.

上一篇:浅谈网络入侵检测技术 下一篇:《大学计算机基础》教学改革及实践探索