amazon-web-services - block 级与文件级存储

标签 amazon-web-services amazon-s3 amazon-ebs

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

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

比如AWS里面的文章说AWS EBS可以做数据库,但是为什么比File Level好呢?

最佳答案

我喜欢这样想:

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

当谈到修改文件时,它们的行为不同:

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

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

数据库

数据库喜欢以自己的格式存储数据,这样可以快速访问数据。传统数据库是为在普通服务器上运行而构建的,它们希望快速访问,因此它们将数据存储在直接连接的磁盘上,这些磁盘是 block 存储。 Amazon RDS 使用 Amazon EBS 进行 block 存储。

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

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

关于amazon-web-services - block 级与文件级存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61533516/

相关文章:

amazon-web-services - Amazon EC2 spot 实例请求自行创建

amazon-web-services - 登录私有(private)注册表时出现 aws ecs 403 错误

python-2.7 - 使用 Python boto3 设置或修改 AWS Lambda 环境变量

amazon-web-services - AWS 更改数据收集系统上的 EBS 根卷

amazon-ec2 - 让 AWS ElasticBeanstalk 与 Sun JDK 配合使用时遇到问题

amazon-ec2 - 提高 Amazon EC2 上的数据传输速率

linux - Varnish 4 缓存年龄始终为零

java - 如何使用 java 和 AWS 临时凭证从 s3 存储桶下载文件

objective-c - 如何停止/取消aws s3中的下载请求

c# - 在不使用磁盘的情况下即时压缩流