前面我们分别讲了3种存储方式:为块、文件和对象,块存储主要是将裸磁盘空间整个映射给主机使用的。还讲了对象存储和块存储,但有很多用户无法区分对象存储和文件存储两者之间的区别。
对象存储和文件存储有什么区别?
1、对象存储- 典型设备: 内置大容量硬盘的分布式服务器(swift, s3),多台服务器内置大容量硬盘,安装上对象存储管理软件,对外提
供读写访问功能。主要是集中式或分布式的NAS类应用,以灵活的共享文件系统为特色,承载百万文件量和TB级别的文件类应用。
对象存储- 使用场景: (适合更新变动较少的数据,没有目录结构, 不能直接打开/修改文件)
比如说:图片存储、视频存储、文件、软件安装包等。主要是特定行业的海量非结构化数据的应用场景。由于对象存储采用扁平的文件
组织方式,所以在文件量上升至千万、亿级别,容量在PB级别的时候,这种文件组织方式下的性能优势就显现出来了。
之所以出现对象存储这种东西,是为了克服块存储与文件存储各自的缺点,发扬各自的优点。简单来说文件存储读写慢,利于共享。能否弄一个读写块,利于共享的存储出来呢?
于是就有了对象存储。一个文件包含了属性(术语:metadata,元数据,例如该文件的大小、修改时间、存储路径等)以及内容(数据)。
而对象存储则将元数据独立出来了,控制节点叫元数据服务器(服务器+对象存储管理软件),里面主要负责存储对象的属性(主要是对象的数据被打散存放到了那几台分布式服务器中的信息)而其他负责存储数据的分布式服务器叫做OSD,主要负责存储文件的数据部分。当用户访问对象,会先访问元数据服务器,元数据服务器只负责反馈对象存储在哪里OSD,假设反馈文件A存储在B、C、D三台OSD,那么用户就会再次直接访问3台OSD服务器去读取数据。
这时候由于是3台OSD同时对外传输数据,所以传输的速度就会加快了,当OSD服务器数量越多,这种读写速度的提升就越大,通过此种方式,实现了读写快的目的。
另一方面,对象存储软件是有专门的文件系统的,所以OSD对外又相当于文件服务器,那么就不存在共享方面的困难了,也解决了文件共享方面的问题,所以对象存储的出现,很好的结合了块存储和文件存储的优点
2、文件存储- 典型设备: FTP、NFS服务器为了克服块存储文件无法共享的问题,所以有了文件存储。在服务器上架 设FTP与NFS服务,就是文件存储。
- 使用场景:日志存储、多个用户有目录结构的文件存储共享。
文件存储不在有目录树深度的问题,历史和近线数据有同样的访问效率。而对象存储多采用分布式架构,可以在商用x86服务器上轻松构
建对象存储,磁盘介质也大多采用低速的SATA盘,所以在成本上也具优势。
也就是说,主机A可以直接对文件存储进行文件的上传和下载,与块存储不同,主机A是不需要再对文件存储进行格式化的,因为文件管理功能已经由文件存储自己搞定了。对象存储实际上更贴近http的应用。文件存储通常需要一个app 的服务器将文件存储挂载到本地。
优点:(1)造价低:随便一台机器就可以,另外普通的以太网就可以,根本不需要专用的SAN网络,所以造价低。(2)方便文件共享
缺点:(1)读写速率低,传输速率慢:以太网,上传下载速度较慢,另外所有读写都要1台服务器里面的硬盘来承受,相比起磁盘阵列动不动就十几上百块硬盘同时读写,速率慢了许多。
总结:对象存储是直到云计算和大数据的概念强推,才慢慢进入公众视野。文件存储基本上都还是在专有的局域网络内部使用。对象云端存储的优势场景却是互联网或者公网,主要解决海量数据,海量并发访问的需求。基于互联网的应用才是对象存储的主要适配(这个条件同样适用于云计算,基于互联网的应用最容易迁移到云上)。
有对象存储和文件存储需求的用户可以咨询: