什么是块存储?

块存储是一种云存储,其工作原理是将数据划分为块。块存储允许快速检索数据。

学习目标

阅读本文后,您将能够:

  • 定义块存储
  • 描述块存储的工作原理
  • 了解块存储与对象存储的对比情况

相关内容


想要继续学习吗?

接收有关最流行互联网见解的每月总结。

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

复制文章链接

什么是块存储?

块存储是一种可以将文件和数据划分为大小相等的块的云存储。由于这种存储方式不依赖文件系统,因此可以实现快速检索数据。想想以下两者之间的区别:翻遍整个城市的图书馆的数字目录找一本书,和准确知道一本书在书架上的位置。前者更像文件存储;后者更像块存储。

对于经常需要从后端加载数据的应用程序,开发者通常更喜欢使用块存储。块存储速度快,扩展性极好。它还能与几种计算类型和网络模型很好地配合,包括容器计算、虚拟机和存储区域网络 (SAN)。

However, block storage is not without its downsides. File metadata has to be very basic and usually cannot be customized (imagine a library where only the title of a book is recorded). Block storage is also a more costly storage option than some other cloud storage models, like object storage.

块存储如何工作?

数据写入

当一个使用块存储的应用程序将数据写入块存储数据库时,它不是将其作为一个文件来存储,而是将数据分成几个部分,即“块”。这些块不必以任何特定的顺序存储。

唯一标识符

每个块都有一个唯一的识别码,使得应用程序以后能够通过该标识符找到该块。

数据查找表

这些唯一的标识符被存储在一个数据查找表中 — 这种格式可以让应用程序在需要时轻松找到每个块的位置。

数据读取

每当请求存储在块中的数据时,应用程序就会查询数据查找表,以找到所请求的数据的存储位置。通常,请求的数据分散在多个块中。应用程序将使用表中的标识符来检索数据,并将不同的数据块合并成原始形式。

块存储的好处是什么?有什么弊端?

好处包括:

  • 块存储查找速度快:块存储使用唯一的标识符,而不是使用元数据或文件层次结构来搜索数据,意味着可以极快地检索到数据。
  • 可以通过多种途径找到数据:由于唯一的标识符是检索所需的全部内容,因此块存储允许以多种方式找到数据。相比之下,如果是文件存储,则需要根据文件的层次路径进行查找,直到找到所需文件。

弊端包括:

  • 块存储较为昂贵:部分原因是它经过优化,具有快速性能,因此块存储比对象存储的成本更高。想想一辆赛车的成本为什么比一辆大型客货车要高。
  • 块存储的元数据是有限的:块存储只包括基本文件属性作为元数据。

块存储与对象存储相比如何?

对象存储将文件和数据保存在所谓的“数据湖”中,是非结构化数据的非层次性集合。任何类型的数据或文件格式都可以进入对象存储,这意味着与块存储不同,元数据可以是复杂的,也可以自定义。对象储存非常灵活,适用于各种使用情况,其中,媒体(如视频和音频)、日志和灾难恢复和备份是它的一些常见用途。

由于对象存储不是结构化或层次化的,它可以快速地、几乎无限地存储大量的数据 — 就像打包去度假时,把衣服松散地塞进一个大袋子里,比仔细把衣服叠好并分类放进行李箱里要快。然而,就像用这种方式打包一样,对象存储会降低数据检索效率。

对象存储与块存储 对象存储 块存储
存储容量 几乎无限制 取决于供应商
数据检索 有时很慢 快速
元数据 可自定义 基本的,有限制的

Blob 存储是用于二进制大型对象(俗称“blob”)的另一种对象存储。它也最适用于不需要经常检索的非结构化数据。

块存储与文件存储相比如何?

云文件存储本质上是一个传统的托管在的文件和文件夹层次结构。数据的文件夹嵌套在目录和子目录中;在每个文件夹中,文件都标有元数据标签,以便于识别。文件存储使数据有条不紊,但它不能很好地扩展到大量的数据。翻阅层次结构会增加数据检索时间。

然而,文件存储可能对某些用例很有效。不需要以企业级规模存储和检索数据的个人可能会发现文件存储可以满足他们的需求。

什么是 Cloudflare R2?

数据检索的成本(也称数据出口)是当今组织关心的一个主要问题。为了应对这些不断上升的成本,Cloudflare 通过一项名为 Cloudflare R2 的服务提供零出口费的对象存储。R2 可以进行快速、自由的数据检索;与 Cloudflare Workers' 分布式代码功能结合可以实现无限的可定制性。Cloudflare 旨在通过这项服务,帮助开发者和组织避免供应商锁定