近年来,云存储已成为存储行业未来发展最为明朗的方向之一,它是在云计算的基础之上的延伸和发展,是一个以数据存储和管理为核心的云计算系统。海量数据的指数增长已成为现实,根据IDC (Internet Data Center, 互联网数据中心) 的最新统计结果显示,到2012 年底, 全球数据总量将达到2.7 ZB,到2015年将达到8 ZB。麦肯锡的研究报告指出,大量的数据已经渗透到每一个行业和业务职能领域,逐渐成为重要的生产要素。目前, 传统的数据存储的扩展性不佳, 写人数据的速度远远低于数据产生的速度。
于是云计算技术应用而生,Hadoop云计算平台是Apache旗下的一个开源分布式计算项目,有效的解决了上述问题。Hadoop在可申缩性、健壮性、计算性能和成本上具有明显的优势,已成为当前互联网企业主流的大数据存储和分析平台。预计,在未来5年内将有50%的大数据项目会在Hadoop 的框架上运行。该文在Hadoop 云计算平台为基础上,验证了Hadoop面对海量数据的处理能力,以及设计并实现了基于hadoop分布式文件系统的Scool云存储文件管理系统。
1 云存储平台
云存储的实现要以多种技术的发展为前提,比如宽带网络的发展、WEB2.0技术、应用存储的发展、集群技术、网格技术、分布式文件系统、CDN内容分发、P2P技术、数据压缩技术、重复数据删除技术、数据加密技术、存储虚拟化技术、存储网络化管理技术。海量数据的可管理性、可扩展性、可靠性、总体成本(TCO)、以及容量扩展性将最终决定云存储未来发展形式。所有云存储系统应具有硬件冗余、自动的故障切换、存储设备升级不会导致服务中断、容量分配不受物理硬盘限制、节省电力、及时提供容量的扩展、海量并行扩容、统一的对外名称、负载均衡、容易管理等优点。
1.1 云存储的特性
异构性:是指云存储系统能够兼容不同的存储设备、网络差异、不同的操作系统、各种计算机硬件和不同编程语言。
分布性:是指单一的数据中心存储模式无法满足现有用户在数据访问效率、数据可靠性和系统负载均衡方面的需求,云存储平台的存储资源池中将包含多个地理位置分布的数据中心用来进行数据冗余和负载均衡。
扩展性:是指云存储系统可以简单高效的为存储空间扩容,存储节点的加入和退出必须以热插拔的方式进行。
透明性:是指包括存储位置透明和用户访问透明,用户不需要关心数据存储的具体位置,就能够就近访问到数据的副本,对于用户而言,数据总是可用的。
并发性:是指云存储系统中多个用户可能会同时对共享数据资源发出请求,每个云存储组件必须被设计成在并发环境中是安全的。
可靠性:是指任一进程、计算机和网络都有可能独立的发生故障,因此每个云存储组件需要清楚所依赖的组件可能出现故障的方式,组件要设计成能适当的处理每个故障。
效率:是指用户访问云存储系统中共享数据的算法应该避免性能瓶颈,频繁访问的数据需要复制更多的副本,用户能够就近获得最快的访问时间,同时用户使用云存储服务的接口应该尽可能简单。
2 云存储的结构模型
云存储是以存储设备为核心,综合了多种高新计术构成的复杂系统。它通过应用软件来对外界用户提供统一的服务。其结构模型由以下四层组成。
2.1 存储层
存储层是云存储中最为基础的部分, 同时也是云存储的底层。云存储通过互联网、光纤通道网络等,将大量的不同类型且分布在不同地理位置的存储设备连接在一起,实现海量数据的统一存储。同时实现对存储设备的集中管理、状态监控以及容量的动态扩展。实质上,这就是一种面向服务的分布式存储系统。
2.2 基础管理层
基础管理层在云存储系统中是最难实现的部分,也是云存储中最为核心的一层。该基础管理层主要应用集群、分布式文件系统、虚拟化等技术来实现云存储系统中多个存储设备之间的协同工作,使得这些不同设备能够面向用户提供一致的服务。为了保护用户数据的安全性和私密性, 云存储使用了数据加密技术、内容分发技术、数据备份和容灾等技术来保证用户的数据不被窃取、泄密或丢失。通过设计统一的用户管理、安全管理、副本管理及策略管理等公共数据管理功能,将底层存储与上层应用无缝衔接起来, 实现多存储设备之间的协同工作,以更好的性能对外提供多种服务。
2.3 应用接口层
应用接口层是云存储中最灵活多变的部分。云存储服务商根据实际业务需求,可以开发远程数据备份、视频点播平台等不同类型的服务接口,为用户提供相应的应用服务。应用接口层是云存储平台中可以灵活扩展的、直接面向用户的部分。根据用户需求,云存储可以开发出不同的应用接口,提供相应的服务,例如数据存储服务、空间租赁服务、公共资源服务、多用户数据共享服务、数据备份服务等。
2.4 访问层
访问层是云存储中要求只有经过授权的用户才可以通过标准的应用接口登陆系统,才能享用里面的各项服务。但是服务商所提供的访问手段和访问类型因采用的手段不同而不同,但是通过数据访问层的话,任何一个授权用户都可以在任何地方,使用任意一台联网的终端设备,按照标准的公用应用接口来登录云存储平台,享受云存储服务。
3 部署云平台
3.1 Hadoop
Hadoop是Apache旗下的一个开源项目,用来支持数据密集型的分布式应用,能够支持上千节点以及海量(PB 级)数据量的运算。Hadoop 主要由两部分构成:Hadoop 分布式文件系统(HDFS[6])和在HDFS上的MapReduce [7]编程模型实现。
3.1.1 HDFS分布式文件系统
HDFS是Google GFS的开源版本的实现,作为一个高度容错的分布式文件系统,它能够提供高吞吐量的数据访问,适合存储海量的大数据文件,在软件层内置数据容错能力,可应用于云存储系统的搭建与开发,和现有的分布式系统最大的不同点在于高容错性、易扩展和低成本。
HDFS是可以运行在普通硬件上的分布式文件系统,采用主/丛(Master/Slave)结构。其中NameNode主要负责维护集群内的元数据,所有块的元数据都被注册在NameNode,对外提供创建、打开、删除和重命名文件或目录的功能。DataNode负责存储数据,并提负责处理数据的读写请求。DataNode定期向NameNode上报心跳,NameNode通过响应心跳来控制DataNode。HDFS 提供了一个高度容错性和高吞吐量的海量数据存储解决方案。HDFS 可以提供以下特性:
1)可自我修复的分布式文件存储系统;
2)高可扩展性,无需停机动态扩容;
3)高可靠性,数据自动检测和复制;
4)高吞吐量访问,消除访问瓶颈;
5)使用低成本存储和服务器构建。
3.1.2 MapReduce的实现
MapReduce模型由两项核心操作构成:Map和 Reduce, 是Google 的一项重要技术,也是一个编程模型,用以进行大规模据量的高效计算。对于大量数据的计算,通常采用的手法就是并行计算。对于现阶段而言,并行计算对许多开发人员来说还是一个比较遥远的东西。MapReduce就是一种简化并行计算的编程模型,它让那些没有多少并行计算经验的开发人员也可以开发并行应用程序。
3.1.3 Hadoop优势
综上所述,本平台基于Hadoop分布式技术实现,使编程和实现起来都比较容易,能够高效地存储和管理海量数据,具体来说有以下优势:存储方面:现在世界上最大的Hadoop集群目前在Facebook,可以存储30PB的数据。计算方面:Hadoop是目前Terasort(Terasort是Hadoop中的的一个排序作业)记录的保持者,Terasort是给出1TB的随机数据,看谁能够在最短的时间内完成排序,Hadoop使用了1400多个节点,在2分钟内完成1T的数据排序。
3.2 云平台搭建
云计算平台的部署是复杂的系统工程,包括基础设施的组装与搭建、云计算系统平台的安装、部署、调试和测试等等。本实验应用Hadoop框架来构建小型的云计算平台环境,在硬件上用普通PC单机或多台普通PC电脑即可实现。
本实验由4台普通PC电脑构成,配置均为Core2处理器,2G内存,操作系统为Red Hat Linux。其中一台作为Namenode,机器名为master,其余三台作为dataNode,机器名分别为slave01、slave02、slave03。系统结构如图1所示。在4台机器上建立统一的Hadoop用户,并设置Hadoop用户从master主机到各个slaves主面登录不需要使用密码。安装Hadoop运行环境Java1.7,安装版本为Hadoop1.0.3的Hadoop系统,配置conf文件夹下的hadoopenv.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、master、slave文件,初始化Namenode 节点并格式化hadoop文件系统的存储空间,并保证Hadoop文件系统在各个节点上配置文件的一致性。
图1 Hadoop 试验平台结构
3.3 Scool云存储管理系统设计
3.3.1 系统设计
本文开发的Scool系统设计的中心思想是以WEB 方式向用户提供文件操作服务功能,用户在WEB基础上使用本系统,给用户使用带来了极大地方便, 用户只需要通过注册就能获取系统提供的存储空间,就可以获取系统提供的存储服务,用户可以方便的管理和使用自己的空间。系统安全也是我们设计的一个重点,系统通过单独的文件管理服务器向云存储系统发送用户请求,系统通过调用Hadoop系统提供的多种API方式方便地管理用户文件,没有经过验证的用户是不能调用和使用API接口。(如图2所示)
本系统利用Hadoop作为底层集群部署,由于Hadoop对硬件的要求不高,普通pc机就可以达到要求,并能够高效的处理数据,方便用户的使用和操作,为用户数据提供统一管理界面,对用户及时返回处理结果,系统设计总体可有效加快其服务应用的部署和实施工作。
图2 系统结构
3.3.2 模块设计
本系统有以下四个模块组成,如图3所示:
用户管理模块:本模块用来完成新用户的注册功能,成功通过注册的用户将成为合法用户,并获取一定的存储空间。经过用户注册,系统会记录用户申请时的用户名和密码以及其它用户信息,并保存这些用户数据信息到数据库。用户身份认证功能是指用户以WEB的方式登录到本系统,用户登录时系统会根据用户登录信息与数据库保存的信息对比,对比完全一致时才能够登录到本系统。否则,用户将无法获取云存储系统提供的服务功能。信息管理功能是指用户拥有管理相关用户信息的权力,如登录密码更改、用户信息更改、密码找回等功能。 文件管理模块:本模块是指合法用户在系统提供的存储空间上的文件操作服务功能,用户通过此服务管理存储空间上的相关文件。用户可以完成上传文件,下载文件,删除文件等操作。本系统增加SWFUPLOAD技术来实现上传大文件的功能,最大支持1G大小的文件上传。
目录管理模块:本模块的功能是用户管理存储空间上的文件存储目录,用户可以新建目录来管理不同分类的文件,用户也可以删除相应的目录。
图3 系统设计
3.3.3 系统实现
基于Hadoop的云存储管理系统,实现了为用户提供云存储服务的基本功能,用户登录系统就可以体验Scool云存储带给用户的方便、实用、高效的服务。如图4所示。
图 4 系统界面
4 结束语
基于Hadoop实现的云存储平台,能够提供一种廉价的大规模数据存储以及高速数据处理的解决方案。同时,该存储平台具有可扩展性、安全性、容灾性、副本自动还原、快速的特性,能够满足用户对存储平台实时的按需扩容的需求。以HDFS作为分布式数据存储的容器,解决了数据冗余备份的问题。云存储平台解决了非结构化和半结构化的松散数据存储,以及存储层的可靠性和可扩展性等问题。同时,基于Hadoop的云存储平台在对象访问接口层实现了功能丰富的接口,能够满足日益增长的应用需求,为今后的云存储安全、性能优化、以及开发其它应用服务的研究提供基础。
系统的安全以及性能优化是下一步研究工作的重点,系统安全方面最为重要,研究kerberos认证机制是一种有效的解决方案,kerberos实现的是机器级别的安全认证,由于kerberos对集群里的所有机器都分发了keytab,相互之间使用密钥进行通信,确保不会冒充服务器的情况,以保证云存储的安全防护功能。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/