码迷,mamicode.com
首页 > 其他好文 > 详细

zz``块存储、文件存储、对象存储这三者的本质差别是什么?

时间:2019-09-27 23:15:54      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:linux   意义   统一   流行   samba   参数文件   pdo   swift   iscsi   

本质是一样的,底层都是块存储,只是在对外接口上表现不一致,分别应用于不同的业务场景

 

分布式存储的应用场景相对于其存储接口,现在流行分为三种:

  1. 对象存储: 也就是通常意义的键值存储,其接口就是简单的GET、PUT、DEL和其他扩展,如七牛、又拍、Swift、S3

  2. 块存储: 这种接口通常以QEMU Driver或者Kernel Module的方式存在,这种接口需要实现Linux的Block Device的接口或者QEMU提供的Block Driver接口,如Sheepdog,AWS的EBS,青云的云硬盘和阿里云的盘古系统,还有Ceph的RBD(RBD是Ceph面向块存储的接口)

  3. 文件存储: 通常意义是支持POSIX接口,它跟传统的文件系统如Ext4是一个类型的,但区别在于分布式存储提供了并行化的能力,如Ceph的CephFS(CephFS是Ceph面向文件存储的接口),但是有时候又会把GFS,HDFS这种非POSIX接口的类文件存储接口归入此类。

 

【块存储】

典型设备:磁盘阵列,硬盘,虚拟硬盘

【文件存储】
典型设备:FTP、NFS服务器,SamBa

【对象存储】

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

 

块存储接口的操作对象是二进制数据,物理存储位置是硬盘 (通过逻辑目录 找到对应分区,然后找到对应存储块存储。

文件存储接口操作对象是目录和文件,物理存储位置 是由 文件服务器对应的文件系统来决定的(比块存储多一个过程:判断参数文件 应该存储到哪个逻辑目录上。)

对象存储接口的操作对象是对象,存储位置是大型分布式服务器. 

如果是对象是文件,使用文件服务器存储(判断参数文件 应该存储到哪个逻辑目录上),

 如果是对象,使用块存储

存储对外提供服务我觉得可以分成两层,

一层就是物理层,存储层;

另外一层就是文件系统一层。

块存储就是在物理层这个层面对外提供服务,使用它的系统,有用自己的文件系统格式化。这样一旦被一个系统使用,就独占了。

文件存储,就是在文件系统一层对外提供服务,系统只用访问文件系统一级就可以,各个系统都可以根据接口取访问。

对象存储,也是文件系统一级提供服务,只是优化了目前的文件系统,采用扁平化方式,弃用了目录树结构,便于共享,高速访问。

 

详细介绍:

 

这三种存储,分别对应了不同的访问协议,这也就决定了他们的本质差别。

先说一下文件存储,主要操作对象是文件和文件夹。以 NFS 为例,文件相关的接口包括:LOOKUP/ACCESS/READ/WRITE/CREATE/REMOVE/RENAME 等等,文件夹相关的接口包括:MKDIR/RMDIR/READDIR 等等。同时也会有 FSSTAT/FSINFO 等接口用于提供文件系统级别的信息。POSIX,SAMBA 等也是文件存储协议。协议更注重接口的灵活,以及访问权限控制

块存储,主要操作对象是磁盘。以 SCSI 为例,主要接口有 Read/Write/Read Capacity/Inquiry 等等。FC,iSCSI,也是块存储协议。和文件存储相比,没有文件和目录树的概念,一般协议也不会定义磁盘的创建和删除操作。协议更注重传输控制

对象存储,主要操作对象是对象(Object)。以 S3 为例,主要接口有 PUT/GET/DELETE 等。和文件和对象存储相比,没有随机读写的接口。和文件存储相比,没有目录树的概念。协议更注重简洁。

 

zz``块存储、文件存储、对象存储这三者的本质差别是什么?

标签:linux   意义   统一   流行   samba   参数文件   pdo   swift   iscsi   

原文地址:https://www.cnblogs.com/xiaodoujiaohome/p/11600751.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!