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

主要有三种类型的数据存储,即对象存储、文件存储和块存储。那么它们是什么,它们各自的差异又是什么?

文件存储

文件存储是最常见的存储类型之一。大多数人从日常的计算机使用中熟悉它。考虑一个简单的案例:您将最近旅行中的照片存储在个人笔记本电脑/台式机上。首先,创建一个名为“我的旅行”的文件夹。现在,您可以在此文件夹下添加名为“我的收藏夹”的另一个文件夹,并将您喜爱的照片放入其中。通过这种方式,您将文件组织为具有文件夹和子文件夹的分层结构,并可以使用文件夹/文件路径访问它们。
以这种方式存储文件时,它附加的元数据有限,例如创建日期、修改日期和文件大小。随着数据量的增长,这种简单的组织架构可能会引发问题。性能可能下降是因为文件系统上的资源需求不断增加以跟踪文件和文件夹,并且这些“结构”问题无法通过简单地增加文件系统可用的存储空间来解决。
尽管存在大规模潜在问题,但文件系统在工作场所和大中型企业中使用的个人计算机和服务器上的日常使用情况良好。通常在硬盘驱动器和网络连接存储(NAS)系统上看到并部署文件存储。

对象存储

对象存储是一种数据存储,其中每个数据单元(称为“对象”)作为离散单元存储。这些对象实际上可以是任何类型的数据:pdf,视频,音频,文本,网站数据或任何其他文件类型。
与文件存储相反,这些对象存储在单个平面结构中,没有文件夹层次结构。在对象存储中,与文件存储使用的嵌套分层结构不同,所有对象都存储在平面地址空间中。此外,所有默认和自定义元数据都与对象本身(不作为单独的文件系统表或索引的一部分)一起存储在具有唯一标识符的平面地址空间中,并且这种方式变得更容易索引和访问。
对象存储在基于云的存储方案中非常常见,可用于以极高的可伸缩性和可靠性管理,处理和分发内容。平面寻址方案意味着访问单个对象既快速又简单:对象名称可以作为查找表中的“键”。对象存储系统只需要知道您要查找的对象的键(名称),然后可以使用查找表快速轻松地将其返回给您。

块存储

对象存储和文件存储都将文件视为单个“数据单元”。正如名称所示,块存储将数据视为一系列固定大小的“块”,其中每个文件或对象可以分布在多个块上。不需要连续存储这些块。每当用户请求该数据时,底层存储系统将数据块合并在一起并提供用户请求。
这可以在不需要分层结构的情况下实现,因为每个块具有不同且唯一的地址并且独立于所有其他块而存在。在某些情况下,块存储可以非常快速地检索数据,因为不一定需要读取数据的一条路径(想象一下磁盘阵列,其中可以从多个磁盘读取同一文件的数据)。块存储也实现了高效率,因为块可以存储在最方便的地方(表示相同文件或对象的块不需要彼此相邻地存储)。但是,块存储通常很昂贵,并且处理元数据的能力有限(对象或文件级概念),这些需要在应用程序级别进行处理。块存储通常部署在存储区域网络(SAN)存储中。在大多数应用程序中,对象或文件存储实际上是底层块存储之上的一层。您可以将块存储视为构建文件存储系统的基础。
下表比较了不同类型存储的不同功能。块存储是“高度结构化的”,因为每个数据块都排列在结构化的固定块中,以便于索引和搜索。文件存储以分层方式被索引和“结构化”,并且对象存储是“非结构化的”,因为没有用于数据存储的格式或结构,而是存在简单的对象列表。简单来说,“数据一致性”可以理解为存储系统所做的读取,写入和更新保证,例如最近写入的对象是否可以立即回读。“访问级别”是用户必须访问和操作数据的权限级别。

能力 对象存储 文件存储 块存储
一致性 最终一致性 强一致性 强一致性
结构 非结构化 层级结构 以块为结构
存储级别 对象级别 文件级别 块级别

相关文章