首先我们来了解一下这三种存储(个人理解):

1.块存储

很多人说到块存储都会想到fcsan,其实块存储有很多只要使用数据块为存储方式的都可以称为块存储,像本地存储中的硬盘,共享存储中的fcsan,ipsan都是块存储,以lun为虚拟设备映射给主机使用,注意这个fc表示fc协议不是光纤,所以不是所有光纤传输的都是fcsan,不是所有fscan都一定要用光纤。fcsan由于需要特定的一些设备所以价格昂贵,使用SCSI协议,一般使用raid卡进行磁盘阵列化,raid0...6,以及后面出现的raid10,01和华为比较自信的raid2.0+,也不乏一些厂商会使用vsan这种分布式存储的方式。相对于ipsan使用局域网就可以传输显得越来越被遗弃,ipsan使用iSCSI协议从SCSI协议上进化而来,一般采用分布式存储,像主流的浪潮,华为,华三等大部分都采用的ceph作为底层协议并封装。ceph作为去中心的分布式存储协议越来越被重视,与中心化的分布式存储像hdfs这种存储来说拥有先天的优越性,它不需要受限于中心节点。

2.文件存储

文件存储的产生是由于块存储的共享性太差,我们没办法把一块硬盘给两台主机使用,所以在块的基础上我们可以建立文件系统,以文件的方式共享给其他主机,比较常见的传输协议集nfs,cifs。和块存储相比由于文件系统的树状结构需要找到对应的数据块会比块存储直接找块编号会慢的多所以一般高性能的数据库我们会采用块存储,文件存储会作为备份后端以及大文件存储来使用。

问题:我们从块存储映射来的lun进行挂载后,将其文件系统化并新建一个文件夹test挂载此文件系统,然后在文件存储后端新建test1并挂载到我们的主机上,同时往test和test1文件夹中写入数据数据都是以文件进行存储读写速度会有差别吗?

3.对象存储

对象存储采用s3协议进行传输,比较出名的对象存储客户端像亚马逊的s3brower就是以此命名,它采用块存储一样的扁平结构但是拥有文件存储的共享性并拥有高扩展性,现在越来越风靡。它采用http的端口通过api进行调用,将数据进行封装然后传输。对象存储的核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备(Object-based Storage Device,OSD)构建存储系统,每个对象存储设备具有一定的智能,能够自动管理其上的数据分布。就像就是当一个数据流进行存储时,先到元数据服务器进行请求,并获取所存储的osd编号,将请求发到对应的osd,osd指定特定的object进行存储(object不同于数据块,object时数据块以及属性的集合)。