(一)分布式存储综述

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

  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”的网状拓扑结构。

    SAN

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

    NAS

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

    GFS

/**
 * @author[绿泡泡(备注java)] vip1024p
 * @【描述:浏览器open--->>>】docs.qq.com/doc/DUkVoZHlPeElNY0Rw
 */
public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello!!!");
    }
}
  • 现在
    · 代表: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)衡量。系统的响应延迟是指某个请求发出到接收到返回结果所消耗的时间,通常用平均延迟来衡量。这两个指标往往是矛盾的,追求高吞吐量,比较难做到低延迟,追求低延迟,吞吐量会受影响。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值