大家好,我是小学僧。
提到"存储",
你首先想到的是这个?
还是这个?
也或者还有这个?
哈哈,没错,我们生活中已经离不开存储,视频、音乐、图片、文本、表格这样的数据文件都需要存储设备来存储。
对于很多小伙伴来说,很多资料丢了可能并不会很重要。
但对于企业用户来说,丢失了数据,甚至可能直接影响到企业的生死。
聊到企业存储,相信很多人被三个存储名词困扰了很久:块存储、文件存储、对象存储,它们到底有什么区别?
▉块存储、文件存储、对象存储,傻傻分不清楚
最近小僧废寝忘食,好好地研究了下。
今天我们就跟大家汇报下学习成果:块存储、文件存储、对象存储三者到底有何区别?
我们都知道,存储设备就是为数据提供空间。
U盘、硬盘和固态硬盘都是存储最终的存储设备。而块存储、文件存储和对象存储也可以简单地理解是不同类型的存储设备,
它们是根据使用介质存储数据的手段或方法不同来划分的。
首先我们来看下块存储:
块存储提供的是不带文件系统裸磁盘,使用之前需先进行初始化。
我们比较常见的块存储形式是我们的Windows硬盘或手机存储空间,数据是按字节块来存储和访问的。
块存储使用时,文件系统在客户端,例如Windows系统,我们可以在Windows桌面查看我们存储的内容,但是对于硬盘里的内容和格式,我们是一无所知的,只有借助客户端的文件系统才能查看。
通俗的来说,在块存储中,数据就像每个瓜子一样,堆放在存储仓里。瓜子就是每个数据块,这个存储舱就是磁盘。块存储只关心瓜子的进来和出去,不关心瓜子粒之间的关系和用途。
由于块存储只负责数据读取和写入,因此具有有高带宽、低延迟的优势。
但是块存储一般扩展能力有限,适用于对响应时间要求高的系统。比如数据库、ERP等企业核心应用的存储等。DAS、SAN这两种存储设备属于块存储类型,
下面我们来看下什么是文件存储:
文件存储的存储端带有文件系统,我们常见的NAS存储都是文件存储设备。
这些文件存储设备除了磁盘外还带有文件系统,用户直接通过存储端的文件系统就能调用存储资源。
文件存储一般体现形式是目录和文件(比如C:\User\ProgramFiles\CommonFiles),数据以文件的方式存储和访问,按照目录结构进行组织。文件存储有自己的文件系统,对于每个客户端而言是一个统一的文件系统,可以同时供多个客户端使用,易于共享。
好比上面图中,数据像瓜子一样在一起组成了向日葵,再对应到不同的向日葵杆,要找到某个向日葵籽,先找到这个对应的向日葵杆,再找到这个向日葵,然后根据在这个向日葵上对应的位置找到这个瓜子。
相比于块存储,文件存储由于有自己的文件系统,可以实现更高级的管理,可以很方便的共享,因此用途非常广泛。比如常用的NFS、CIFS、ftp等都是基于文件存储的。但相比于块存储,文件存储读写速度相对于块存储要慢一点。
最后我们来看下对象存储:
块存储性能出色但是不能共享,文件存储可以共享但是速度又总是不让人满意。
作为不会做选择题的成年人,既想性能,还要实现共享,同时还要满足大规模扩展需求,所有后来就出现了对象存储。
对象存储一般体现形式是一个UUID(比如我们常见的网址https://new.qq.com/omn/20201119/20201119A0CEI01210.html),这个UUID是唯一性的,即使在全球也只有通过这一个UUID。
数据和元数据打包在一起作为一个整体对象存在一个超大池子里。用户想访问,只需能通过它的UUID,才能找到它。
好比上面图中,数据的葵花籽被做成了包装袋,每个包装袋都有一个唯一出厂条形码,但是找对应的对应的瓜子袋,只能通过唯一条形码找到对应的瓜子袋,但每一次都只能是一袋为单位。
对象存储端的文件系统就是采用这种哈希表-键值(可以理解为查字典,最多两层目录)这种方式来提高读写速度的。
对象存储就可以非常简单的扩展到超大规模,因此非常适合数据量大、增速又很快的视频、图像等,例如百度网盘、大数据存储;
▉总结:
随着互联网的快速发展,数据量在不断激增,传统存储系统已经不能满足需求。
尤其是云计算兴起后,会有什么全新的存储解决方案吗?
请看转到文章--《一文读懂:什么是分布式存储?》