什么是数据块存储?

数据块存储是一种控制数据存储和存储设备的技术。它将获取任何数据(如文件或数据库条目),然后将其分成大小相等的数据块。然后,数据块存储系统以针对快速访问和检索而优化的方式将数据块存储在底层物理存储上。对于需要高效、快速和可靠的数据访问的应用程序,开发人员更喜欢使用数据块存储。 应将数据块存储视为更直接的数据管道。相比之下,文件存储具有由文件系统(NFS、SMB)组成的额外层,需要在访问数据之前进行处理。

数据块存储有哪些优势?

很多组织使用数据块级存储的原因在于它具有以下优势。

高级性能

元数据是描述存储系统中包含的主要数据的附加数据。数据块存储使用有限的元数据,但依赖分配给每个数据块的唯一标识符进行读/写操作。这将减少数据传输开销,并使服务器能够高效地访问和检索数据块存储中的数据。

由于数据块存储元数据有限,因此数据块存储可以提供高性能工作负载所需的超低延迟。对于延迟敏感型应用程序(如数据库)来说,这是必需的。例如,Viasat 使用 Amazon Elastic Block Store(Amazon EBS)捕获高吞吐量(高事务性)数据,并优化存储成本。 组织使用 Amazon EBS 来优化性能和成本,实现扩展和敏捷性,并通过 Amazon EBS 快照保护数据。

数据块存储体系结构可为数据提供多条路径,而文件存储只能提供一条路径,因此数据块存储成为高性能应用程序的首选。

灵活、可扩展的使用

数据块存储设备不受特定网络环境的约束。可为不同的操作系统(如 Windows 或 Linux)配置单个数据块。开发人员可跨多种环境共享数据,以确保高可用性。数据块存储架构还具有很高的可扩展性。开发人员可在现有数据块的基础上添加新数据块,以满足不断增长的容量需求。

频繁修改

数据块存储支持频繁的数据写入,而不会降低性能。系统不必重写整个文件,只需识别需要修改的特定数据块即可。然后,它将使用新数据重写选定数据块。这使数据块存储在管理需要频繁更新的大型文件时非常高效。

精确控制

开发人员可以高度控制在数据块存储上存储数据的过程。例如,他们可以通过在特定数据块上对快速变化的数据进行分组并在其他数据块上存储静态文件来优化性能。由于正在进行的更新只会影响少量数据块,而不是整个文件,因而能够提高系统性能。例如,块存储允许在高性能固态硬盘(SSD)上对快速变化的数据进行分层,以及将热数据或冷数据存储在成本较低的硬盘驱动器(HDD)上。

 

数据块存储的使用案例有哪些?

数据块存储的独特特性使其成为事务性、任务关键型和 I/O 密集型应用程序的首选选项。数据块存储可以用于各种应用程序,包括关系数据库或事务性数据库、时间序列数据库、容器、引导磁盘和虚拟机监控器文件系统。

存储区域网络

开发人员通常将数据块存储部署为存储区域网络 (SAN)。SAN 是一种复杂的网络技术,向多个联网系统提供数据块存储,就好像这些数据块是本地连接的设备一样。SAN 通常使用光纤通道互连。相比之下,网络连接存储 (NAS) 是通过以太网提供文件的单一设备。

SAN 架构由三层组成:

  • 主机层由管理存储访问的服务器组成
  • 存储层由物理数据块存储设备组成,如磁带、磁盘驱动器或光学介质
  • 结构层将 SAN 服务器和 SAN 存储与 SAN 交换机、协议桥、路由器、线缆和网关设备等设备桥接起来

需要注意的是,SAN 使用跨远距离的同步或异步复制来实现冗余。这可以减少在无法访问某一地理位置时的停机时间。

SAN 架构可在统一环境中与多种类型的存储(包括数据块存储)配合使用。数据块存储为 SAN 上的文件存储提供了一种高效的替代方案。

容器

开发人员可以使用数据块存储将容器化应用程序存储在云中。容器是包含应用程序及其资源文件的软件包,可在任何计算环境中部署。与容器一样,数据块存储同样灵活、可扩展且高效。借助数据块存储,开发人员可在不同服务器、位置和操作环境之间无缝迁移容器。

事务性工作负载

事务性工作负载是在特定业务流程点生成的数据序列。例如,销售记录、运营日志和登录提醒均属于事务性工作负载。处理时间敏感型和任务关键型事务的组织会将此类工作负载存储到低延迟、高容量和高容错的数据库中。

数据块存储允许开发人员建立强大、可扩展且高效的事务性数据库。由于每个数据块都是一个独立单元,因此即便存储的数据增长,数据库也能以最佳方式运行。此外,还可以将单个存储数据块托管在不同的服务器上,以防止出现访问瓶颈。

在任务关键型应用程序中,数据块存储由独立磁盘冗余阵列 (RAID) 保障安全,以确保存在数据冗余。RAID 系统将数据文件备份在辅助存储中,并在主磁盘出现故障时恢复副本。这可以在数据块存储上存储和检索事务性工作负载时,确保应用程序保持不间断。

分析和数据仓库

数据块存储可与 Hadoop 的 HDFS 架构(Hadoop 分布式文件系统)配合使用,将数据以为独立分布式单元的形式存储,从而实现 Hadoop 和 Kafka 分析应用程序的性能。

虚拟机

虚拟机 (VM) 是一种允许计算机使用软件定义的计算资源运行独立操作环境的技术。例如,您可以使用 VM 在 Windows 桌面上运行 Linux 操作系统。虚拟机监控器是一个抽象层,负责分配运行辅助操作环境所需的内存、驱动器和计算服务。

数据块存储支持流行的 VM 虚拟机监控器。用户可以在数据块存储卷上安装操作系统、文件系统和其他计算资源。他们可以通过格式化数据块存储卷并将其转换为 VM 文件系统来实现这一目标。这使他们能够轻松地增加或减少虚拟驱动器的大小,并将虚拟化存储从一台主机转移到另一台主机。 

数据块存储的工作原理是什么?

在数据块存储系统中,您可以将数据分解为独立的固定大小数据块或片段。每个数据块都是一个单独的数据存储片段。完整的信息(如数据文件)将存储在多个非顺序数据块中。

数据块存储系统不会维护高级元数据,如文件类型、所有权和时间戳。开发人员必须在应用程序系统中设计一个数据查找表,用于管理将数据存储到相应数据块中的情况。应用程序可能会将数据存储在不同的操作环境中,以提高读/写效率。

数据写入

在写入序列中,应用程序会将数据拆分为数个数据块大小的部分。应用程序会将数据写入多个数据块,并将数据块的标识符记录在数据查找表中。该查找表使服务器能够计算存储在数据块中的数据的相对地址。

数据读取

当用户从数据块存储系统中请求特定文件时,服务器将使用数据查找表来确定数据的各个片段的存储位置。然后,应用程序将从多个数据块中检索数据,并按原始序列合并它们。

还有哪些其他类型的存储可用?

除了数据块存储之外,还有对象存储和文件存储选项。每种类型都有自己独特的优势。

对象存储

对象存储是一种以非结构化格式(称为对象)存储和管理数据的技术。每个对象都使用唯一标识符进行标记,并且包含描述底层内容的元数据。例如,照片的对象存储包含有关摄影师、分辨率、格式和创建时间的元数据。开发人员使用对象存储来存储非结构化数据,如文本、视频和图像。 

数据块存储与对象存储的对比

这两种存储解决方案各有千秋,具体取决于使用情形。数据块存储可在各种使用案例中提供低延迟和高性能值。其功能主要用于结构化数据库存储、VM 文件系统卷,以及大量读取和写入负载。对象存储最适合用于大量非结构化数据,尤其是当持久性、无限存储、可扩展性和复杂的元数据管理是影响整体性能的相关因素时。

文件存储

文件存储以文件和文件夹的分层结构存储数据。在网络环境中,基于文件的存储通常使用网络连接存储 (NAS) 技术。NAS 使用户能以与本地硬盘驱动器类似的方式访问网络存储数据。文件存储便于使用,并使用户能够管理文件共享控制。

数据块存储与文件存储的对比

文件存储系统将数据存储在特定的环境中,而数据块存储系统则可以与不同操作系统集成。文件存储可为最终用户计算提供直观的界面。而对于数据块存储,您可以向数据块存储系统添加新的数据块,而不会增加操作延迟。 

实例存储

实例存储可为您的实例提供临时性块级存储。这种存储位于以物理方式与主计算机连接的磁盘上。实例存储非常适用于临时存储频繁更改的信息(如缓冲区、缓存、暂存数据和其他临时内容),或者用于跨实例集复制的数据,如负载均衡的 Web 服务器池。

实例存储由一个或多个以数据块设备形式显示的实例存储卷组成。实例存储的大小以及可用设备的数量因实例类型而异。

AWS 如何为满足您的数据块存储需求提供支持?

Amazon EBS 是一种易于使用的数据块存储解决方案,适用于云工作负载。开发人员可以使用 Amazon EBS 为 Amazon Elastic Compute Cloud (Amazon EC2) 工作负载提供持久性存储服务。

  • Amazon EBS 为任务关键型和 I/O 密集型应用程序提供了一种高度可扩展的存储解决方案。
  • Amazon EBS 快照为数据块存储数据保护提供了一种简单而安全的方法。
  • 开发人员可以在 Amazon EBS 上安装各种类型的数据库,包括 SAP HANA、Oracle、Microsoft SQL Server、MySQL、Cassandra 和 MongoDB。

 

立即创建免费 AWS 账户,开始使用数据块存储。

AWS 数据块存储后续步骤

查看其他与产品相关的资源
查看云存储服务的免费优惠 
注册免费账户

立即享受 AWS 免费套餐。 

注册 
开始在控制台中构建

在 AWS 管理控制台中开始构建。

登录