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

1、块存储

典型设备:磁盘阵列,硬盘
块存储主要是将裸磁盘空间整个映射给主机使用的,就是说例如磁盘阵列里面有5块硬盘(为方便说明,假设每一个硬盘1G),而后能够经过划逻辑盘、作Raid、或者LVM(逻辑卷)等种种方式逻辑划分出N个逻辑的硬盘。(假设划分完的逻辑盘也是5个,每一个也是1G,可是这5个1G的逻辑盘已经于原来的5个物理硬盘意义彻底不一样了。例如第一个逻辑硬盘A里面,可能第一个200M是来自物理硬盘1,第二个200M是来自物理硬盘2,因此逻辑硬盘A是由多个物理硬盘逻辑虚构出来的硬盘。)
接着块存储会采用映射的方式将这几个逻辑盘映射给主机,主机上面的操做系统会识别到有5块硬盘,可是操做系统是区分不出究竟是逻辑仍是物理的,它一律就认为只是5块裸的物理硬盘而已,跟直接拿一块物理硬盘挂载到操做系统没有区别的,至少操做系统感知上没有区别。此种方式下,操做系统还须要对挂载的裸硬盘进行分区、格式化后,才能使用,与日常主机内置硬盘的方式彻底无异。数据库

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

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

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

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

优势:
一、 这种方式的好处固然是由于经过了Raid与LVM等手段,对数据提供了保护。
二、 另外也能够将多块廉价的硬盘组合起来,成为一个大容量的逻辑盘对外提供服务,提升了容量。
三、 写入数据的时候,因为是多块磁盘组合出来的逻辑盘,因此几块磁盘能够并行写入的,提高了读写效率。
四、 不少时候块存储采用SAN架构组网,传输速率以及封装协议的缘由,使得传输速度与读写速率获得提高。架构

缺点:
一、采用SAN架构组网时,须要额外为主机购买光纤通道卡,还要买光纤交换机,造价成本高。
二、主机之间的数据没法共享,在服务器不作集群的状况下,块存储裸盘映射给主机,再格式化使用后,对于主机来讲至关于本地盘,那么主机A的本地盘根本不能给主机B去使用,没法共享数据。
三、不利于不一样操做系统主机间的数据共享:另一个缘由是由于操做系统使用不一样的文件系统,格式化完以后,不一样文件系统间的数据是共享不了的。例如一台装了WIN7/XP,文件系统是FAT32/NTFS,而Linux是EXT4,EXT4是没法识别NTFS的文件系统的。就像一只NTFS格式的U盘,插进Linux的笔记本,根本没法识别出来。因此不利于文件共享。并发

2、文件存储

典型设备:FTP、NFS服务器
为了克服上述文件没法共享的问题,因此有了文件存储。
文件存储也有软硬一体化的设备,可是其实普通拿一台服务器/笔记本,只要装上合适的操做系统与软件,就能够架设FTP与NFS服务了,架上该类服务以后的服务器,就是文件存储的一种了。主机A能够直接对文件存储进行文件的上传下载,与块存储不一样,主机A是不须要再对文件存储进行格式化的,由于文件管理功能已经由文件存储本身搞定了。分布式

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

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

优势:
一、造价交低:随便一台机器就能够了,另外普通以太网就能够,根本不须要专用的SAN网络,因此造价低。
二、方便文件共享:例如主机A(WIN7,NTFS文件系统),主机B(Linux,EXT4文件系统),想互拷一部电影,原本不行。加了个主机C(NFS服务器),而后能够先A拷到C,再C拷到B就OK了。

缺点:读写速率低,传输速率慢:以太网,上传下载速度较慢,另外全部读写都要1台服务器里面的硬盘来承担,相比起磁盘阵列动不动就几十上百块硬盘同时读写,速率慢了许多。

3、对象存储

典型设备:内置大容量硬盘的分布式服务器

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

对象储存结构组成部分(对象、对象存储设备、元数据服务器、对象存储系统的客户端)

对象存储最经常使用的方案,就是多台服务器内置大容量硬盘,再装上对象存储软件,而后再额外搞几台服务做为管理节点,安装上对象存储管理软件。管理节点能够管理其余服务器对外提供读写访问功能。

之因此出现了对象存储这种东西,是为了克服块存储与文件存储各自的缺点,发扬它俩各自的优势。简单来讲块存储读写快,不利于共享,文件存储读写慢,利于共享。可否弄一个读写快,利 于共享的出来呢。因而就有了对象存储。

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

以往像FAT32这种文件系统,是直接将一份文件的数据与metadata一块儿存储的,存储过程先将文件按照文件系统的最小块大小来打散(如4M的文件,假设文件系统要求一个块4K,那么就将文件打散成为1000个小块),再写进硬盘里面,过程当中没有区分数据/metadata的。而每一个块最后会告知你下一个要读取的块的地址,而后一直这样顺序地按图索骥,最后完成整份文件的全部块的读取。

这种状况下读写速率很慢,由于就算你有100个机械手臂在读写,可是因为你只有读取到第一个块,才能知道下一个块在哪里,其实至关于只能有1个机械手臂在实际工做。而对象存储则将元数据独立了出来,控制节点叫元数据服务器(服务器+对象存储管理软件),里面主要负责存储对象的属性(主要是对象的数据被打散存放到了那几台分布式服务器中的信息),而其余负责存储数据的分布式服务器叫作OSD,主要负责存储文件的数据部分。当用户访问对象,会先访问元数据服务器,元数据服务器只负责反馈对象存储在哪些OSD,假设反馈文件A存储在B、C、D三台OSD,那么用户就会再次直接访问3台OSD服务器去读取数据。

这时候因为是3台OSD同时对外传输数据,因此传输的速度就加快了。当OSD服务器数量越多,这种读写速度的提高就越大,经过此种方式,实现了读写快的目的。

另外一方面,对象存储软件是有专门的文件系统的,因此OSD对外又至关于文件服务器,那么就不存在文件共享方面的困难了,也解决了文件共享方面的问题。因此对象存储的出现,很好地结合了块存储与文件存储的优势。

4、块级与文件级

1.块级概念:块级是指以扇区为基础,一个或多个连续的扇区组成一个块,也叫物理块。它是在文件系统与块设备(例如:磁盘驱动器)之间。
2.文件级概念:文件级是指文件系统,单个文件可能因为一个或多个逻辑块组成,且逻辑块之间是不连续分布。逻辑块大于或等于物理块整数倍,
3.物理块与文件系统之间的关系图:映射关系:扇区→物理块→逻辑块→文件系统

5、从应用角度看块存储、文件存储、对象存储

传统认知上来讲,IT设备分为计算/存储/网络三大类,相互之间是有明显的楚河汉界的。计算你们都清楚,服务器,小型机,大型机;网络也就是路由器交换机;存储有内置存储和外置存储,最多见的就是磁盘阵列。在HCI(超融合)这个概念没被热炒以前,计算网络存储还都是泾渭分明,各担其责的。今天咱们先不讨论超融合的状况,仅基于传统理解,看看存储的状况。

从逻辑上存储一般分为块存储,文件存储,对象存储。这三类存储在实际应用中的适配环境仍是有着明显的不一样的。

块存储(DAS/SAN)一般应用在某些专有的系统中,这类应用要求很高的随机读写性能和高可靠性,上面搭载的一般是Oracle/DB2这种传统数据库,链接一般是以FC光纤(8Gb/16Gb)为主,走光纤协议。若是要求稍低一些,也会出现基于千兆/万兆以太网的链接方式,MySQL这种数据库就可能会使用IP SAN,走iSCSI协议。一般使用块存储的都是系统而非用户,并发访问不会不少,常常出现一套存储只服务一个应用系统,例如如交易系统,计费系统。典型行业如金融,制造,能源,电信等。

文件存储(NAS)相对来讲就更能兼顾多个应用和更多用户访问,同时提供方便的数据共享手段。毕竟大部分的用户数据都是以文件的形式存放,在PC时代,数据共享也大可能是用文件的形式,好比常见的的FTP服务,NFS服务,Samba共享这些都是属于典型的文件存储。几十个用户甚至上百用户的文件存储共享访问均可以用NAS存储加以解决。在中小企业市场,一两台NAS存储设备就能支撑整个IT部门了。CRM系统,SCM系统,OA系统,邮件系统均可以使用NAS存储通通搞定。甚至在公有云发展的早几年,用户规模没有上来时,云存储的底层硬件也有用几套NAS存储设备就解决的,甚至云主机的镜像也有放在NAS存储上的例子。文件存储的普遍兼容性和易用性,是这类存储的突出特色。可是从性能上来看,相对SAN就要低一些。NAS存储基本上是以太网访问模式,普通千兆网,走NFS/CIFS协议。

前面说到的块存储和文件存储,基本上都仍是在专有的局域网络内部使用,而对象存储的优点场景倒是互联网或者公网,主要解决海量数据,海量并发访问的需求。基于互联网的应用才是对象存储的主要适配(固然这个条件一样适用于云计算,基于互联网的应用最容易迁移到云上,由于没出现云这个名词以前,他们已经在上面了),基本全部成熟的公有云都提供了对象存储产品,无论是国内仍是国外。

对象存储常见的适配应用如网盘、媒体娱乐,医疗PACS,气象,归档等数据量超大而又相对“冷数据”和非在线处理的应用类型。这类应用单个数据大,总量也大,适合对象存储海量和易扩展的特色。网盘类应用也差很少,数据总量很大,另外还有并发访问量也大,支持10万级用户访问这种需求就值得单列一个项目了(这方面的扫盲能够想一想12306)。归档类应用只是数据量大的冷数据,并发访问的需求却是不太突出。

另外基于移动端的一些新兴应用也是适合的,智能手机和移动互联网普及的状况下,所谓UGD(用户产生的数据,手机的照片视频)总量和用户数都是很大挑战。毕竟直接使用HTTP get/put就能直接实现数据存取,对移动应用来讲仍是有必定吸引力的。

对象存储的访问一般是在互联网,走HTTP协议,性能方面,单独看一个链接的是不高的(还要解决掉线断点续传之类的可靠性问题),主要强大的地方是支持的并发数量,聚合起来的性能带宽就很是可观了。

6、块存储、文件存储、对象存储的层次关系


咱们从底层往上看,最底层就是硬盘,多个硬盘能够作成RAID组,不管是单个硬盘仍是RAID组,均可以作成PV,多个PV物理卷捏在一块儿构成VG卷组,这就作成一块大蛋糕了。接下来,能够从蛋糕上切下不少块LV逻辑卷,这就到了存储用户最熟悉的卷这层。到这一层为止,数据一直都是以Block块的形式存在的,这时候提供出来的服务就是块存储服务。你能够经过FC协议或者iSCSI协议对卷访问,映射到主机端本地,成为一个裸设备。在主机端能够直接在上面安装数据库,也能够格式化成文件系统后交给应用程序使用,这时候就是一个标准的SAN存储设备的访问模式,网络间传送的是块。

若是不急着访问,也能够在本地作文件系统,以后以NFS/CIFS协议挂载,映射到本地目录,直接以文件形式访问,这就成了NAS访问的模式,在网络间传送的是文件。

若是不走NAS,在本地文件系统上面部署OSD服务端,把整个设备作成一个OSD,这样的节点多来几个,再加上必要的MDS节点,互联网另外一端的应用程序再经过HTTP协议直接进行访问,这就变成了对象存储的访问模式。固然对象存储一般不须要专业的存储设备,前面那些LV/VG/PV层也能够通通不要,直接在硬盘上作本地文件系统,以后再作成OSD,这种才是对象存储的标准模式,对象存储的硬件设备一般就用大盘位的服务器。

从系统层级上来讲,这三种存储是按照块->文件->对象逐级向上的。文件必定是基于块上面去作,无论是远端仍是本地。而对象存储的底层或者说后端存储一般是基于一个本地文件系统(XFS/Ext4..)。这样作是比较合理顺畅的架构。可是你们想法不少,还有各类特异的产品出现,咱们逐个来看看:

对象存储除了基于文件,能够直接基于块,可是作这个实现的不多,毕竟你仍是得把文件系统的活给干了,本身实现一套元数据管理,也挺麻烦的,目前我只看到Nutanix宣称支持。另外对象存储还能基于对象存储,这就有点尴尬了,就是转一下,何须呢?可是这都不算最奇怪的,最奇怪的是把对象存储放在最底层,那就是这两年大红的Ceph。

连接:https://www.zhihu.com/question/21536660/answer/33279921
连接:http://www.sohu.com/a/144775333_151779

相关文章
相关标签/搜索