分布式存储技术整体分析与研究应用唐卓博士副教授湖南大学信息科学与工程学院2015年9月传统存储技术壁垒传统的块存储承载Oracle、MySQL等关系数据库,在应对大数据环境下高性能应用系统,特别是超大规模和高并发的业务系统已经显得力不从心,暴露出很多难以克服的问题:1、传统的关系数据库具有不错的性能,高稳定型,久经历史考验,使用简单,功能强大,同时也积累了大量的成功案例。在互联网界,因为其开源和出色的性能,MySQL作为很多网站数据管理的首选。但是,随着网络技术和软件技术的飞速发展,网站开始快速发展,近几年比较火爆的论坛、博客、SNS、微博逐渐引领Web领域的潮流。随着访问量的急剧上升,几乎大部分使用传统数据库的网站都开始出现了性能问题。2、Web程序不再仅仅专注在功能上,同时也在追求性能,虽后来MySQL的集群技术和Memcache的缓存技术,使得MySql架构在一段时间缓解性能的压力,但最终还是因为其扩展性差(需要比较复杂的技术来实现),在承受大数据下的I/O压力,面临着很大的问题。3、传统的关系型数据库系统并不能提供这些应用所需要的高可扩展性,新型的网络应用又不像金融等领域那样需要严格的数据一致性和很强的事务特性,而是对海量数据的松散结构表示以及可用性和可扩展性提出了更高的要求,很多研究学者和互联网公司早已开始寻求新的数据存储和管理架构,并试着弱化数据管理系统在一致性和事务性方面的要求,向着系统可用性和可扩展性方面努力,互联网公司更是推出自己的产品,并成功运用到自己的后端系统中。云存储产生背景第一,对数据库高并发读写的需求。Web2.0应用强调的是以用户为主,需要根据用户个性化信息来实时生成动态页面和提供动态的信息,目前比较流行的微博就是如此,对数据库的并发访问的负载就非常高,往往能达到每秒上万次的读写请求,甚至更多。从已有的优秀的数据库产品看来,在应付上万次SQL查询还能勉强应付,但是应付上万次SQL写数据请求时,I/O成了瓶颈。第二,对海量数据的高效率存储和访问的需求。以FACEBOOK为例,一个月就达到了2._5亿条用户动态,对于关系数据库来说,在一张拥有2._5亿条记录的表里面进行SQL查询,效率是极其低下乃至无法忍受的。第三,对数据库的高可扩展性和高可用性的需求。在基于Web的架构中,数据库是最难进行横向扩展的,当一个Web应用的用户量和访问量与口俱增的时,数据库服务器却没办法像WebServer那样简单的通过更多的硬件和服务节点来进行扩展性能和分担负载。很多需要不间断提供服务的网站来说,因为这样的升级需要停机维护和数据迁移,对用户体验值急剧降低。第四,支持非结构化数据的处理能力的需求。传统的关系型数据库对数据的处理,对数据类型有比较明确的限制,只针对某些数据类型,如整型数字,字符及字符串等,对类似图片,音视频的非结构化出具的支持不够存储类型汇报目录1块存储2分布式文件存储33对象存储34表存储35数据迁移策略36存储类型存储类型分布式文件存储对象存储直接附加存储DAS块存储表存储存储域网络SANIPSANFCSAN网络附加存储NAS日志详单类存储NoSQL存储Google文件系统GFSHadoop分布式文件系统OLTP关系数据库OLAP数据仓库BC-oNestAmazonS3BigTableHBase汇报目录存储类型1块存储2分布式文件存储33对象存储34表存储35数据迁移策略36块存储技术(1)块存储将存储区域划分成固定大小的小块,是传统裸存储设备的存储空间对外暴露方式。块存储系统将大量磁盘设备通过SCSI/SAS或FCSAN与存储服务器连接,服务器直接通过SCSI/SAS或FC协议控制和访问数据。块存储方式不存在数据打包/解包过程,可提供更高的性能。系统目标:为现有各种应用提供通用的存储能力在云计算环境下,块存储设备面临着分布式环境数据块数据块数据块数据块数据块存储节点2数据块数据块数据块数据块数据块存储节点1索引节点直接索引1直接索引2直接索引3直接索引4直接索引5直接索引6目录索引目录索引数据块数据块数据块数据块存储节点传统设备的块存储面向的是单一的物理设备块存储技术(2)块存储主要适用场景•基于传统的磁盘阵列实现,对外提供标准的FC或iSCSI协议•数据访问特点:延迟低、带宽较高、但可扩展性差•应用系统跟存储系统耦合程度紧密•以卷的方式挂载到主机操作系统后,可格式化文件系统,或以裸数据或文件系统的方式作为数据库的存储块存储技术特点•为一些高性能,高IO的企业关键业务系统(如企业内部数据库)提供存储。块存储本身可以通过多个设备堆叠出更大的空间,但受限于数据库的能力,通常只能支持TB级数据库应用•可为虚拟机提供集中存储,包括镜像和实例的存储块存储技术(3)块存储主要包括DAS和SAN两种存储方式直接附加存储DAS以主机为中心,将外部的数据存储设备通过SISC/IDE/ATA等I/O总线直接连接到服务器上,使数据存储设备是服务器结构一部分。SAN采用块数据组织,通过可伸缩的高速专用存储网络互连不同类型的存储设备和服务器,提供内部任意节点间多路可选择的数据交换。应用服务器文件系统SCSI,FCJBOD应用服务器文件系统光纤交换机RAIDRAID块存储技术(4)优点缺点DAS•设备成本低廉,实施简单•通过磁盘阵列技术,可将多块硬盘在逻辑上组合成一块硬盘,实现大容量的存储•不能提供不同操作系统下的文件共享•存储容量受限I/O总线支持的设备数量•服务器发生故障时,数据不可访问•数据备份操作非常复杂SAN•可实现大容量存储设备数据共享•可实现高速计算机和高速存储设备的高速互联•可实现数据高效快速集中备份•建设成本和能耗高,部署复杂•单独建立光纤网络,异地扩展比较困难•互操作性差,数据无法共享•元数据服务器会成为性能瓶颈适用场景DAS•服务器在地理分布上很分散,通过SAN或NAS在它们之间进行互连非常困难•既要求数据的集中管理,又要求最大限度的降低数据的管理成本•许多数据库应用和应用服务器在内的应用,它们需要直接连接到存储器上SAN•与其它计算资源紧密集群来实现远程备份和档案存储过程•磁盘镜像、备份与恢复、档案数据的存档和检索、存储设备间的数据迁移以及网络中不同服务器间的数据共享等•用于合并子网和网络附接存储系统块存储产品-EMCDataDomainEMCDataDomain是一种采用重复数据消除技术的面向大数据备份的备份云重复删除方式在线重复删除重复删除模式变长重复删除数据复制技术1:N,N:1,双向多级RAID组盘方式RAID6多级数据校验完全数据协议VTL全局重复删除支持对备份软件的支持支持几乎所有主流备份软件块存储产品-IBMXIVIBMXIV存储系统是一款创新的创新的高端开放式网格块存储磁盘存储系统系统特点•高可靠/可用性•持续的高性能•极佳的管理性•全部内置的企业功能•最佳性价比技术架构•采用大规模并行的分布式网格存储技术•使用了横向扩展的存储架构•利用多路网格模块并行分担存储负荷•通过细粒度数据分布算法保证数据的恒定均衡分布块存储产品-华赛Oceanspace华赛OceanspaceS6800T存储系统是面向企业级高端存储应用的新一代产品主要特点•高性能,高扩展性•高可靠,高可用性•高效、灵活、简单•绿色节能技术架构•以业界领先的硬件规格为支撑,融合了高密磁盘设计•TurboModule高密度I/O模块及热插拔设计•TurboBoost三级性能加速技术•多重数据保护等高端技术•满足大型数据库OLTP/OLAP,高性能计算,数字媒体,互联网运营,集中存储,备份,容灾,数据迁移等不同业务应用的需求云存储关键技术容灾备份重复数据删除定义在相隔较远的异地,建立两套或多套功能相同的IT系统,互相之间可以进行健康状态监视和功能切换,当一处系统因意外(如火灾、地震等)停止工作时,整个应用系统可以切换到另一处,使得该系统功能可以继续正常工作关键技术包括数据备份技术、数据复制技术和数据管理技术等,应用容灾包括灾难检测技术、系统迁移技术和系统恢复技术等定义是一项存储优化技术,可以消除冗余数据的多个副本并且仅存储唯一的数据,从而减少数据占用的空间主流厂商采用方法•基于散列(Hash)的方法•基于内容识别的重复删除•DiligentTechnologies用于ProtecTierVTL的技术南基IDC管理域块存储应用现状IDC管理域存储资源池划分为三个功能池,分别是低性能存储资源池(IBMDS5020)、高性能存储资源池(IBMDS5300-生产)、备份存储资源池(IBMDS5300-备份)设备名称功能模块硬件配置数量备注磁盘阵列实时生产用DS5300(48个600GFC盘)1新增实时生产用DS5020(14个600GFC盘)1利旧600GFC盘5新增备份存储DS5300(32个2TSATA盘)1新增汇报目录存储类型1块存储2分布式文件存储33对象存储34表存储35数据迁移策略36分布式文件存储文件存储以标准文件系统接口形式向应用系统提供海量非结构化数据存储空间。分布式文件系统把分布在局域网内各个计算机上的共享文件夹集合成一个虚拟共享文件夹,将整个分布式文件资源以统一的试图呈现给用户。它对用户和应用程序屏蔽各个节点计算机底层文件系统的差异,提供用户方便的管理资源的手段或统一的访问接口。分布式文件系统的出现很好的满足互联网信息不断增长的需求,并为上层构建实时性更高,更易使用的结构化存储系统提供有效的数据管理的支持。在催生了许多分布式数据库产品的同时,也促使分布式存储技术不断的发展和成熟。技术特点•提供NFS/CIFS/POSIX等文件访问接口•协议开销较高、响应延迟较块存储长•应用系统跟存储系统的耦合程度中等•存储能力和性能水平扩展适用场景•适合TB~PB级文件存储,可支持文件频繁修改和删除。例如图片、文件、视频、邮件附件、MMS的存储•海量数据存储及系统负载的转移•文件在线备份•文件共享传统分布式文件系统NAS技术特点应用服务器以太网交换机文件系统RAID文件系统RAID网络附件存储NAS是一种文件网络存储结构,通过以太网及其他标准的网络拓扑结构将存储设备连接到许多计算机上,建立专用于数据存储的存储内部网络文件协议支持NFS和CIFS网络文件协议连接方式百兆/千兆以太网主要功能细颗粒度数据共享及跨平台文件共享存储扩展高达数百TB,不停机适用场景商业或企业级数据共享;高性能计算或技术计算优点易于管理,节约成本缺点系统(包括存储容量和性能)扩展性差SAN和NAS的区别:SAN是网络上的磁盘阵列,NAS是一个网络上的文件系统。SAN其实是一个网络,但这个网络里包含各种各样的元素,主机、适配器、网络交换机、磁盘阵列等。所以NAS通常是一个以以太网连接的远程服务器集群的文件系统,而SAN是一个以高速子网(比如说光纤网络FC)所连接的网络磁盘阵列。分布式文件系统-GFSGFS是Google公司为了存储海量搜索数据而设计的专用文件系统。GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用GFSClient(客户端)GFS集群Master(主服务器)ChunkSever(数据库服务器)Client:GFS提供给应用程序的接口,不遵守POSIX规范以库文件形式提供Master:GFS的管理节点,主要存储与数据文件相关的元数据ChunkSever:负责具体的存储工作,用来存储Chunk分布式文件系统-HDFSHDFS(HadoopDistributedFileSystem)是运行在通用硬件上的分布式文件系统,提供了一个高度容错性和高吞吐量的海量数据存储解决方案HDFSNameNode(Master服务器)DataNode(Slave服务器)NameNode功能•处理来自客户端的文件访问•处理来自客户端的文件访问•负责数据块到数据节点之间的映射DataNode功能•管理挂载在节点上的存储设备•响应客户端的读写请求•在NameNode的统一调度下创建、删除和复制数据块GFS和HDFS对比相同点•采用单一