这篇博客主要来总结一下分布式存储系统的历史,发展以及特性,从而对分布式存储系统有一个大概的了解,主要从一下几个部分来介绍分布式存储:

  1. 分布式存储概念
  2. 分布式文件系统的发展
  3. 分布式存储系统的分类
  4. 分布式存储系统的特性

分布式存储概念

分布式存储系统顾名思义就是将大量的普通服务器,通过网络互联,对外作为一个整体提供存储服务。具有可扩展性、可用性、可靠性、 高性能、易维护、低成本等特性。


分布式文件系统的发展

  • 80年代
    · 代表:AFS、NFS、Coda
    · AFS:1983年 Carnegine Mellon大学和IBM共同合作开发Andrew文件系统(Andrew File System, AFS),AFS设计目标是将至少7000个工作站连接起来,为每个用户提供一个共享的文件系统,将高扩展性、网络安全性放在首位,客户端高速缓存,即使网络断开,可以对部分数据缓存。
    · NFS:1985年Sun公司基于UDP开发了网络共享文件系统(Network File System, NFS),NFS由一系列NFS命令和进程组成的客户机/服务器(C/S)模式。NFS第三版,加入了基于TCP传输,第三版发布六年后,NFS成为Linux中的稳定版本。
    · Coda:1987年 Carnegine Mellon大学在基于AFS的基础上开发了Coda文件系统,它为Linux工作站组成的大规模分布式计算环境设计的文件系统,通过两种互补机制为服务器和网络故障提供了容错机制,服务器复制机制,一个文件拷贝到多个服务器上,无连接操作机制,将缓存端暂时作为服务端的执行模式,Coda注重可靠性和性能优化,它提供了高度的一致性。

  • 90年代
    · 代表:xFS、Tiger Shark 、SFS…
    · 背景:进入九十年代,随着Windows的问世,极大促进了微处理器的发展和PC的广泛普及,互联网和多媒体技术也犹如雨后春笋般发展起来,一方面:对多媒体数据的实时传输需和应用越来越流行,另一方面:大规模并行计算技术的发展和数据挖掘技术应用,迫切需要能支持大容量和高速的分布式存储系统。
    · xFS:UC Berkeley参照当时高性能多处理器领域的设计思想开发了xFS文件系统,xFS克服了以往分布式文件系统只适用局域网,而不适用于广域网和大数据存储问题,提出广域网进行缓存较少网络流量设计思想,采用层次命名结构,减少Cache一致性状态和无效写回Cache一致性协议,从而减少了网络负载。

  • 20世纪末
    · 代表:SAN、NAS、GFS、HDFS、GPFS…
    · 背景:到了二十世纪末,计算机技术和网络技术得到了飞速发展,磁盘存储成本不断降低,磁盘容量和数据总线带宽的增长速度无法满足应用需求,海量数据的存储逐渐成为互联网技术发展急需解决的问题,对于分布式存储系统技术的研究越来越成熟,基于光纤通道的存储区域网络(Storage Area Network)技术和网络附连存储(Network Attached Storage)技术得到了广泛应用。
    · SAN:设计目标是通过将磁盘存储系统或者磁带机和服务器直接相连的方式提供一个易扩展、高可靠的存储环境,高可靠的光纤通道交换机和光纤通道网络协议保证各个设备间链接的可靠性和高效性,设备间的连接接口主要是采用FC或者SCSI,光纤通道交换机主要是为服务器和存储设备的链接提供一个称为“SAN fabric”的网状拓扑结构。

    · NAS:通过基于TCP/IP协议的各种上层应用(NFS等)在各工作站和服务器之间进行文件访问,直接在工作站客户端和NAS文件共享设备之间建立连接,NAS隐藏了文件系统的底层实现,注重上层的文件服务实现,具有良好扩展性,网络阻塞,NAS性能受影响。

    · GFS:Google为大规模分布式数据密集型应用设计的可扩展的分布式文件系统,Google将一万多台廉价PC机连接成一个大规模的Linux集群,它具有高性能,高可靠性,易扩展性,超大存储容量等优点。Google文件系统采用单Master多Chunk Server来实现系统间的交互,Master中主要保存命名空间到文件映射、文件到文件块的映射、文件块到Chunk Server的映射,每个文件块对应到3个Chunk Server。

  • 现在
    · 代表:HBase、Cassadra、MongoDB、DynamoDB…
    · HBase:列存储数据库,擅长以列为单位读取数据,面向列存储的数据库具有高扩展性,即使数据大量增加也不会降低相应的处理速度,特别是写入速度。
    · MongoDB:文档型数据库它同键值(Key-Value)型的数据库类似,键值型数据库的升级版,允许嵌套键值,Value值是结构化数据,数据库可以理解Value的内容,提供复杂的查询,类似于RDBMS的查询条件。
    · DynamoDB:Amazon 公司的一个分布式存储引擎,是一个经典的分布式Key-Value 存储系统,具备去中心化,高可用性,高扩展性的特点,达到这个目标在很多场景中牺牲了一致性,Dynamo在Amazon中得到了成功的应用,能够跨数据中心部署于上万个结点上提供服务,它的设计思想也被后续的许多分布式系统借鉴。


分布式存储系统的分类

  • 数据类型三大类

    1. 非结构化数据:指其字段长度不等,并且每个字段的记录又可以由可重复或不可重复的子字段构成,没有规律,比如文本、图像、声音、影视等等。
    2. 半结构化数据:介于完全结构化数据(如关系型数据库、面向对象数据库中的数据)和完全无结构的数据(如声音、图像文件等)之间的数据,HTML文档就属于半结构化数据。它一般是自描述的,数据的结构和内容混在一起,没有明显的区分。
    3. 结构化数据:结构化数据即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据,数据模式和内容是分开的,数据的模式需要预先定义。
  • 分布式存储类型
    1. 分布式文件系统:存储大量的文件、图片、音频、视频等非结构化数据,这些数据以对象的形式组织,对象之间没有关系,这数据都是二进制数据,例如GFS、HDFS等。
    2. 分布式Key-Value系统:用于存储关系简单的半结构化数据,提供基于Key的增删改查操作,缓存、固化存储,例如Memached、Redis、DynamoDB等。
    3. 分布式数据库系统: 存储结构化数据,提供SQL关系查询语言,支持多表关联,嵌套子查询等,例如MySQL Sharding集群、MongoDB等等。

分布式存储系统的特性

  • 高可用性:指分布式存储系统在面对各种异常时可以提供正常服务的能力,系统的可用性可以用系统停服务的时间和正常服务时间的比例来衡量,例如4个99的可用性(99.99%)要求一年停机的时间不能超过365*24*60/10000 = 53分钟。

  • 高可靠性:重点指分布式系统数据安全方面的指标,数据可靠不丢失,主要用多机冗余、单机磁盘RAID等措施。

  • 高扩展性:指分布式存储系统通过扩展集群服务器规模从而提高系统存储容量、计算和性能的能力,业务量增大,对底层分布式存储系统的性能要求越来越高,自动增加服务器来提升服务能力,分为Scale Up与Scale Out,前者指通过增加和升级服务器硬件,或者指通过增加服务器数量。衡量可扩展性的要求集群具有线性的可扩展性,系统整体性能与服务器数量呈线性关系。

  • 数据一致性:分布式存储系统多个副本之间的数据一致性,有强一致性,弱一致性,最终一致性,因果一致性,顺序一致性。

  • 高安全性:指分布式存储系统不受恶意访问和攻击,保护存储数据不被窃取,互联网是开放的,任何人在任何时间任何地点通过任何方式都可以访问网站,针对现存的和潜在的各种攻击与窃取手段,要有相应的应对方案。

  • 高性能:衡量分布式存储系统性能常见的指标是系统的吞吐量和系统的响应延迟,系统的吞吐量是在一段时间内可以处理的请求总数,可以用QPS(Query Per Second)和TPS(Transaction Per second)衡量。系统的响应延迟是指某个请求发出到接收到返回结果所消耗的时间,通常用平均延迟来衡量。这两个指标往往是矛盾的,追求高吞吐量,比较难做到低延迟,追求低延迟,吞吐量会受影响。

  • 高稳定性:这是一个综合指标,考核分布式 存储系统的整体健壮性,任何异常,系统都能坦然面对,系统稳定性越高越好。

(一)分布式存储综述相关推荐

  1. 分布式存储综述与方案选型

    文章目录 引言 基本诉求 存储选型考虑的要素 分布式存储的野蛮生长史 主要开源选型 GFS(Google File System) HDFS (Hadoop Distributed File Syst ...

  2. 分布式存储综述、存储原理与设计

    目录 分布式存储概念 分布式文件系统的发展 分布式存储系统的分类 数据类型三大类 分布式存储类型 分布式存储系统的特性 单机存储原理与设计 多机存储原理与设计 FLP定理与设计 CAP定理与设计 2P ...

  3. 分布式系统:概念,优缺点,架构,路线,设计,原理,演变,主流框架,工具,可靠性,问题,技术联系,总结,定制

    1 什么是分布式系统,如何学习分布式系统 https://www.cnblogs.com/xybaby/p/7787034.html 2 用大白话聊聊分布式系统 https://blog.csdn.n ...

  4. 研究综述 | 知识图谱划分算法研究综述

    作者 | 王鑫,天津大学智能与计算学部 来源 | 计算机学报 知识图谱划分是大规模知识图谱分布式处理的首要工作,是知识图谱的分布式存储.查询.推理和挖掘的基础支撑.从知识图谱和图划分的定义出发,系统性 ...

  5. 分布式数据流计算系统的数据缓存技术综述

    点击上方蓝字关注我们 分布式数据流计算系统的数据缓存技术综述 袁旭初, 付国, 毕继泽, 张岩峰, 聂铁铮, 谷峪, 鲍玉斌, 于戈 东北大学计算机科学与工程学院,辽宁 沈阳 110169 论文引用格 ...

  6. 面向大数据处理的数据流编程模型和工具综述

    点击上方蓝字关注我们 面向大数据处理的数据流编程模型和工具综述 邹骁锋, 阳王东, 容学成, 李肯立, 李克勤 湖南大学信息科学与工程学院,湖南 长沙 410008 论文引用格式: 邹骁锋, 阳王东, ...

  7. 2019年智能科学与产业综述论文盘点

    来源:计算机研究与发展 2019年综述论文盘点 1.智能芯片的评述和展望(韩栋,周聖元,支天,陈云霁,陈天石) 2.闪存存储的重构与系统构建技术(陆游游,杨者,舒继武) 3.基于动态权衡的新型非易失存 ...

  8. 人工神经网络文献综述,人工神经网络参考文献

    人工神经网络的论文 神经网络的是我的毕业论文的一部分4.人工神经网络人的思维有逻辑性和直观性两种不同的基本方式. 逻辑性的思维是指根据逻辑规则进行推理的过程:它先将信息化成概念,并用符号表示,然后,根 ...

  9. 人工神经网络研究综述,人工神经网络分析方法

    1.人工神经网络的发展趋势 人工神经网络特有的非线性适应性信息处理能力,克服了传统人工智能方法对于直觉,如模式.语音识别.非结构化信息处理方面的缺陷,使之在神经专家系统.模式识别.智能控制.组合优化. ...

最新文章

  1. android之lint警告This Handler class should be static or leaks might occur
  2. malloc 不能返回动态内存
  3. 权重不确定的概率线性回归
  4. 令用EclipseJ2EE创建的Dynamic Web project目录结构与用MyEclipse创建的Web project一样
  5. 我今天学习的技术,明天会不会一钱不值
  6. 接线端子冲击和振动测试要求
  7. STM32 三极管继电器驱动电路设计
  8. 【转】局域网速度测试 三款软件轻松搞定
  9. 跑跑卡丁车rush服务器维护,跑跑卡丁车RUSH游戏官方-跑跑卡丁车RUSH+手游官网预约v1.0.8 - 逗游网...
  10. 用ArcGIS Server服务Print打印高清大图的关键参数
  11. 使用建造者模式做一个密室逃脱类游戏
  12. 高精度高性能PI值计算程序设计和验证
  13. POJ 1265 Area(Pick定理)
  14. PWN入门(3)覆盖堆栈上的变量
  15. spring security 3.1中条用js方法登陆后无法回调
  16. 计算机知识竞赛活动工作总结,知识竞赛活动工作总结
  17. 口腔医学会计算机专业委员会,2019年中华口腔医学会口腔医学计算机专业委员会第十七次全国口腔医学数字化学术会议第二轮会议通知...
  18. python学习之一(变量的基本使用)
  19. 【泰迪杯-数据分析-1】matplotlib
  20. 江苏自考 计算机网络 是委托,2019年4月江苏自考《计算机网络原理》课程考试题型及范围...

热门文章

  1. 从双非渣硕到字节NLP算法,很强!
  2. 循环神经网络、注意力机制、Seq2Seq、Transformer与卷积神经网络(打卡2)
  3. 深度学习怎么跑代码?
  4. R语言double数据转成numeric类型
  5. R语言常见的数据类型及转换
  6. 同源跨窗口通信:网易云音乐不同标签页打开同一页面,暂停原先标签页音频播放
  7. 一是数据库系统备份,二是数据本身的备份
  8. 可能是最全的人工智能入门书单(附PDF链接)
  9. python摄像头动作捕捉_新版的IphoneX是一台动作捕捉设备,你知道怎么玩吗
  10. PCB如何更合理的拼版