摘 要
在经历计算浪潮和网络浪潮之后,数据存储技术已经发展成为信息领域的三大支撑技术之一。随着云计算、等信息技术的发展,异构数据源越来越多,数据量飞速增长,这就使得社会对数据存储的需求逐日攀升。同时,借力于大数据分析,数据存储为社会带来的价值也日益增大。如今,数据存储作为与社会生产生活息息相关的关键性资产受到社会全方位的关注。云存储是一种以数据存储和管理为核心的云计算系统,具有易扩展,易管理、低成本,安全可靠服务不中断等特点,是大数据时代数据存储的首要选择。[1]
总之,作为一种新型服务化存储模式,云存储可广泛服务于经济建设,科学研究和国家安全领域,具有广阔而重要的应用前景。此篇论文主要对云存储技术一些术语进行探讨,并介绍其实际作用及优势何在。
关键词:
云存储;分布式;架构;磁盘阵列;Hadoop
目录
第1章 绪论
- 1.1研究背景
第2章 云存储
-
2.1云存储系统架构
-
2.2分布式存储
-
2.3云计算技术
第3章 企业存储概述
-
3.1存储工业演进
-3.1.1独立冗余磁盘阵列
-3.1.2逻辑盘卷管理 -
3.2存储产品架构演进
-
3.3企业存储关键技术
第4章 分布式文件系统
-
4.1典型分布式文件系统
-
4.2 HDFS分布式文件系统
第5章 基于Hadoop构建云存储系统
-
5.1 Hadoop2.0生态系统架构
-
5.2 Hadoop
-
5.3 Zookeeper
-
5.4 MapReduce
结论
参考文献
第1章 绪论
1.1研究背景
随着信息技术的高速发展和社会经济的发展进步,人们对计算能力的需求不断提高,数据的访问形式也发生了巨大的变化:从单个节点的独享访问,到集群,多机系统的共享访问;从数据的分散存储集中存放、统一管理;从单个数据存放节点,向数据中心发展,到建立跨城市,跨洲际的数据存储和备份体系。这些变化,对传统的存储系统的体系架构,管理模式提出了挑战。云存储是一个有效解决这些挑战的途径,并且已成为信息存储领域的一个研究热点。
可以说,云存储是一种以数据存储和管理为核心,通过网络将由大量异构存储设备构成存储资源池,融合了分布式存储、多租户共享、数据安全、数据去重等多种云存储技术,通过统一的WEB服务接口为授权用户提供灵活的、透明的、按需的存储资源分配的云系统。
云存储是在云计算基础上衍生,延伸和发展出来的。它遵循了云计算共享基础设施的服务理念、以传统的、大规模的、可扩展的海量数据存储技术为基础,集成存储、网络、虚拟化、和文件系统等多种技术,以超大规模、高性能、高效率、低能耗、高度可扩展、可靠性、可定制、动态组合和面向规模庞大的群体服务为系统目标,为用户提供高效廉价、安全可靠、可扩展、可定制和按需使用的强大存储服务。[2]
第2章云存储
2.1 云存储的系统架构
2009年4月,全球网络存储工业协会(SNIA)主持组建了云存储技术工作组TWG。该组织发布了关于云存储规范的第一个版本云数据管理接口(CDMI),即在数据对象、容器、计算、计费、性能、队列、元数据七个方面提出了初步规范。与传统存储系统相比,云存储系统面向多种类型的网络在线存储服务,是一个由网络设备、存储设备、服务器、应用软件、公用访问接口、接入网和客户端程序等多个部分组成的复杂系统、对外提供安全、可靠、高效的数据存储和业务访问业务。云存储系统的体系结构可划分为四个层次,如图1-1所示:
图1.1 云存储系统架构
2.2 分布式文件系统(Distributed File System):
分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连,分布式文件系统的设计基于客户机/服务器模式。一个典型的网络可能包括多个供多用户访问的服务器。另外,对等特性允许一些系统扮演客户机和服务器的双重角色。例如,用户可以“发表”一个允许其它客户机访问的目录,一旦被访问,这个目录,这个目录对客户机来说就像使用本地驱动器一样
分布式文件系统除具有本地文件系统的所有功能外,还必须管理分布式系统中所有计算机上的文件资源,具备存储,更新,备份和恢复功能,并满足多应用,多用户的数据共享需求。
2.3 云计算技术
1、SaaS(Software as a Service)软件即服务
云计算平台给用户提供应用软件,用户可以通过瘦客户端(如浏览器)使用应用,而无需关心底层基础设施环境的情况。
2、Pass:(Platform as a Service)平台即服务
云计算平台给用户提供开发,部署和测试应用的环境,运行平台等,用户无需了解底层硬件资源的情况就可以在这个环境中部署应用程序,配置应用的托管环境。
3、Iaas:(Infrastructure as a Service)即基础设施即服务
云计算平台给用户提供处理,存储,网络连接和其它计算资源,用户能够在云上部署和运行任意的软件(包括操作系统和应用),无需管理和控制底层的基础设施,但可以控制操作系统、存储、网络连接和部署的组件。
第3章 企业存储概述
3.1 存储工业演进
3.1.1 独立冗余磁盘阵列
1、SSD(Solid State Drivers)固态硬盘
HDD(Hard Disk Drive)硬盘驱动器
表3.1 固态硬盘和机械硬盘对比
固态硬盘和机械硬盘区别对比
2、RAID(Redundant Arrays of Independent Disks)独立冗余磁盘阵列
磁盘阵列是把多个磁盘组成一个阵列,当作单一磁盘使用,它将数据以分段(striping)的方式存储在不同的磁盘中,存取数据时,阵列中的相关磁盘一起动作,大幅减低数据的存取时间,同时有更佳的空间利用率。
(1)磁盘阵列功能
一般高性能的磁盘阵列都是以硬件的形式来达成,把磁盘阵列结合在一个控制器或控制卡上,针对不同法人用户解决人们对磁盘输出/入系统的四大要求:
①增加存取速度
②容错(fault tolerance),即安全性。
③有效的利用磁盘空间。
④尽量的平衡CPU,内存及磁盘的性能差异,提高电脑的整体工作性能。
3、磁盘阵列分级
(1)RAID0
RAID0最简单的实现方式就是把N块同样的硬盘用硬件的形式,通过智能磁盘控制器或用操作系统中的磁盘驱动程序,以软件的方式串联在一起创建一个大的卷集。在使用中电脑数据依次写人各块硬盘中。它的最大优点就就是可以整体地提高硬盘的容量,如使用了三块8OCB的硬盘组建成RAIDO模式,那么磁盘容量就是240CB其速度方面,各单独块硬盘的速度完全相同,最大的缺点在f任何一块硬盘出现故障,整个系统将会受到破坏,可靠性仅为单独块硬盘的I/N
(2)RAID1
RAIDI被称为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上, 也就是说数据在写人一块磁盘的同时,会在另一 块闲置的磁盘 上生成镜像文件,在不影响性能的情况下最大限度地保证系统的可靠性和可修复性,当一 块硬盘失效时,甚至一半数理的硬盘出现问题时,只要系统中任何对镜像盘中至少有一一块磁盘可以使用,系统会自动忽略该硬盘,正常运行而使用剩余的镜像盘读写数据,具备很好的磁盘冗余能力。虽然这样对数据来讲绝对安全,但是成本也会明显增加,磁盘利用率为50%,以四块80CB容量的硬盘来讲,可利用的磁盘空间仅为160GB。 另外,出现硬盘故障的RAID系统不再可靠,应当及时地更换损坏的硬盘,否则当剩余的镜像盘出现问题时,整个系统就会崩溃。更换新盘后原有数据会需要很长时间同步镜像,外界对数据的访问不会受到影响,只是这时整个系统的性能有所下降。因此,RAID1多用在保存关键性的重要数据的场合。[3]
4、JBOD(简单磁盘捆绑)
JBOD是与RAID相似的一种标准,也是指一组磁盘通过一个接口连接到服务器,但与RAID不同,JBOD不提供镜像,数据条带集存储和奇偶校验等功能,这些功能通常由主机上的软件来实现。
JBOD是一种最简单廉价的“裸存储”设备,独立的磁盘保存在一个机箱中,允许不同的服务器分组访问,一般不提供的“缓冲”(高速缓存)和提供先进功能的控制器。JBOD的扩展空间有限。由于缺少智能,数据条带集存储或奇偶校验,对于任意磁盘的损坏没有保护,磁带存储是磁盘损坏后恢复保存信息的常用手段。
3.1.2 逻辑盘卷管理
1、LVM(Logical Volume Manager)逻辑盘卷管理
逻辑盘卷管理是建立在磁盘和分区之上的一个逻辑层,用来提高磁盘管理的灵活性。通过LVM系统管理员可以将若干个磁盘分区连接为一整块卷组(Volume Group)形成一个存储池,然后在卷组上随意创建逻辑卷组(Logical Volumes),然后使用逻辑卷组创建文件系统。
2、LUN(Logical Unit Number)逻辑单元号
在ISCSI总线上用于描述设备的代号为Target ID,但因ISCSI的设备数量限制导致代号数量有限,而实际上通常需要描述的对象远超过该数字。于是引进LUN来扩充Target ID,每个Target下都可以有多个LUN Device,这样就可以用“Target x LUN y”来描述一个设备。
3.2存储产品架构演进
1、DAS(Direct-Attached Storage)开放系统的直连式存储
是指存储设备与服务器主机之间通过专用连线和接口直线连接,该方式依赖服务器主机操作系统来进行数据的读写和存储维护管理,数据备份和恢复会占用服务器主机的资源。
图3.1 直连存储系统结构
2、NAS(Network Attached Storage)网络附属存储
是一种特殊专用数据存储服务器,其包含了存储设备和内嵌系统,可提供跨平台文件共享。NAS将负载从应用服务器上剥离出来,在一个LAN上占有自己的节点,无需应用服务器干预,其本身能够支持多种协议和操作系统,通过浏览器就可以直观方便的操作和管理。
图3.2 网络存储结构
3、SAN(Storage Area Network)存储区域网络
采用光纤通道技术,通过FC交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。[4]
图3.3 SAN存储结构
3.3企业存储关键技术
1、Server SAN融合存储
简单地说,server san是由多个独立服务器存储组成的一个存储资源池,DAS之间实现高速互联,通过软件进行统一管理,有这良好的性价比和扩展性。
(1)Server SAN的优点:
①管理员不必担心LUN,端口,交换机等配置,不再调节旋钮或了解RAID类型。
②可以支持多个应用和不同容量,并且优化系统以及整个租户或应用的整体数据传输量。
③可以将数据动态迁移到应用
④有能力按需增加容量和性能,且无须任何手动配置或管理干预来添加移除驱动和节点。
⑤运算和存储的融合可以使Server SAN在不丧失联网优势的情况下满足低延时,部署及管理简化的需求。
(2)SAN Server的成本优势
①融合减少了存储位置和性能自动化,减少了大型专用存储仓。
②弹性特点减少了阵列更新换代的迁移成本。
③整个环境被作为一个资源池,存储设备的使用寿命被延长。
④相比硬件外置存储阵列的固定寿命,软件许可证通常是永久性的。
⑤组合型服务器和存储的整体基础设施成本比传统存储阵列低。
2、HCI超融合架构(Hyper-Converged Infrastructure)
是指在同一套单元设备中不仅仅具备计算,网络,存储和服务器虚拟化等资源和技术,而且还包括缓存加速、重复数据删除、在线数据压缩、备份软件、快照技术等元素,而多节点可以通过网络聚合起来,实现模块化的无缝横向扩展(scale-out),形成统一的资源池。
3、克隆
克隆是将分区信息、数据文件等所有内容无视硬件差别直接按照克隆镜像的方式对为复制到硬盘上。该方式的稳定性较差,若非两个物理硬件完全一样,可能会出现兼容性的问题。
4、复制
复制仅是将数据文件复制到硬盘上,其文件系统信息和存储的具体的物理地址是由目标硬盘的系统环境随机确定。该方式的稳定性较好,但性能不及克隆。
5、快照
快照是指关于指定数据集合的一个完整可用的拷贝,该拷贝包括相应数据在某个时间的映像。快照可以是其所表示数据的一个副本,也可以是数据的一个复制品。
6、分级存储
是指根据数据的重要性、访问频率、保留时间、容量、性能等指标、采取不同的存储方式分别存储在不同性能的存储设备上,并通过分级存储管理实现数据客体在存储设备间的自动迁移。
7、线性扩展
是指系统获得的扩展能力和增加的资源成比例。比如MapReduce中,如果计算节点从2台增加到3台,则性能基本可提升50%。[5]
8、星型网络架构
以一个交换机网络为核心,把主机控制器,硬盘控制器,Cache以及主控通过这个交换网连接起来,为了保证系统的可靠性,一般这个核心交换网络为双平面,这个交换网络的宽带,时延及交换机制决定了这个系统的主要性能。
9、直连矩阵体系架构
整个系统为全互联架构,有主机控制器,硬盘控制器Cache三个主要构件,三者之间采用点对点的全互联结构。为了保证系统的可靠性,一般这个全互联核心网络为双平面,而点对点的链接宽带,时延及决定各连接通断状态的决策机制决定了系统的主要性能。[6]
10、元数据(Metadata)
是描述其它数据的数据(data about other data),或者说是用于提供某种资源的有关信息的结构数据(structured data)。元数据是描述信息资源或数据等对象的数据,其使用目的在于:识别资源、评价资源、追踪资源在使用过程中的变化、实现简单高效地管理大量网络化数据、实现信息资源的有效发现、查找、一体化组织和对使用资源的有效管理。[7]
第4章 分布式文件系统
4.1典型分布式文件系统
1、主服务器
即命名节点,管理文件系统命名空间和客户端访问,具体文件系统命名空间操作包括打开、关闭、‘重命名等,并负责数据块到数据节点之间的映射;此外,存在一组数据节点,它除了负责管理挂载在节点上的存储设备,还负责响应客户端的读写请求。HDFS将文件系统命名空间呈现给客户端,并运行用户数据存放到数据节点上。从内部构造看,每个文件被分成一个或多个数据块,从而这些数据块被存放到组数据节点上;数据节点会根据命名节点的指示执行数据块创建、删除和复制操作。
NameNode负责管理存储在HDFS上所有文件的元数据,它会确认客户端的请
求,并记录下文件的名字和存储这个文件的DataNode集合。它把该信息存储在内存中的文件分配表里。
2、数据节点
DataNode负责管理存储节点上的存储空间和来自客户的读写请求。
DataNode也执行块创建、删除和来自NameNode的复制命令。
4.2 HDFS分布式文件系统
分布式文件系统在物理结构上是由计算机集群中的多个节点构成的,这些节
分为两类。一 类叫 “主节点”(Master Node)或者也被称为“名称结点”(NameNode),另一类叫“从节点”( Slave Node )或者也被称为“当是节点”(DataNode)。[6]
表4.1 固态硬盘和机械硬盘对比
NameNode DataNode
存储元数据 存储文件内容
元数据保存在内存中 文件内容保存在磁盘
保存文件,block,DataNode之间的映射关系 维护了block id到DataNode本地文件的映射关系
第5章基于Hadoop构建云存储系统
5.1 Hadoop2.0生态系统组成
图5.1 Hadoop2.0生态系统
5.2 Hadoop
(Hadoop Distributed File System)简称HDFS,Hadoop是一个基于JAVA的支持数据密集型分布式应用的分布式文件系统。不仅仅是一个用于存储的分布式文件系统,而是设计用来在由通用计算设备组成的大型集群上执行分布式应用的框架。
它能够保证应用可以在上千个低成本商用硬件存储节点上处理PB级的数据。Hadoop是Apache开源项目, Yahoo支持这个项目并在自己的web搜索和商业广告业务上使用它,Hadoop开发类似于Google的MapReduce和Google文件系统的技术。[7]
5.3 Zookeeper
(1)是一个针对大型分布式系统的可靠协调系统;
(2)是一个为分布式应用提供-致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等;
(3)目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户;
(4)Zookeeper已经成为Hadoop生态系统中的基础组件。
5.4 MapReduce
MapReduce是面向大数据并行处理的计算模型、框架和平台,它隐含了以下三层含义:
(1)MapReduce是一个基于集群的高性能并行计算平台(Cluster Infrastructure)。它允许用市场上普通的商用服务器构成一个包含数十、数百至数千个节点的分布和并行计算集群。
(2)MapReduce是一个并行计算与运行软件框架(Software Framework)。它提供了一个庞大但设计精良的并行计算软件框架,能自动完成计算任务的并行化处理,自动划分计算数据和计算任务,在集群节点上自动分配和执行任务以及收集计算结果,将数据分布存储、数据通信、容错处理等并行计算涉及到的很多系统底层的复杂细节交由系统负责处理,大大减少了软件开发人员的负担。
(3)MapReduce是一个并行程序设计模型与方法(Programming Model & Methodology)。它借助于函数式程序设计语言Lisp的设计思想,提供了一种简便的并行程序设计方法,用Map和Reduce两个函数编程实现基本的并行计算任务,提供了抽象的操作和并行编程接口,以简单方便地完成大规模数据的编程和计算处理。[9]
5.5联系
简单来讲,如果将Hadoop比作一台笔记本电脑,Zookeeper就是操作系统(协调管理),MapReduce如同CPU(数据计算),HDFS如同硬盘(文件存储),hbase形如硬盘中的存储的数据,sqoop如同数据库的客户端工具。而采用此种模式的最大优势在于极大提升了数据处理效率,节省了硬件成本。
结论
撰写此篇论文经过一系列资料查询,整合,并结合本学期学习内容,对云存储相关术语进行了简要阐述。集云计算、云存储架构、分布式、存储工业演进、基于Hadoop构建云存储系统等概念探讨,帮助初学者对云存储有一个简单的认识。
在书写此篇论文过程中加深了对所学知识的认识,熟悉了论文的书写规范,同时也意识到自己在此课程领域的不足之处,学习方面有很多遗漏,需要迫切改正。
参考文献
[1]刘洋.云存储技术[M].经济管理出版社,2017:001.
[2]刘洋.云存储技术[M].经济管理出版社,2017:003.
[3]刘洋.云存储技术[M].经济管理出版社,2017:52-56.
[4]刘洋.云存储技术[M].经济管理出版社,2017:60-73.
[5]李莉.企业存储概述[R].经世优学.2018.
[6]李莉.分布式文件系统[R].经世优学.2018.