云存储设计
‘壹’ 基于hadoop的云存储实例
基于Hadoop平台的云存储应用实践
http://cio.itxinwen.com/case_studies/2012/0327/402100.html
云计算(CloudComputing)是一种基于因特网的超级计算模式,在远程的数据中心里,成千上万台电脑和服务器连接成一片电脑云。用户通过电脑、笔记本、手机等方式接人数据中心,按自己的需求进行运算。目前,对于云计算仍没有普遍一致的定义。结合上述定义,可以总结出云计算的一些本质特征,即分布式计算和存储特性、高扩展性、用户友好性、良好的管理性。
1云存储架构图
橘色的作为存储节点(StorageNode)负责存放文件,蓝色作为控制节点((ControlNode)则是负责文件索引,并负责监控存储节点间容量及负载的均衡,这两个部分合起来便组成一个云存储。存储节点与控制节点都是单纯的服务器,只是存储节点的硬盘多一些,存储节点服务器不需要具备RAID的功能,只要能安装linux即可,控制节点为了保护数据,需要有简单的RAIDlevelO1的功能。
云存储不是要取代现有的盘阵,而是为了应付高速成长的数据量与带宽而产生的新形态存储系统,因此云存储在设计时通常会考虑以下三点:
(1)容量、带宽的扩容是否简便
扩容是不能停机,会自动将新的存储节点容量纳入原来的存储池。不需要做繁复的设定。
图1云存储架构图
(2)带宽是否线形增长
使用云存储的客户,很多是考虑未来带宽的增长,因此云存储产品设计的好坏会产生很大的差异,有些十几个节点便达到饱和,这样对未来带宽的扩容就有不利的影响,这一点要事先弄清楚,否则等到发现不符合需求时,已经买了几百TB,后悔就来不及了。
(3)管理是否容易。
2云存储关键技术
云存储必须具备九大要素:①性能;②安全性;③自动ILM存储;④存储访问模式;⑤可用性;⑥主数据保护;⑦次级数据保护;⑧存储的灵活;⑨存储报表。
云计算的发展离不开虚拟化、并行计算、分布式计算等核心技术的发展成熟。下面对其介绍如下:
(1)集群技术、网格技术和分布式文件系统
云存储系统是一个多存储设备、多应用、多服务协同工作的集合体,任何一个单点的存储系统都不是云存储。
既然是由多个存储设备构成的,不同存储设备之间就需要通过集群技术、分布式文件系统和网格计算等技术,实现多个存储设备之间的协同工作,使多个的存储设备可以对外提供同一种服务,并提供更大更强更好的数据访问性能。如果没有这些技术的存在,云存储就不可能真正实现,所谓的云存储只能是一个一个的独立系统,不能形成云状结构。
(2)CDN内容分发、P2P技术、数据压缩技术、重复数据删除技术、数据加密技术
CDN内容分发系统、数据加密技术保证云存储中的数据不会被未授权的用户所访问,同时,通过各种数据备份和容灾技术保证云存储中的数据不会丢失,保证云存储自身的安全和稳定。如果云存储中的数据安全得不到保证,也没有人敢用云存储了。
(3)存储虚拟化技术、存储网络化管理技术
云存储中的存储设备数量庞大且分布多在不同地域,如何实现不同厂商、不同型号甚至于不同类型(例如FC存储和IP存储)的多台设备之间的逻辑卷管理、存储虚拟化管理和多链路冗余管理将会是一个巨大的难题,这个问题得不到解决,存储设备就会是整个云存储系统的性能瓶颈,结构上也无法形成一个整体,而且还会带来后期容量和性能扩展难等问题。
‘贰’ 什么是云存储技术
云存储是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。 当云计算系统运算和处理的核心是大量数据的存储和管理时,云计算系统中就需要配置大量的存储设备,那么云计算系统就转变成为一个云存储系统,所以云存储是一个以数据存储和管理为核心的云计算系统。
云存储的两个层面
云存储的两个层面是作为云计算支撑的存储计算,主要涉及分布式存储(如分布式文件系统、IPSAN、数据同步、复制)、数据存储(如重复数据删除、数据压缩、数据编码)和数据保护(如RAID、CDP、快照、备份与容灾)等技术领域,如图8-30所示,这在第6章中已有所介绍。和云安全技术一样,云存储技术也需要利用现有的所有存储技术针对云计算三层架构的各个环节采用适当的存储技术,才能取得最佳效果,例如,对应不同需求,有时应该使用数据库技术但有时却应该使用LDAP技术,有些性能要求高的系统不能使用SAN或NAS,需直接使用基于RPC或Socket技术的并发文件系统,有些应用使用SAN成本太高等,这里不再做深入介绍。如图8-31所示是一个采用NetApp FAS、思科 UCS和 VMWare vShpere 4技术打造的存储系统,对上述两种云存储技术和应用都有促进作用。云存储架构
分为两类:一种是通过服务来架构;另一种是通过软件或硬件设备来架构。
传统的系统利用紧耦合对称架构,这种架构的设计旨在解决HPC(高性能计算、超级运算)问题,现在其正在向外扩展成为云存储从而满足快速呈现的市场需求。下一代架构已经采用了松弛耦合非对称架构,集中元数据和控制操作,这种架构并不非常适合高性能HPC,但是这种设计旨在解决云部署的大容量存储需求。各种架构的摘要信息如下:
紧耦合对称(TCS)架构
构建TCS系统是为了解决单一文件性能所面临的挑战,这种挑战限制了传统NAS系统的发展。HPC系统所具有的优势迅速压倒了存储,因为它们需要的单一文件I/O操作要比单一设备的I/O操作多得多。业内对此的回应是创建利用TCS架构的产品,很多节点同时伴随着分布式锁管理(锁定文件不同部分的写操作)和缓存一致性功能。这种解决方案对于单文件吞吐量问题很有效,几个不同行业的很多HPC客户已经采用了这种解决方案。这种解决方案很先进,需要一定程度的技术经验才能安装和使用。
松弛耦合非对称(LCA)架构
LCA系统采用不同的方法来向外扩展。它不是通过执行某个策略来使每个节点知道每个行动所执行的操作,而是利用一个数据路径之外的中央元数据控制服务器。集中控制提供了很多好处,允许进行新层次的扩展:
● 存储节点可以将重点放在提供读写服务的要求上,而不需要来自网络节点的确认信息。
● 节点可以利用不同的商品硬件CPU和存储配置,而且仍然在云存储中发挥作用。
● 用户可以通过利用硬件性能或虚拟化实例来调整云存储。
● 消除节点之间共享的大量状态开销也可以消除用户计算机互联的需要,如光纤通道或infiniband,从而进一步降低成本。
● 异构硬件的混合和匹配使用户能够在需要的时候在当前经济规模的基础上扩大存储,同时还能提供永久的数据可用性。
● 拥有集中元数据意味着,存储节点可以旋转地进行深层次应用程序归档,而且在控制节点上,元数据经常都是可用的。
‘叁’ 云存储架构分哪些层次,各自实现了什么功能
(1)存储层
云存储系统对外提供多种不同的存储服务,各种服务的数据统一存放在云存储系统中,形成一个海量数据池。从大多数网络服务后台数据组织方式来看,传统基于单服务器的数据组织难以满足广域网多用户条件下的吞吐性能和存储容量需求;基于P2P架构的数据组织需要庞大的节点数量和复杂编码算法保证数据可靠性。相比而言,基于多存储服务器的数据组织方法能够更好满足在线存储服务的应用需求,在用户规模较大时,构建分布式数据中心能够为不同地理区域的用户提供更好的服务质量。
云存储的存储层将不同类型的存储设备互连起来,实现海量数据的统一管理,同时实现对存储设备的集中管理、状态监控以及容量的动态扩展,实质是一种面向服务的分布式存储系统。
(2)基础管理层
云存储系统架构中的基础管理层为上层提供不同服务间公共管理的统一视图。通过设计统一的用户管理、安全管理、副本管理及策略管理等公共数据管理功能,将底层存储与上层应用无缝衔接起来,实现多存储设备之间的协同工作,以更好的性能对外提供多种服务。
(3)应用接口层
应用接口层是云存储平台中可以灵活扩展的、直接面向用户的部分。根据用户需求,可以开发出不同的应用接口,提供相应的服务。比如数据存储服务、空间租赁服务、公共资源服务、多用户数据共享服务、数据备份服务等。
(4)访问层
通过访问层,任何一个授权用户都可以在任何地方,使用一台联网的终端设备,按照标准的公用应用接口来登录云存储平台,享受云存储服务。
2云存储技术的优势
作为新兴的存储技术,与传统的购买存储设备和部署存储软件相比,云存储方式存在以下优点:
(1)成本低、见效快
传统的购买存储设备或软件定制方式下,企业根据信息化管理的需求,一次性投入大量资金购置硬件设备、搭建平台。软件开发则经过漫长的可行性分析、需求调研、软件设计、编码、测试这一过程。往往在软件开发完成以后,业务需求发生变化,不得不对软件进行返工,不仅影响质量,提高成本,更是延误了企业信息化进程,同时造成了企业之间的低水平重复投资以及企业内部周期性、高成本的技术升级。在云存储方式下,企业除了配置必要的终端设备接收存储服务外,不需要投入额外的资金来搭建平台。企业只需按用户数分期租用服务,规避了一次性投资的风险,降低了使用成本,而且对于选定的服务,可以立即投入使用,既方便又快捷。
(2)易于管理
传统方式下,企业需要配备专业的IT人员进行系统的维护,由此带来技术和资金成本。云存储模式下,维护工作以及系统的更新升级都由云存储服务提供商完成,企业能够以最低的成本享受到最新最专业的服务。
(3)方式灵活
传统的购买和定制模式下,一旦完成资金的一次性投入,系统无法在后续使用中动态调整。随着设备的更新换代,落后的硬件平台难以处置;随着业务需求的不断变化,软件需要不断地更新升级甚至重构来与之相适应,导致维护成本高昂,很容易发展到不可控的程度。而云存储方式一般按照客户数、使用时间、服务项目进行收费。企业可以根据业务需求变化、人员增减、资金承受能力,随时调整其租用服务方式,真正做到“按需使用”。
3云存储技术趋势
随着宽带网络的发展,集群技术、网格技术和分布式文件系统的拓展,CDN内容分发、P2P、数据压缩技术的广泛运用,以及存储虚拟化技术的完善,云存储在技术上已经趋于成熟,以“用户创造内容”和“分享”为精神的Web2.0推动了全网域用户对在线服务的认知。
‘肆’ 毕业设计让做一个linux下的云存储服务器,该怎么实现呢,请给出大致思路或者框架
我想知道你这东西到底“云”在什么地方。
应该就是一个网络存储功能吧?类似 samba 、NFS 的东西?
如果是这样的话,无非就是做一个远程存取的服务器程序。不过既然传输限制 UDP 和 TCP 了,那么应该除了写服务器程序,还需要一个客户端程序,而不是用浏览器实现。
客户端可以发送命令操作服务器端的数据,比如删除、移动、重命名,这部分用UDP传输。文件的上传和下载部分,用UDP传输
那这程序基本的功能要求不就已经有了?
剩下的就是细节了。比如你说的这些服务,都是对外的公共服务云,那么这些东西就要分用户,用户都有自己的文件。而且用户还要加密码,不能随便的就让某个人访问。服务器和客户端之间如何进行用户身份识别和保持,都要考虑。这样你还需要考虑用户的管理功能,客户端还需要支持登录什么的。
把基本要求找到,剩下的非要求但是必须考虑的东西就可以看情况了。比如你这个客户端做成字符界面程序,还是图形界面?服务器端那里文件怎么储存,用户账户如何存储增加减少。
‘伍’ 云计算环境中的数据挖掘存储管理设计
云计算环境中的数据挖掘存储管理设计
1.引言
Hadoop提供了一个基于HDFs的简单数据库HBase,它的设计思想和数据模型都与Google开发的模型简化的大规模分布式数据库BigTabIe极为相似。HBase不支持完全的关系数据模型,只为用户提供了简单的数据模型,让客户来动态控制数据的分布和格式。从数据模型角度看,HBase是一个稀疏的、长期存储的(存在硬盘上)、多维度的、排序的映射表。这张表的索引是行关键字、列关键字和时间戳。每个值是一个不解释的字符数组,用户需要自己解释存储的字串的类型和含义。这种模型具有很大的灵活性,通过仔细选择数据表示,用户可以控制数据的局部化。但是这种灵活性的代价就是不支持完全的关系数据模型,这导致传统的数据存储格式无法应用于HBase。Google自身的GFS是为网页搜索功能量身定做的,采用BigTable的简单数据模型可以以字符串形式灵活存储网页的URL、时间戳等信息。HDFS的设计完全借鉴了GFS的思想,因此从目前的版本来看,HDFS对网页搜索具有较好的支持,但是对于使用传统的关系数据模型的产品来说,HDFS并不是一个很好的选择,因为它不能提供传统的关系数据库的相关功能。如上所述,以Hadoop为例,目前的开源解决方案并不完全适用于某公司的新产品需求,因此我们需要参照现有解决方案,设计符合自身需要的新方案。
2.DDF的数据划分策略
面对大量的异构的用户数据,我们有必要对数据进行划分,以期得到更好的查询性能。
数据划分策略可分为垂直数据划分(Horizontal panition)和水平数据划分(VerticaI partition),在DDF中同时采用了这两种划分策略。垂直数据划分是按照功能划分:
(1)首先把对象数据、查询数据和其他数据划分到不同的数据表中(数据库的表)。
(2)对于对象数据,由于是按对象类型(Object type)访问的,那么我们可以进一步按照对象类型进行垂直划分,把不同类型的对象数据划分到相应的数据表中。
(3)对于查询数据,在目前的研究阶段,也将其按照对象类型进行垂直划分,存储到相应的数据表中。
另外,采用对象的全局标识(UID)的哈希值(Hash)进行水平划分,从而将对象数据划分到不同的数据节点(Datanode)的策略,需要面对数据迁移的问题,即当增加新的数据节点时,如何确保原有数据节点上的数据不进行或者尽量少进行迁移。
3.DDF的数据存储策略
DDF借鉴了HDFS的设计思想,在架构中引入了数据节点的概念,整个数据存储策略的设计理念如下。
(1)每个数据划分只可能存放在同一个数据库中,不允许一个数据划分分裂存放在多个数据库的情况出现。但是,具有相同数据对象类型的不同划分可以存放在不同的数据库中。
(2)允许不同类型的数据(如对象数据和查询数据)采用不同的划分策略。
(3)概念层次上的划分和存储层次上的数据库是一个多对多的关系,也就是说,我们甚至可以将所有的划分存放在同一个数据库内。这种极端情况同样是被允许的。
(4)当我们将一个划分指定给一个数据库时,它们的对应关系应被记录,这样在查询数据时可以定位到正确的数据库。
4.DDF的节点划分策略
DDF的节点划分策略是建立在数据划分和数据存储策略的基础之上的,节点划分策略从应用层面上描述了DDF各节点的功能。
对于收到的远程更新和查询操作的请求,调度节点必须进行分析,以判断这些操作的作用域。如果操作与当前位置的数据无关,那么这些更新和查询操作会被拒绝。数据节点则应具有以下功能:
(1)存储数据。
(2)处理索引相关的请求。
(3)处理查询请求。
(4)负责部分对查询结果进行分页的功能。
(5)创建并管理集合对象(对缓存的查询)。
(6)负责对过期数据进行处理,这包括删除与过期数据相关的对象和索引。
数据节点本身并不关心数据的位置问题,调度节点应该关心数据所处的位置。数据对象的全局标识符决定了它应该位于哪个位置。
‘陆’ 什么是云存储你如何看待云存储
云存储的几十年发展历程,其计算架构模型,也从Scale Up走向Scale Out。但是展望未来数字世界的海量需求,目前流行的模型还能够持续满足吗?本文通过对云存储 历史 的回顾,及对Scale Up和Scale Out两种扩展模型的诠释,来揭开云存储的未来模式。
1. 云存储及其 历史
简而言之,云存储(cloud storage)就是将数字内容安全的存储在服务器上,从而任何连接互联网的设备可以方便的获取。首先让我们简单回顾一下云存储的 历史 。
云存储的早期雏形要回溯到上个世纪的90年代,也就是互联网泡沫时期(dot-com boom),当时有许多家公司,例如EVault, NetMass, Arkeia和CommVault等等[1]均提供在线数据备份服务,当然它们绝大部分也随着互联网泡沫的破碎而烟消云散了。少数幸存下来的有一家叫Veritas NetBackup最后也被Symantec收购,现在依旧提供Symantec NetBackup的在线存储服务。
而真正让大家耳熟能详的云存储是2006年由Amazon提供的AWS S3云存储服务,其最具有革命意义的变革是,提出了即买即用(pay-per-use)的价格模型,使得云存储的使用像水电一样可计算衡量。从此云存储以S3为标准一路绝尘,我们所熟悉的大厂,比如Netflix, Pinterest, Dropbox也是S3的顾客。尾随的Microsoft和Google也于2010年分别发布了类似的Azure Blob Storage和Google Storage的存储服务。
云存储真正发展的十几年中,见证了移动互联网的崛起,大数据的生机勃发,人工智能的再次复兴,并能够展望到未来物联网,无人驾驶及各类机器人自动化的世界。海量数据的产生,存储,分析,预测及应用,快速以正反馈循环方式,推进着人类 社会 向数字世界大步迈进。所以,为了适应数据存储新的需求,各家云存储产品的应用场景及价格模型,已从单一向多元发展,比如AWS S3就有Standard,Intelligent-Tiering, Standard-IA,One Zone-IA,Glacier和Glacier Deep Archive六类存储产品来满足各类使用场景,我会在未来的文章里针对性的细讲一下。而本文重点所探讨的是,目前云存储的基础架构体系是否能够适应未来数据存储的要求和挑战?为了回答这个问题,让我们先简单回顾一下计算机体系架构里的Scale Up和Scale Out扩展模型。
2. Scale Up和Scale Out?
Scale Up又称为垂直扩展(scale vertically)[2],意为在单节点上添加资源,如CPU,内存和存储,在纵向上扩展从而获得更多计算或存储能力;Scale Up初期能够快速达到升级目的,操作起来相对比较简单,但随着计算或存储的要求越来越高,硬件资源的添加可能已经达到极限,不仅单节点的造价非常昂贵,维护成本很高,而且更容易留下单点故障的隐患。传统的RAID(Rendant Array of Inexpensive Disks)存储就是此种模式。
Scale Out又称为水平扩展(scale horizontally)[2],意为在分布式环境下,通过添加节点计算或存储资源,在横向上满足更多的计算存储需求;随着计算和存储单位价格的降低和效率的提升,使用低端的商用(commodity)系统,利用分布式技术可以搭建起“超级计算”中心,以及后来衍生出来的私有或公有云平台解决方案。虽然分布式系统会带来一定程度上的软件复杂度和管理困难,但由软件定义的计算和存储解决方案,能够以较低的价格和较高的鲁棒性,优雅的解决了海量增长的计算存储需求,也是目前云平台的主流技术。但它就一定能够承载未来的更加海量的需求吗?云存储的未来是什么?方向是向左还是向右?
3. 未来向左还是向右?
话说天下大势, 分久必合, 合久必分,事物发展的规律似乎从来就没有什么绝对。当下,云平台内部似乎已完全是Scale Out模式了,但当我们把镜头再拉远一点,从云平台在全球部署的每一个可用区来看,整体上它又是一个Scale Up模型,不是吗?单点投入巨大,耗费能源,使用成本高昂。而相反,随着强大的计算,存储和带宽能力能够进入寻常家庭、工作和生活等边缘节点,资源闲置或者不均衡使用也变得越来越明显。
那么,是否能够将这些边缘节点的计算存储能力结合起来,组成一个真正意义上的Scale Out平台,提供人们日益增长的计算存储需求?
可否将浪费或者不对等的资源重新组合,提供一个更加节能环保的绿色Scale Out平台?
可否摒弃中心化的单点故障和数据安全隐患,真正做到廉价高效,零数据泄露的Scale Out平台?
答案是应该可以而且必须可以!
纵观云存储平台的发展 历史 ,从单节点的Scale Up模式走向可用区内部的Scale Out模式,又从内部的Scale Out模式走向整体上相对的Scale Up模式。而未来数字世界的海量计算和存储需求的满足,一定需要真正意义上的全球Scale Out模型,那就是把边缘节点和半中心化节点高效且系统的组织起来,减少浪费,提高效率,节省成本,去除中心。将天空中几块为数不多的白云,变成漫天遍布的朵朵白云,让人们自由定价、自由选择、自由组合。
挑战虽然巨大,但未来很美好,让我们一起努力迎接云存储的明天!
[1]: History of Online Storage
[2]: Wiki Scalability
文章作者:Bruce Lee(http://PP.IO总架构师)
转载请注明出处
如果有关于PPIO的交流,可以通过下面的方式联系我:
加我微信,注意备注来源
wechat:omnigeeker
云存储服务平台,很精练吧
网络解释:云存储是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,是一种新兴的网络存储技术,是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的系统。
云存储可以简单的理解为将数据保存在一个第三方空间,随时取用和处理。云存储也可以说是一个以数据存储和管理为核心的云计算系统。云存储对用户来讲,不只是一个简单的设备,而是整个云存储系统的一种数据访问服务。
通过集群应用,网络技术等功能把网络中不同类型的存储设备通过应用软件集合起来工作。
云储存就是企业的公用空间(服务器),定期有人维护不用自己操心不怕数据丢失,但是数据都会在企业无保密可言,
就是网上的存储空间,不占自身内存,要用时联网下载
云存储是指通过集群应用、网格技术或分布式文件系统或类似网格计算等功能联合起来协同工作,并通过一定的应用软件或应用接口,对用户提供一定类型的存储服务和访问服务。
云存储的优势楼主有需要的话可以了解一下企业共享办公系统,可支持手机端、云端、公司服务器存储、为企业独立搭建维护企业网盘,从而实现文件归档存储、文档管理、协同办公等功能。
云存储就是将文件内存存储在云端的一种方式,不占用自己本身电脑或者手机的内存,海量存储轻松搞定,解决了很多的存储难与存储传输难的问题。
使用呆猫云盘的几大好处,企业存储资产更安全:1、使用呆猫远程桌面时可直接挂载云盘,轻松上传下载文件,支持在线修改文件。
2、项目资源统一集中管理,释放本地存储空间;支持弹性扩容,按需使用,降低本地硬件使用成本;
3、呆猫同一账号内存储互通,资源可异地共享,减少传输成本。
4、呆猫云盘与渲云网盘存储互通,使用渲云提交渲染任务时,内网同步,文件秒传,节省传输时间。
5、支持高并发读取资产文件,可同一账号最多可支持上千台机器同时读取云盘文件,提高工作效率。
6、高性能存储,百万级IOPS,超高算力助力设计行业发展。
7、云盘基于域控的安全策略,免受病毒攻击;提供多副本可靠性机制,即使机器出现故障,也不会引起数据丢失。
把你需要存储的数据放到网上,不占用你自己设备的内存,当你需要使用时从网上下载。这之间会产生数据流量。
云存储其实我们都经历过,2013年-2016年蓬勃发展,而后被玩坏的云盘,就是典型代表,虽然我们控制权益不多,只能上传下载,离线,共享,基本当作网络硬盘和交流工具使用,但却解决了人们的燃眉之急。我们现在部分手机上还有云端保存照片的功能。
实际的云存储并不是这么简单,引用一下网络:
云存储是建立在云计算的基础上,为云计算服务。对于我们似乎太深奥,但又息息相关,我们只需要知道它是好东西就行了。不单单能当作个人网络上的储存空间。