对象存储与块存储:它们有什么区别?

对象存储适用于大量的非结构化数据,而块存储适用于少量需要经常访问的数据。

学习目标

阅读本文后,您将能够:

  • 比较对象存储与块存储
  • 描述对象存储和块存储的用例
  • 解释每种云存储的优缺点

相关内容


想要继续学习吗?

订阅 TheNET,这是 Cloudflare 每月对互联网上最流行见解的总结!

参阅 Cloudflare 的隐私政策,了解我们如何收集和处理您的个人数据。

复制文章链接

对象存储与块存储:它们有什么区别?

对象存储块存储云存储的两种类型,表示可通过互联网连接访问的远程数据存储。对象存储具有高度可扩展性和可定制性,但速度不是始终很快。块存储速度快,但通常比对象存储更昂贵。哪种存储方式更适合一个组织的使用情况取决于多个因素。总的来说,对象存储通常用于大量的非结构化数据,而块存储在处理事务性数据和经常需要检索的小文件时效果最佳。

可以把块状存储想象成一个有代客泊车功能的紧凑型停车场,而对象存储则是一个拥有数英亩空间的大型开放式停车场。我们可以叫它“块存储车库”,它可以让司机快速取回他们的车;但它的车辆空间有限,如果要扩大容量,则需要新建一个车库并雇用更多的泊车员,成本非常高。与此相反,“对象存储停车场”允许对停车数量不作限制。然而,有些车可能停得很远,司机可能需要一些时间才能取回。

对象存储和块存储的工作原理

块存储将文件和数据分为同等大小的块。每个块都有唯一的标识符,存储在数据查找表中。需要检索数据时,可以用数据查找表找到所需的块,然后将其重新组合成原始形式。

可以这样想:数据查找表就像泊车员为每辆车保存钥匙的钥匙箱。当司机需要取车时,泊车员就会拿起钥匙并查找车的位置,以便迅速取回。与此相似,块存储使用存储在数据查找表中的唯一标识符来快速查找和检索数据。

块存储速度快,对于经常需要从后端加载数据的应用程序来说,这个方法通常是首选。

对象存储适合用于保存大量非结构化数据,包括传感器数据、音频文件、日志、视频和照片内容、网页和电子邮件。每个文件或数据段被保存为一个“对象”,每个对象包括元数据和一个唯一的名称或标识符,用于数据检索。(想象一下,在一个大型停车场里,司机可能会写下他们的车位号,以便记住车辆位置)。

所有对象都一起存储在一个“数据湖”(也称为“数据池”)。数据湖是扁平的 — 没有文件层次,就像一个平坦的大型停车场,没有坡道,也没有其他层。

对象存储和块存储的优点和缺点是什么?

能力 块存储 对象存储
存储容量 受限制 几乎没有限制
储存方法 数据存储在固定大小的块中,可以根据需要进行重新组合 非层次结构数据湖中的非结构化数据
元数据 受限制 无限且可定制
数据检索方法 数据查找表 可自定义
性能 速度很快,特别是对小文件而言 视情况而定,但对大文件来说效果很好
费用 取决于供应商,通常比较昂贵 取决于供应商,通常价格较低(除了出口费)。

从上表中可以看出,块存储和对象存储在很多方面都有不同。然而,企业应该仔细评估每种方法在四个主要方面的能力:成本、性能、容量和元数据。

对象存储的最大优势之一是其成本。通过对象存储来存储数据,通常比通过块存储成本低。块存储需要有相当数量的处理能力,以便数据可以被重新组合和经常读取,这种对性能的优化往往会提高其成本。

相反,性能是块存储的优势,特别是对于较小的文件。对象存储中的对象一般是不需要经常访问和加载的数据,而块存储刚好相反。

对象存储的另一个优势是其无限的(或者说几乎无限的)容量。对象存储数据湖的规模可以无限大,而客户只需为其使用的部分付费。块存储则是有限的,而且扩展成本高。

最后,元数据是一个重要的区别。在很多情况下,开发人员或组织可能希望将重要的信息附到存储的文件中,以便寻找、解释并描述其中的数据。块存储只允许使用非常基本的元数据,而对象存储的元数据则非常灵活。

哪些用例更适合块存储?哪些用例更适合对象存储?

块存储和对象存储的每个方面都可能是一个优势 — 或一个劣势 — 具体取决于企业的需求。

回到我们的停车例子:大型货车、半挂卡车和休闲车可能不太适合放在块存储车库里。而对象存储停车场由于空间宽阔,很适合停放此类车辆。

因此,开发人员或机构选择哪种存储方式,取决于要“停放”的车辆的大小,以及需要从停车场取出车辆的频率。

对于大量的非结构化数据,特别是如果不需要经常读取这些数据,则对象存储可能效果最好。对象存储的常见用例包括:

  • 应用程序资产
  • 日志与分析
  • 系统备份
  • 视频、音频、图像和其他媒体
  • 数据归档
  • 用于机器学习的数据集
  • 无服务器微服务应用程序的数据存储

如果是数据量和文件比较小,并且经常需要快速加载,则块存储可能效果最好。块存储的用例包括:

  • 关键系统数据
  • 数据库存储
  • 关键任务的应用程序数据
  • RAID 卷(RAID,即独立磁盘冗余阵列,是一种在多个硬盘或驱动器上存储相同数据的方法)

然而,上面列出的用例也不是一定的。有多种方法可以同时使用对象存储和块存储。值得注意的是,预计存储大量非结构化数据的需求(更适合用对象存储)将增长

Cloudflare R2 是块存储还是对象存储?

Cloudflare R2 是对象存储,因此它有对象存储的所有优势,但有一个关键的额外优势:没有出口费。把 R2 想象成一个不收费的大型停车场。而其他停车场要收费才允许司机驶离停车场,而且费用高得离谱。

Cloudflare R2 旨在使开发人员能够通过与 S3 兼容的对象存储创建他们需要的多云架构。R2 还可以与 Cloudflare Workers(一个用于编写函数和按需执行的微服务的平台)集成,以实现动态功能。进一步了解 R2