块存储、文件存储、对象存储这三者的差别

今天看学习的时候突然想到了块存储、文件存储、对象存储的区别,就去翻阅了一下资料。

块存储块存储、文件存储、对象存储这三者的差别_第1张图片
块存储一般体现形式是卷或者硬盘(比如windows里面看到的c盘),数据是按字节来访问的,对于块存储而言,对里面存的数据内容和格式是完全一无所知的。好比上面图中,数据就像玉米粒一样堆放在块存储里,块存储只关心玉米粒进来和出去,不关心玉米粒之间的关系和用途。块存储只负责数据读取和写入,因此性能很高,适用于对响应时间要求高的系统。比如数据库等。

文件存储块存储、文件存储、对象存储这三者的差别_第2张图片
文件存储一般体现形式是目录和文件(比如C:\Users\Downloads\text.doc),数据以文件的方式存储和访问,按照目录结构进行组织。文件存储可以对数据进行一定的高级管理,比如在文件层面进行访问权限控制等。好比上面图中,数据像玉米粒一样组成玉米棒子,再对应到不同的玉米杆上,要找到某个玉米粒,先找到玉米杆,再找到玉米棒子,然后根据玉米粒在玉米棒子上的位置找到它。文件存储可以很方便的共享,因此用途非常广泛。比如常用的NFS、CIFS、ftp等都是基于文件存储的。

对象存储块存储、文件存储、对象存储这三者的差别_第3张图片
对象存储一般体现形式是一个UUID,数据和元数据打包在一起作为一个整体对象存在一个超大池子里。大多数对象存储的实现本质上是键值对存储系统,值可以是任何东西,可以是小文件(小二进制片段),可以是大文件,对于对象访问,只需要报出它的UUID,就能立即找到它,但访问的时候对象是作为一个整体访问的。好比上面图中,数据的玉米粒被做成了玉米罐头,每个玉米罐头都有一个唯一出厂号,但是买卖罐头,都一次是一盒为单位。从设计之初衷(一般的对象存储都是基于哈希环之类的技术来实现),对象存储就可以非常简单的扩展到超大规模,因此非常适合数据量大、增速又很快的视频、图像等。对象存储一般不支持追加写和更新,面向的是一次写入,多次读取的需求场景。

最后为什么对象存储兼具块存储与文件存储的好处,还要使用块存储或文件存储呢?

  1. 有一类应用是需要存储直接裸盘映射的,例如数据库。因为数据库需要存储裸盘映射给自己后,再根据自己的数据库文件系统来对裸盘进行格式化的,所以是不能够采用其他已经被格式化为某种文件系统的存储的。此类应用更适合使用块存储。
  2. 对象存储的成本比起普通的文件存储还是较高,需要购买专门的对象存储软件以及大容量硬盘。如果对数据量要求不是海量,只是为了做文件共享的时候,直接用文件存储的形式好了,性价比高。

你可能感兴趣的:(小知识点,数据库,数据类型,云存储,云数据存储,数据卷)