块级存储与文件级存储

Fil*_*nda 3 amazon-s3 amazon-ebs amazon-web-services

我有一些这些术语:块级存储文件级存储。有人可以解释为什么一个比另一个更好吗?

也许通过示例和算法细化,理解起来会非常有趣。

例如AWS的文章说AWS EBS可以用于数据库,但为什么它比File Level更好呢?

Joh*_*ein 10

我喜欢这样想:

  • Amazon Elastic Block Store (Amazon EBS) 是块存储。它就像插入计算机的 USB 磁盘一样。信息存储在磁盘上的特定块中,操作系统的工作是跟踪每个文件使用哪些块。这就是 Windows 和 Linux 之间磁盘格式不同的原因。
  • Amazon Elastic File System (Amazon EFS) 是一种网络附加存储的文件系统。它就像公司为员工提供的用于在文件服务器上存储数据的驱动器(或其他任何东西)。您可以将文件系统像驱动器一样安装在计算机上,但是您的计算机将文件发送到文件服务器,而不是管理块分配本身。H:
  • Amazon Simple Storage Service (Amazon S3) 是对象存储。你给它一个文件,它把它存储为一个对象。你索取这个物品,它就会归还给你。Amazon S3 通过 API 访问。它没有作为磁盘安装。(有一些实用程序可以将 S3 安装为磁盘,但它们实际上只是将 API 调用发送到后端并使其表现得像磁盘一样。)

当涉及到修改文件时,它们的行为有所不同:

  • 操作系统可以修改块存储(如 USB 磁盘)上的文件。例如,更改一个字节或在文件末尾添加数据。
  • 文件系统(如H:驱动器)上的文件可以通过向文件服务器发出请求来修改,就像块存储一样。
  • 对象存储(如 S3)中的文件是不可变的,无法修改。您可以上传另一个同名文件,该文件将替换原始文件,但您无法修改文件。(上传的文件称为对象。)

Amazon S3 还具有其他独特的属性,例如通过 Internet 提供对象、提供多种存储类别以实现低成本备份以及在创建/删除对象时触发事件。它是应用程序的构建块,而不是用于存储数据的简单磁盘。另外,您可以存储的数据量没有限制。

数据库

数据库喜欢以自己的格式存储数据,以便快速访问数据。传统数据库是为了在普通服务器上运行而构建的,并且需要快速访问,因此它们将数据存储在直接连接的磁盘上,即块存储。Amazon RDS 使用 Amazon EBS 进行块存储。

网络连接的文件系统会降低数据库的磁盘访问速度,从而降低性能。然而,有时这种权衡是值得的,因为管理网络附加存储 (SAN) 比不断向每个单独的服务器添加磁盘更容易。

一些现代“数据库”(如果您可以使用该术语)(例如Presto)可以直接访问 Amazon S3 中的数据,而无需将数据加载到数据库中。因此,数据库处理层与数据层分离。这使得访问历史存档数据变得更加容易,因为不需要将其导入数据库。

  • 你的回答很有教诲性!:) 赞赏。 (2认同)