04
2024
07
14:11:16

计算机里的分布式存储系统分为:块存储、文件存储、对象存储,他们之间区别是什么?



推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

计算机里的分布式存储系统分为:块存储、文件存储、对象存储,他们之间区别是什么?

最好能从本质原理角度去剖析区别。

个人理解块存储就是大文件切分数据块分散存储在不同的块设备上,但文件存储类型如何理解?




• 文件、块和对象是三种以不同的方式来保存、整理和呈现数据的存储格式。这些格式各有各的功能和限制。
• 文件存储会以文件和文件夹的层次结构来整理和呈现数据;
• 块存储会将数据拆分到任意划分且大小相同的卷中;
• 对象存储会管理数据并将其链接至关联的元数据。

文件存储是什么?
• 文件存储也称为文件级存储或基于文件的存储,数据会以单条信息的形式存储在文件夹中,正如您将几张纸放入一个文件夹中一样。当您需要访问该数据时,您的计算机需要知道相应的查找路径。(注意,这可能会是一条蜿蜒冗长的路径。)
• 存储在文件中的数据会根据数量有限的元数据来进行整理和检索,这些元数据会告诉计算机文件所在的确切位置。它就像是数据文件的目录。
• 请试想一下塞满文件柜的储藏室。每个文档都会按照某种类型的逻辑层次结构来排放——按文件柜、抽屉、文件夹,然后再是纸张。“分层存储”这个术语就是这么来的,而这就是文件存储。它是适用于DAS和NAS系统的最古老且运用最为广泛的一种数据存储系统;而且,这种系统您可能已经用了数十年。只要您访问保存在个人计算机上的文件中的文档,您就是在使用文件存储。文件存储具有丰富多样的功能,几乎可以存储任何内容。它非常适合用来存储一系列复杂文件,并且有助于用户快速导航。
• 问题是,就像文件柜一样,虚拟抽屉只能打开到一定的程度。基于文件的存储系统必须通过添置更多系统来进行横向扩展,而不是通过增添更多容量来进行纵向扩展

文件存储特点(NAS,Parallel Filesystem)
• 对外暴露的是个共享的“文件夹”,语义复杂POSIX
• 数据可以被多个客户端分享,数据可以被修改,随机访问
• 访问协议:NFS,CIFS,私有客户端
• 应用场景:高性能计算,人工智能,办公文件分享

块存储是什么?
• 块存储会将数据拆分成块,并单独存储各个块。每个数据块都有一个唯一标识符,所以存储系统能将较小的数据存放在最方便的位置。这意味着有些数据可以存储在Linux环境中,有些则可以存储在Windows单元中。
• 块存储通常会被配置为将数据与用户环境分离,并会将数据分布到可以更好地为其提供服务的多个环境中。当用户请求数据时,底层存储软件会重新组装这些环境的数据块,并将它们呈现给用户。它通常会部署在存储区域网络(SAN)环境中,而且必须绑定到正常运行的服务器。
• 由于块存储不依赖于单条数据路径,因此可以实现快速检索。每个块都独立存在,且可进行分区,因此可以通过不同的操作系统进行访问,这使得用户可以完全自由地配置数据。它是一种高效可靠的数据存储方式,且易于使用和管理。它适用于要执行大型事务的企业和部署了大型数据库的企业。
• 但是,块存储有一些缺点。块存储的成本高昂。它处理元数据的能力有限;

块存储特点(SAN,ServerSAN,DAS)
• 对外暴露是个块设备“盘”或者“逻辑盘”,语义简单
• 一个“盘”块设备不能够被多个客户端同时共享
• 访问协议:iSCSI,FC,NBD等
• 应用场景:数据库(结构化数据),虚拟机后端存储

对象存储是什么?
• 对象存储,也称为基于对象的存储,是一种扁平结构,其中的文件被拆分成多个部分并散布在多个硬件间。在对象存储中,数据会被分解为称为“对象”的离散单元,并保存在单个存储库中,而不是作为文件夹中的文件或服务器上的块来保存。
• 对象存储卷会作为模块化单元来工作:每个卷都是一个自包含式存储库,均含有数据、允许在分布式系统上找到对象的唯一标识符以及描述数据的元数据。元数据很重要,对象存储元数据可以非常详细,并且能够存储与视频拍摄地点、所用相机和各个帧中特写的演员有关的信息。为了检索数据,存储操作系统会使用元数据和标识符,这样可以更好地分配负载,并允许管理员应用策略来 执行更强大的搜索。
• 对象存储需要一个HTTP应用编程接口(API),以供大多数客户端(各种语言)使用。对象存储经济高效,可以轻松扩展,因而是公共云存储的理想之选。它是一个非常适用于静态数据的存储系统,其灵活性和扁平性意味着它可以通过扩展来存储极大量的数据。对象具有足够的信息供应用快速查找数 据,并且擅长存储非结构化数据
• 当然,它也存在缺点。无法修改对象 — 您必须一次性完整地写入对象。对象存储也不能很好地与传统数据库搭配使用,因为编写对象是一个缓慢的过程,编写应用以使用对象存储API并不像使用文件存储那么简单。

文件系统,对象系统,块设备三者之间的关系是什么?
• 文件系统,对象系统底层是由块设备,比如盘,SSD支撑的。
• 对象系统可以是块存储和文件系统的底层基础,逻辑块设备和文件系统的文件都可以用底层的对象来描述。比如文件的数据块由不大于4M的一组对象描述。
• 逻辑块设备底层可以是个文件或者对象模拟的。比如VMFS上的vmdk或VNX里的ThinLUN是UFS上的一个文件。

概念澄清

文件系统vs.文件存储

• 文件系统不一定是文件存储系统

• 广义文件系统只要是能解决名字空间或者地址空间的都叫文件系统,但是并不一定对外提供文件共享服务。比如VMWare的VMFS,或者RBD

对象系统vs.对象存储系统

• 对象系统是很多文件系统和块存储系统的底层基础,但是并不一定对外提供对象数据共享因此不一定是对象存储系统,比如Lustre OST

块设备vs.块存储系统

• 基础的块设备HDD/SSD是所有存储设备的基础

• 块存储系统底层可能是用对象或者文件来模拟的虚拟/逻辑块设备,比如Ceph RBD的底 层是RADOS对象系统,ZVOL底层的DMU是个对象系统


本文链接:https://hqyman.cn/post/6982.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

您的IP地址是: