块储存、对象存储、文件存储

通常来讲,磁盘阵列都是基于Block块的存储,而所有的NAS产品都是文件级存储。在讲这三者的内容和区别之前,先介绍一下结构化数据,半结构化数据和非结构化数据。

1、结构化数据

结构化的数据是指可以使用关系型数据库表示和存储,表现为二维形式的数据。一般特点是:数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的。

结构化的数据的存储和排列是很有规律的,这对查询和修改等操作很有帮助。但是,显然,它的扩展性不好。

常见的有sql server,mysql,oracle数据库等。

2、半结构化数据

半结构化数据是结构化数据的一种形式,它并不符合关系型数据库或其他数据表的形式关联起来的数据模型结构,但包含相关标记,用来分隔语义元素以及对记录和字段进行分层。因此,它也被称为自描述的结构。

半结构化数据,属于同一类实体可以有不同的属性,即使他们被组合在一起,这些属性的顺序并不重要。

常见的半结构数据有XML和JSON,NoSQL

半结构化数据的属性的顺序是不重要的,不同的半结构化数据的属性的个数是不一定一样的。半结构化数据也可以认为是以树或者图的数据结构存储的数据。因此它可以自由地表达很多有用的信息,包括自我描述信息(元数据)。所以,半结构化数据的扩展性很好。

3、非结构化数据

非结构化数据是数据结构不规则或不完整,没有预定义的数据模型,不方便用数据库二维逻辑表来表现的数据。包括所有格式的办公文档、文本、图片、XML, HTML、各类报表、图像和音频/视频信息等等。

1)关系型数据库

主流数据库:Oracle、SQL server、mysql、sybase

非主流数据库: PostgreSQL、Informix、、cache

2)非关系型数据库

主流数据库:Memcached(key-value)、Redis(key-value)、MongoDB(Document-oriented)、Cassandra(Column-oriented)

非主流数据库:  HBase、MemacheDB、BerkeleyDB、Tokyo Cabinet

一、块存储——DAS和SAN

块存储指在一个RAID(独立磁盘冗余阵列)集中,一个控制器加入一组磁盘驱动器,然后提供固定大小的RAID块作为LUN(逻辑单元号)的卷。

  • DAS(Direct Attach Storage): 是直接连接于主机服务器的一种存储方式,每台服务器有独立的存储设备,每台主机服务器的存储设备无法互通,需要跨主机存取资料室,必须经过相对复杂的设定,若主机分属不同的操作系统,则更复杂。

       应用:单一网络环境下且数据交换量不大,性能要求不高的环境,技术实现较早。

  • SAN(Storage Area Network): 是一种高速(光纤)网络联接专业主机服务器的一种存储方式,此系统会位于主机群的后端,它使用高速I/O联接方式,如:SCSI,ESCON及Fibre-Channels.特点是,代价高、性能好。但是由于SAN系统的价格较高,且可扩展性较差,已不能满足成千上万个CPU规模的系统。

       应用:对网速要求高、对数据可靠性和安全性要求高、对数据共享的性能要求高的应用环境中。

上述所提到的结构化数据一般采用块存储。因为这类应用是需要存储直接裸盘映射的,比如数据库需要存储裸盘映射给自己后,再根据自己的数据库文件系统来对了裸盘进行格式化,因此不能采用其他已经被格式化为某种文件系统的存储。此类更适合块存储。

二、文件存储——NAS

通常NAS产品都是文件级存储。

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

采用NFS或CIFS命令集访问数据,以文件为传输协议,可扩展性好、价格便宜、用户易管理。目前在集群计算中应用较多的NFS文件系统,但由于NAS的协议开销高、带宽低、延迟大,不利于在高性能集群中应用。

三、对象存储

对象存储同时兼具SAN高级直接访问磁盘特点及NAS的分布式共享特点。

核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备(OSD),构建存储系统,每个对象存储设备具备一定的职能,能够自动管理其上的数据分布。

对象储存结构组成部分:

   1、对象——一个对象实际就是文件的数据和一组属性信息的组合

   2、对象存储设备OSD

        OSD具有一定的智能,它有自己的CPU、内存、网络和磁盘系统。

       OSD提供三个主要功能:包括数据存储和安全访问    (1)数据存储  (2)智能分布  (3)每个对象元数据的管理

   3、元数据服务器MDS

        MDS控制Client与OSD对象的交互,主要提供以下几个功能:

       (1) 对象存储访问——允许Client直接访问对象,OSD接收到请求时先验证该能力,再访问。

       (2) 文件和目录访问管理——MDS在存储系统上构建一个文件结构,限额控制、包括目录、文件的创建、访问控制等

      (3) Client Cache 一致性 ——为提高性能,在对象存储系统设计时通常支持Client的Cache。因此带来了Cache一致性的问题,当Cache文件发生改变时,将通知Client刷新Cache,以防Cache不一致引发的问题。

一个文件包含了属性(术语叫matadata元数据,例如该文件的大小、修改时间、存储路径等)以及内容(简称数据)

以往的文件系统,存储过程将文件按文件系统的最小块来打散,再写进硬盘,过程中没有区分元数据(metadata)和数据。而在每个块最后才会告知下一个块的地址,因此只能一个一个读,速度慢。

而对象存储则将元数据独立出来,控制节点叫元数据服务器MDS(服务器+对象存储管理软件),里面主要存储对象的属性(主要是对象的数据被打散存放到了那几台分布式服务器中的信息),而其他负责存储数据的分布式服务器叫做OSD,主要负责存储文件的数据部分。当用户访问对象时,会先访问元数据服务器,元数据服务器只负责反馈对象存储在那些OSD。假设反馈文件A存储在B,C,D三台OSD,那么用户就会再次访问三台OSD服务器去读取数据。这时三台OSD同时对外传输数据,因此传输的速度加快。OSD服务器数量越多,这种读写速度的提升就越大。

另一方面,对象存储软件有专门的文件系统cephfs,所以OSD对外又相当于文件服务器,那么就不存在文件共享方面的困难了,也解决了文件共享方面的问题因此对象存储很好的结合了块存储与文件存储的优点

   4、对象存储系统的客户端

参考:https://blog.csdn.net/liangyihuai/article/details/54864952

https://blog.csdn.net/qq_23348071/article/details/70232735

猜你喜欢

转载自blog.csdn.net/u012114090/article/details/81486788