块存储、文件存储、对象存储三者之比较 | 资料( 二 )


对象存储最常用的方案,就是多台服务器内置大容量硬盘,再装上对象存储软件,然后再额外搞几台服务作为管理节点,安装上对象存储管理软件 。管理节点可以管理其他服务器对外提供读写访问功能 。
之所以出现了对象存储这种东西,是为了克服块存储与文件存储各自的缺点,发扬它俩各自的优点 。简单来说块存储读写快,不利于共享,文件存储读写慢,利于共享 。能否弄一个读写快,利 于共享的出来呢 。于是就有了对象存储 。
首先,一个文件包含了了属性(术语叫metadata,元数据,例如该文件的大小、修改时间、存储路径等)以及内容(以下简称数据) 。
以往像FAT32这种文件系统,是直接将一份文件的数据与metadata一起存储的,存储过程先将文件按照文件系统的最小块大小来打散(如4M的文件,假设文件系统要求一个块4K,那么就将文件打散成为1000个小块),再写进硬盘里面,过程中没有区分数据/metadata的 。而每个块最后会告知你下一个要读取的块的地址,然后一直这样顺序地按图索骥,最后完成整份文件的所有块的读取 。
这种情况下读写速率很慢,因为就算你有100个机械手臂在读写,但是由于你只有读取到第一个块,才能知道下一个块在哪里,其实相当于只能有1个机械手臂在实际工作 。
而对象存储则将元数据独立了出来,控制节点叫元数据服务器(服务器+对象存储管理软件),里面主要负责存储对象的属性(主要是对象的数据被打散存放到了那几台分布式服务器中的信息),而其他负责存储数据的分布式服务器叫做OSD,主要负责存储文件的数据部分 。当用户访问对象,会先访问元数据服务器,元数据服务器只负责反馈对象存储在哪些OSD,假设反馈文件A存储在B、C、D三台OSD,那么用户就会再次直接访问3台OSD服务器去读取数据 。
这时候由于是3台OSD同时对外传输数据,所以传输的速度就加快了 。当OSD服务器数量越多,这种读写速度的提升就越大,通过此种方式,实现了读写快的目的 。
另一方面,对象存储软件是有专门的文件系统的,所以OSD对外又相当于文件服务器,那么就不存在文件共享方面的困难了,也解决了文件共享方面的问题 。
所以对象存储的出现,很好地结合了块存储与文件存储的优点 。
【块存储、文件存储、对象存储三者之比较 | 资料】最后,为什么对象存储兼具块存储与文件存储的好处,还要使用块存储或文件存储呢?
1、有一类应用是需要存储直接裸盘映射的,例如数据库 。因为数据库需要存储裸盘映射给自己后,再根据自己的数据库文件系统来对裸盘进行格式化的,所以是不能够采用其他已经被格式化为某种文件系统的存储的 。此类应用更适合使用块存储 。
2、对象存储的成本比起普通的文件存储还是较高,需要购买专门的对象存储软件以及大容量硬盘 。如果对数据量要求不是海量,只是为了做文件共享的时候,直接用文件存储的形式好了,性价比高 。
二、从应用角度比较块存储、文件存储、对象存储产品和市场需求有各种相互影响的关系,但不管是哪一种,最终呈现都是产品和应用需求需要对应匹配 。应用需求越多样化,市场也就划分得更加细,产品种类也就更加丰富 。在存储行业,我们也可以从“应用适配”这个角度来聊聊各类存储 。
传统认知上来说,IT设备分为计算/存储/网络三大类,相互之间是有明显的楚河汉界的 。计算大家都清楚,服务器,小型机,大型机;网络也就是路由器交换机;存储有内置存储和外置存储,最常见的就是磁盘阵列 。在HCI(超融合)这个概念没被热炒之前,计算网络存储还都是泾渭分明,各担其责的 。今天我们先不讨论超融合的情况,仅基于传统理解,看看存储的情况 。

推荐阅读