一,主流存储类型的概述

1,主流存储分类

按照存储类型可以分为块存储,文件存储,对象存储

阿里云1+X云计算开发与运维——分布式存储理论_文件存储

阿里云1+X云计算开发与运维——分布式存储理论_数据_02


1、块存储
典型设备: 磁盘阵列,硬盘
主要是将裸磁盘空间映射给主机使用的。
使用场景:
docker容器、虚拟机远程挂载磁盘存储分配。
日志存储。
文件存储。


2、文件存储
典型设备: FTP、NFS服务器为了克服块存储文件无法共享的问题,所以有了文件存储。在服务器上架 设FTP与NFS服务,就是文件存储。

使用场景:
日志存储。
多个用户有目录结构的文件存储共享。
文件存储通常需要一个app 的服务器将文件存储挂载到本地。


3、对象存储
典型设备: 内置大容量硬盘的分布式服务器(swift, s3),多台服务器内置大容量硬盘,安装上对象存储管理软件,对外提供读写访问功能。
使用场景: (适合更新变动较少的数据,没有目录结构, 不能直接打开/修改文件)
图片存储。
视频存储。
文件
软件安装包
对象存储实际上更贴近http的应用。



# 区别说明:
通常我们说存储分为块、文件和对象,从应用场景来看:
    对象存储近年来在国内市场逐渐火热起来,主要是特定行业的海量非结构化数据的应用场景。
    由于对象存储采用扁平的文件组织方式,所以在文件量上升至千万、亿级别,容量在PB级别的时候,这种文件组织方式下的性能优势就显现出来了,文件不在有目录树深度的问题,历史和近线数据有同样的访问效率。
    另外,对象存储多采用分布式架构,可以在商用x86服务器上轻松构建对象存储,磁盘介质也大多采用低速的SATA盘,所以在成本上也具优势。

    块存储主要用于结构化数据类应用,在相对小的容量空间上可以提供更高的IO性能,所以从后端存储产品形态上来看,一般是多控多活的紧耦合集中式SAN架构,存储介质大多采用高速的SAS和近年来已成主流的固态硬盘,前端多采用FC光纤协议组网。
    另外,存储双活、存储虚拟化、存储复制等技术也支撑着这块的生态。

    文件存储主要是集中式或分布式的NAS类应用,以灵活的共享文件系统为特色,承载百万文件量和TB级别的文件类应用。

    我的总结:说白了,块存储,是最底层的存储,它关注的是磁盘的基本存储单元——块(Block),块存储可以没有软件服务器。
    而文件存储(像NAS)和对象存储(S3、七牛云),是软件层面的存储,底层也是基于块存储的。而文件存储和对象存储的区别在于,他们组织文件的方式,文件存储是有目录树的、有标准属性的(权限、用户、读写),而对象存储是扁平的、没有目录的、附加属性是灵活的,他们的接口协议也不一样。
    对象存储接口主要以S3与Swift为代表,其接口就是简单的GET、PUT、DEL和其他扩展,文件存储的话是以POSIX接口为主,以libcephfs为代表。
    有些分布式存储,比如Ceph,是同时支持块存储、对象存储和文件存储的,只是对应的接口不同。

2,主流存储技术

2.1-主流存储技术-DAS

DAS(Direct Attach STorage): 
    是直接连接于主机服务器的一种储存方式,每一台主机服务器有独立的储存设备,每台主机服务器的储存设备无法互通,需要跨主机存取资料时,必须经过相对复杂的设定,若主机服务器分属不同的操作系统,要存取彼此的资料,更是复杂,有些系统甚至不能存取。通常用在单一网络环境下且数据交换量不大,性能要求不高的环境下,可以说是一种应用较为早的技术实现。

阿里云1+X云计算开发与运维——分布式存储理论_服务器_03

优点:

能实现大容量存储,满足海量存储的需求
能提高存取性能
可实现应用数据和操作系统的分离
实施简单

局限:

服务器本身容易成为系统瓶颈
服务器发生故障,数据不可访问
对于存在多个服务器的系统来说,设备分散,不便管理。
同时多台服务器使用DAS时,存储空间不能在服务器之间动态分配,可能造成相当的资源浪费数据备份操作复杂。

2.2-主流存储技术-SAN

SAN (Storage Area Network): 
是一种用高速(光纤)网络联接专业主机服务器的一种储存方式,此系统会位于主机群的后端,它使用高速1/0 联结方式,如 SCSI,ESCON 及 Fibre- Channels。一般而言SAN应用在对网络速度要求高、对数据的可靠性和安全性要求高、对数据共享的性能要求高的应用环境中。

阿里云1+X云计算开发与运维——分布式存储理论_文件存储_04

优点:

高可用性能
提高了数据的可靠性和安全性易扩展性和兼容性
集中管理、共享存储
实现快速备份
提高数据访问速度
异地容灾的实现

局限:

成本高
网络带宽容易变成整个存储性能的瓶颈

2.3-主流存储技术-NAS

NAS (Network Attached Storage) : 
    是一套网络储存设备,通常是直接连在网络上并提供资料存取服务,一套 NAS 储存设备就如同一个提供数据文件服务的系统,特点是性价比高。例如教育、政府、企业等数据存储应用。

阿里云1+X云计算开发与运维——分布式存储理论_数据_05

优点:

轻松实现共享
容量扩展简单灵活
性能稳定,维护简单
性价比高
只需与传统交部署非常简单,!换机连接即可

局限:

NAS受限于网络
NAS的可扩展性受到设备大小的限制。
NAS访问需要经过文件系统格式转换,所以是以文件级来访问。不适合 Block级的应用,尤其是要求使用裸设备的数据库系统。
前期安装和设备成本较高

2.4-主流存储技术-RAID

独立磁盘几余阵列(RAID,redundant array ofindependent disks) :
    是由很多块独立的磁盘,组合成个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。

RAID技术主要基本功能:

1.通过对磁盘上的数据进行条带化,实现对数据成块存取减少磁盘的机械寻道时间,提高了数据存取速度。

2.通过对一个阵列中的几块磁盘同时读取,减少了磁盘的机械寻道时间,提高数据存取速度

3.通过镜像或者存储奇偶校验信息的方式,实现了对数据的冗余保护。

RAID关键技术:

# 镜像
    镜像是一种冗余技术,为磁盘提供保护功能,防止磁盘发生故障而造成数据丢失。提供了完全的数据冗余能力当一个数据副本失效不可用时,外部系统仍可正常访问另一副本,不会对应用系统运行和性能产生影响。而且镜像不需要额外的计算和校验,故障修复非常快,直接复制即可。镜像技术可以从多个副本进行并发读取数据提供更高的读I/0性能,但不能并行写数据,写多个副本会导致一定的I/0性能降低。


# 数据条带
    RAID由多块磁盘组成,数据条带技术将数据以块的方式分布存储在多个磁盘中,从而可以对数据进行并发处理。这样写入和读取数据就可以在多个磁盘上同时进行,并发产生非常高的聚合I/0,有效提高了整体I/O性能,而且具有良好的线性扩展性这对大容量数据尤其显著,如果不分块,数据只能按顺序存储在磁盘阵列的磁盘上,需要时再按顺序读取。而通过条带技术,可获得数倍与顺序访问的性能提升。


# 数据效验
    数据校验是一种冗余技术,它用校验数据来提供数据的安全,可以检测数据错误,并在能力允许的前提下进行数据重构。相对镜像,数据校验大幅缩减了几余开销,用较小的代价换取了极佳的数据完整性和可靠性。数据条带技术提供高性能,数据校验提供数据安全性,RAID不同等级往往同时结合使用这两种技术。海明校验码和异或校验是两种最为常用的数据校验算法。

优点:

提高传输速率
通过数据校验提供容错功能
提高了系统的稳定几余性。

局限:

RAIDO没有冗余功能,如果一个磁盘(物理)损坏则所有的数据都无法使用。
RAID1磁盘的利用率最高只能达到50%(使用两块盘的情况下),是所有RAID级别中最低的。
RAID1+0以理解为是RAID O和RAID1的折中方案RAID 1+0可以为系统提供数据安全保障,但保障程度要比Mirror低而磁盘空间利用率要比Mirror高。

RAID 0 介绍:

RAID0是最早出现的RAID模式,即Data Stripping数据分条技术。RAID 0是组建磁盘阵列中最简单的一种形式只需要2块以上的硬盘即可,成本低,可以提高整个磁盘的性能和吞吐量,没有提供冗余或错误修复能力,但实现成本是最低的。

阿里云1+X云计算开发与运维——分布式存储理论_服务器_06

阿里云1+X云计算开发与运维——分布式存储理论_数据_07

RAID 1 介绍:

RAID1称为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时会在另一块闲置的磁盘上生成镜像文件,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行,当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据,具备很好的磁盘冗余能力。虽然这样对数据来讲绝对安全,但是成本也会明显增加,磁盘利用率为50%,RAID 1多用在保存关键性的重要数据的场合。

阿里云1+X云计算开发与运维——分布式存储理论_数据_08

RAID 1+0 介绍:

RAID 1+0名称上便可以看出是RAID1与RAIDO的结合体。在我们单独使用RAID 1也会出现类似单独使用RAID0那样的问题,即在同一时间内只能向一块磁盘写入数据,不能充分利用所有的资源。为了解决这一问题,可以在磁盘镜像中建立带区集。因为这种配置方式综合了带区集和镜像的优势,所以被称为RAID 1+0。把RAID1和RAIDO技术结合起来,数据除分布在多个盘上外,每个盘都有其物理镜像盘,提供全余能力允许一个以下磁盘故障,而不影响数据可用性,并具有快速读/写能力。RAID1+0要在磁盘镜像中建立带区集至少4个硬盘

阿里云1+X云计算开发与运维——分布式存储理论_文件存储_09

RAID 5:

RAID5(分布式奇偶校验的独立磁盘结构)的奇偶校验码存在于所有磁盘上,其中的p0代表第0带区的奇偶校验值。RAID5的读出效率很高,写入效率一般,块式的集体访问效率不错。因为奇偶校验码在不同的磁盘上,所以提高了可靠性。

阿里云1+X云计算开发与运维——分布式存储理论_服务器_10

二,分布式存储概述

1,分布式存储概念

分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。

阿里云1+X云计算开发与运维——分布式存储理论_数据_11

考虑三因素:

# 一致性
    在分布式系统新写或更新一个数据并且该数据有多个副本时,要保证所有节点数据的一致性,一致性是并发读写场景下提出的问题。

# 可用性
    可用性指数据在正常响应时间一直可用,但不保证是最新的副本,可用性通常和分布式数据冗余方式,数据负载均衡等有较大关联。

# 分区容错性
    分布式系统在遇到网络分区节点间消息丢失或延迟时,系统能够正常提供服务,好的分区容错性要求系统虽然是一个分面式系统,但看上去应该是一个有机的整体。

2,分布式存储技术

2.1 Ceph

【Ceph简介】

Ceph已成为OpenStack上通用的存储之一,是为获得优秀的性能、可靠性和可扩展性而设计的统一的分布式的存储系统,一方面实现了高度的可靠性和可扩展性,另一方面保证了客户端访问的相对低延迟和高聚合带宽。

阿里云1+X云计算开发与运维——分布式存储理论_数据_12

【Ceph寻址流程】

阿里云1+X云计算开发与运维——分布式存储理论_文件存储_13

【Ceph更新流程】

阿里云1+X云计算开发与运维——分布式存储理论_服务器_14

2.2 Google文件系统

【Google文件系统简介】

GFS(Google文件系统)是一个可扩展的、面向分布式数据密集型应用的分布式文件系统。它将服务器构建在廉价硬件设备之上,通过软件的方式提供容错功能,在降低存储成本的同时保证文件系统的高可靠性。GFS也是Google分布式存储的基础,它作为存储平台被广泛部署在Google内部,用于存储服务中产生的或处理的海量数据,也用于研究及开发工作。

阿里云1+X云计算开发与运维——分布式存储理论_文件存储_15

【GFS文件系统读写流程】

阿里云1+X云计算开发与运维——分布式存储理论_文件存储_16

2.3 HDFS

【HDFS简介】

HDFS(Hadoop分布式文件系统)是Hadoop框架下基于Java实现的分布式、可伸缩、可移植的文件系统。HDFS在多个机器上存储大文件(通常在G字节)。它通过多个主机间的复制来实现数据可靠性,因此理论上不需要在主机间进行RAID存储(但RAID配置能提高I/O性能)。

阿里云1+X云计算开发与运维——分布式存储理论_服务器_17

【HDFS数据流】

阿里云1+X云计算开发与运维——分布式存储理论_服务器_18

2.4 Lustre

【Lustre简介】

Lustre是一种平行分布式文件系统,通常用于大型计算机集群和超级电脑,采用分布式的锁管理机制来实现并发控制,元数据和文件数据的通信链路分开管理。与 PVFS 相比,Lustre 虽然在性能,可用性和扩展性上略胜一筹,但它需要特殊设备的支持,而且分布式的元数据服务器管理还没有实现。

阿里云1+X云计算开发与运维——分布式存储理论_服务器_19

2.5 GlasterFS

【GlasterFS简介】

GlasterFS主要应用在集群系统中,具有很好的可扩展性。软件的结构设计良好,易于扩展和配置,通过各个模块的灵活搭配以得到针对性的解决方案。可解决以下问题:网络存储,联合存储(融合多个节点上的存储空间),冗余备份,大文件的负载均衡(分块)。Glaster由于缺乏一些关键特性,可靠性也未经过长时间考验,还不适合应用于需要提供 24 小时不间断服务的产品环境。目前适合应用于大数据量的离线应用。由于它良好的软件设计,以及由专门的公司负责开发,进展非常迅速,几个月或者一年后将会有很大的改进,非常值得期待

2.6 阿里盘古

【盘古简介】

盘古提供一个海量的、可靠的、可扩展的数据存储服务,将集群中各个节点的存储能力聚集起来,并能够自动屏蔽软硬件故障,为用户提供不间断的数据访问服务,支持增量扩容和数据的自动平衡,提供类似于POSIX的用户空间文件访问API,支持随机读写和追加写的操作。

阿里云1+X云计算开发与运维——分布式存储理论_文件存储_20

【盘古基础特性:】

盘古是一个分布式的统一存储系统,是飞天平台内核中的重要组成部分。盘古系统在一个核心基础层之上,通过为不同应用场景而抽象的适配层设计,提供了分布式块存储系统和分布式文件系统两种形态,基于这一套系统同时提供对象存储、块存储、文件存储以及大数据存储等一系列服务。类似于众多的分布式存储系统,盘古将大量通用机器的存储资源聚合在一起,为用户提供大规模、高可靠、高可用、高吞吐量和可扩展的存储服务。通过分布式文件系统适配,提供类似HDFS和GFS的功能,能够高效地支撑离线批量处理大数据场景。
    不同的是,盘古还能够像Ceph那样提供统一通用的实时存储服务,并借助软件栈对RDMA、NVMe SSD等高性能硬件的融合与全链路优化,具备了高性能数据库级的支撑能力,能够很好地满足各种在线应用的低延时需求.

阿里云1+X云计算开发与运维——分布式存储理论_文件存储_21

【盘古的优势】

盘古系统在一个核心基础层之上,通过为不同应用场景而抽象的适配层设计,提供了分布式块存储系统和分布式文件系统两种形态,基于这一套系统同时提供对象存储、块存储、文件存储以及大数据等一系列服务。
    大规模:能够支持数+EB级的存储大小,总文件数据达到亿数量级别
    数据高可靠性:保证数据和元数据是持久保存并能够正确访问,保证所有数据存储在处于不同机架下的多个节点上面(通常设置为3)
    服务高可用性:保证用户能够不中断地访问数据,降低系统的不可服务时间
    高吞吐量:运行时系统I/0吞吐量能够随机器规模线性增长,保证响应时间。
    高可扩展性:保证系统容量能够通过增加机器的方式自动扩展,下线机器存储的数据能够自动迁移到新加入的节点上。
    高性能:系统具备高性能数据库级的支撑能力,能够满足各种在线应用的低延时需求

阿里云1+X云计算开发与运维——分布式存储理论_服务器_22

【盘古的设计架构】

阿里云1+X云计算开发与运维——分布式存储理论_服务器_23