对象存储、块存储、文件存储的区别

简介: 对象存储、款存储、文件存储的区别
+关注继续查看

参考链接

http://www.infoq.com/cn/articles/virtual-forum-three-basic-issues-about-distributed-storage

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

  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接口的类文件存储接口归入此类。

按照这三种接口和其应用场景,很容易了解这三种类型的IO特点,括号里代表了它在非分布式情况下的对应:

  1. 对象存储(键值数据库):接口简单,一个对象我们可以看成一个文件,只能全写全读,通常以大文件为主,要求足够的IO带宽。
  2. 块存储(硬盘):它的IO特点与传统的硬盘是一致的,一个硬盘应该是能面向通用需求的,即能应付大文件读写,也能处理好小文件读写。但是硬盘的特点是容量大,热点明显。因此块存储主要可以应付热点问题。另外,块存储要求的延迟是最低的。
  3. 文件存储(文件系统):支持文件存储的接口的系统设计跟传统本地文件系统如Ext4这种的特点和难点是一致的,它比块存储具有更丰富的接口,需要考虑目录、文件属性等支持,实现一个支持并行化的文件存储应该是最困难的。但像HDFS、GFS这种自己定义标准的系统,可以通过根据实现来定义接口,会容易一点。

因此,这三种接口分别以非分布式情况下的键值数据库、硬盘和文件系统的IO特点来对应即可。至于冷热、快慢、大小文件而言更接近于业务。但是因为存储系统是通用化实现,通常来说,需要尽量满足各种需求,而接口定义已经一定意义上就砍去了一些需求,如对象存储会以冷存储、大文件为主。

目录
相关文章
|
2月前
|
存储 Cloud Native 测试技术
阿里云块存储团队软件工程实践
这是阿里云块存储团队内部的一次新人培训材料,内容源自老同学们的踩坑经验,总结成案例和方法分享公示,实践和方法论不限于分布式系统,希望对读者有启发。本文主要包括以下三个方面:  ●编码习惯(开发、测试、Review,Bad/Good Case) ●研发流程(源码控制、每日构建、缺陷管理) ●实践方法(效率工具、新人踩雷、学习推荐)
24925 10
|
3月前
|
块存储
阿里云最新产品手册——阿里云核心产品——块存储——飞天洛神3.0——云网络发展历程——云网络3.0时代——智能服务产品
阿里云最新产品手册——阿里云核心产品——块存储——飞天洛神3.0——云网络发展历程——云网络3.0时代——智能服务产品自制脑图
161 1
|
3月前
|
块存储
阿里云最新产品手册——阿里云核心产品——块存储——飞天洛神3.0——云网络发展历程——云网络3.0时代——按量弹性
阿里云最新产品手册——阿里云核心产品——块存储——飞天洛神3.0——云网络发展历程——云网络3.0时代——按量弹性自制脑图
111 1
|
4月前
|
存储 固态存储 大数据
「存储架构」块存储、文件存储和对象存储(第1节)
「存储架构」块存储、文件存储和对象存储(第1节)
|
9月前
|
文件存储 对象存储 C++
对象存储vs文件存储
对于对象存储就没有这样的问题,所有文件(或者叫对象,其实是一回事)都放 “硬盘”根目录上,不需要各级文件夹,只有每个文件对应的key,当前硬盘满了,增加新硬盘之后,新的文件就直接放在新硬盘的根目录下不需创建各种文件夹。
131 0
|
文件存储 对象存储
使用阿里云oss进行文件存储代码实现
使用阿里云oss进行文件存储代码实现
推荐文章
更多