什么是块存储?

13 Jul 2025 | 12分钟阅读

引言

块存储是现代数据存储解决方案的关键组成部分,它为文件系统和数据库等各种应用程序提供高效、快速的数据访问。块存储通过允许数据以可独立管理的数据块形式存储,简化了跨多个环境的存储管理,提供了灵活性和可扩展性。

本文将涵盖块存储的基础知识,包括其组成、工作原理和典型应用。

Block Storage

块存储

块存储是一种数据存储方法,其中每个卷都像一个独立的、由管理员配置的硬盘驱动器。根据块存储模型,数据以固定大小的单元——数据块的形式存储在存储介质上。每个数据块都有一个唯一的地址,作为其唯一的元数据。

块存储由一个独立的存储介质的软件应用程序管理,该软件应用程序控制存储驱动器上数据块的排列和位置。该程序还管理数据检索,在通过元数据定位所需数据块后,将数据块内的数据组织成完整的文件。

服务器操作系统控制存储块,通常通过 iSCSI、光纤通道或以太网上的光纤通道协议进行访问。块存储通常在存储区域网络 (SAN) 环境中使用,作为文件存储的替代方案,并且非常适合需要可靠的输入/输出性能和低延迟的高性能、任务关键型应用程序。

除了对象存储,一些云提供商还提供块存储服务,这对于许多企业应用程序至关重要。Rackspace Cloud Block Storage、Google Cloud Persistent Disks 和 Amazon Elastic Block Store (EBS) 是著名的云块存储服务。

Block Storage

块存储的特点

低延迟和随机 I/O 功能:块存储可以直接访问任何数据片段。这减少了等待时间,非常适合需要快速访问数据的应用程序。

高性能:块存储为交易量大的工作负载提供快速响应时间。多个读/写操作可以并行发生,支持每秒更多的交易,这对于数据库、金融系统和实时分析非常有利。

对数据管理和放置的控制权:使用块存储,您可以完全控制数据的存储位置和组织。将最关键的数据存储在最快的驱动器上也有助于您有效地对其进行优先级排序。

可扩展性:当工作负载增加时,您可以增加容量或添加更多驱动器。块层在连接时将新的存储硬件整合到现有的地址空间中。

跨各种操作系统和应用程序环境的通用性:块存储与几乎所有操作系统和应用程序兼容。Windows、Linux 和其他操作系统通常都支持面向块的设备。这种适应性使块存储与各种云基础设施和数据中心配置兼容。

块存储的类型

直接连接存储 (DAS):DAS 是一种直接连接到单个服务器的存储设备。DAS 性能很高且易于设置;它不像网络存储选项那样灵活。

网络附加存储 (NAS):NAS 系统通过网络共享存储,使多个设备能够同时访问数据。在 NAS 中,数据通过基于文件协议(如 SMB 或 NFS)进行访问,NAS 的功能更像文件存储。然而,可以通过网络块存储选项访问 NAS,这提供了更大的灵活性。

存储区域网络 (SAN):存储区域网络 (SAN) 使用 iSCSI 或光纤通道等基于块的协议,通过专用的高速网络将存储设备连接到服务器。由于其高可用性和可扩展性,SAN 适用于需要可靠且一致性能的企业级应用程序。

云块存储:云提供商提供的块存储服务,使用户能够将卷附加到虚拟机。云块存储非常适合动态工作负载,因为它具有高可扩展性,可以根据需要轻松扩展。

块存储如何工作?

在块存储中,数据被划分为固定大小的数据块。然后,这些数据块被单独存储在一个或多个物理存储设备上,例如 SSD 或 HDD。

  • 数据被划分为固定大小的数据块,通常在 512 到 4096 字节之间。根据工作负载和数据属性,某些存储系统可能支持可变块大小或动态修改块大小。
  • 逻辑块地址 (LBA) 对每个数据块都是唯一的。
  • 必要时,存储系统会使用这些 LBA 快速定位和检索特定的数据块。
  • 块存储允许随机访问数据;任何块都可以独立读写。
  • 物理存储设备(例如 HDD、SSD)被抽象化,主机系统看到的是一个存储容量池。
  • 然后,主机系统可以通过根据需要对存储池进行分区和格式化来创建逻辑存储卷。
  • 块存储系统通常使用 RAID 配置等冗余功能来防止因单个磁盘故障而导致的数据丢失。
  • 提供高级存储管理功能,如克隆、精简配置和快照,以优化存储资源。

块存储功能

块存储支持任务关键型和数据密集型工作负载,主要保留在本地。然而,这种情况似乎正在改变。随着企业寻求更有效、更灵活的方式来支持其工作负载,它们越来越多地使用云进行块存储。

块存储卷可用于存储各种应用程序,因为它们被视为独立的硬盘驱动器。

  • 电子邮件服务器(如 Microsoft Exchange)使用块存储,而不是基于文件或网络存储系统。
  • RAID 阵列将多个独立磁盘组合起来以提高性能和数据保护。块存储非常适合 RAID,因为它能够生成独立控制的存储卷。
  • VMware 等虚拟化供应商支持块存储协议,这可以增强 VM 文件系统的可扩展性和迁移性能。使用 SAN 进行块存储可以执行非标准 SCSI 命令,这也便于虚拟机管理。

标准接口和协议

iSCSI:此协议通过现有网络发送存储流量。虽然设置很简单,但网络拥塞可能会导致延迟。

光纤通道:此协议用于仅用于存储流量的高速网络。它提供可靠且快速的存储访问。因此,它在性能至关重要的环境中效果很好。然而,其实现可能成本更高,并且需要专门的硬件。

NVMe-oF (NVMe over Fabrics):这是一种较新的协议,专为高速 NVMe SSD 而设计。它具有低延迟和极快的数据传输速率。因此,它非常适合要求苛刻的应用程序。

这些协议的开发是为了满足早期、更有效数据访问的需求。随着数据使用量的增加,这些协议确保了系统与存储设备之间可靠、快速的传输。块存储的高性能和可扩展性依赖于它们。

块存储示例

服务器操作系统可以连接到块存储创建的原始存储卷。这些原始卷可以像独立的硬盘驱动器一样进行处理。这使得块存储可以用于几乎任何类型的应用程序,例如虚拟机文件系统 (VMFS) 卷文件存储和数据库存储。

考虑在公司范围内实施虚拟机。要存储 VMFS,您可以使用块存储快速创建和格式化基于块的存储卷。通过将物理服务器连接到该块,可以创建多个虚拟机。此外,用户可以通过在基于块的卷上安装操作系统并将其连接到该卷来共享文件。

私有云中的实现是块存储的另一个极佳应用。

块存储用例

块存储在很大程度上仍保留在本地,执行任务关键型和数据密集型任务,并有一些变化。随着组织寻求更可靠、更具可扩展性的方式来支持其工作负载,它们正逐渐转向云进行块存储。

RAID 阵列也是砖块存储的重要用例。为了数据安全和性能,多个独立磁盘与 RAID 结合。块存储能够独立管理存储卷,这使其与 RAID 非常匹配。

块级存储的另一个常见用途是虚拟机文件系统。VMware 等虚拟化供应商支持块存储协议,这可以提高迁移效率并增强可扩展性。使用块存储,SAN 还有助于我们处理虚拟机,从而可以写入非标准 SCSI 命令。

块存储与文件存储的区别

虽然块存储的使用有很多优点,但也有一些选项可能更适合某些组织。在块级存储与其他存储方案对阵时,有两种选择尤为突出:文件存储和对象存储。

Block Storage

如果目标是简单性,文件存储将胜过块级存储。然而,虽然块存储解决方案看起来比文件存储更复杂、成本更高,但它们也往往更强大、性能更好。文件存储支持高度可访问的集中式文件位置,通常价格比块存储便宜。为了组织文件,文件存储使用元数据和目录,这使其成为仅存储大量数据的组织的便捷选择。

相对简单的文件存储实现使其成为一种可行的文件保存方法,并且由于成本低廉和组织简单,本地存档可能是有利的。存储文件的另一个常见用途是组织内的文件共享。文件存储的简单性也可能是其缺点。包含的文件越多,由于其分层组织,梳理文件存储就越困难和耗时。如果效率是决定因素,文件存储将优于对象存储或块级存储。

对象存储与块存储

Block Storage

对象存储不是将文件分割成原始数据块,而是将数据聚集成一个包含元数据和数据的对象。存储块可能不包含元数据,但对象存储可以提供更多的数据背景,这在文件分类和修改方面可能很有益。此外,每个对象都有一个标识符。块存储可以扩展,但在可扩展性方面,对象存储无与伦比。对象存储的扩展架构只需向存储集群添加节点即可。

对象存储的通用性和可扩展性可能很受欢迎,但一些公司可能会选择优化性能并选择文件或块存储。

块存储的优势

性能:元数据是描述系统中存储的主要数据的额外信息。块存储使用唯一的标识符进行读写操作,而不是使用大量元数据。因此,服务器可以更有效地访问和检索块存储中的数据,并且开销更少。块存储提供超低延迟,这对于高吞吐量(高度事务性)的工作负载至关重要,因为它元数据需求量少。对延迟敏感的应用程序,例如数据库。

例如,Viasat 使用 Amazon Elastic Block Store (Amazon EBS) 来优化存储成本并收集高吞吐量(高度事务性)数据。企业利用 Amazon EBS 来实现规模和敏捷性,以及优化成本和性能,并通过 EBS 快照实现数据安全。高性能应用程序倾向于选择块存储,因为它提供多个数据路径,而文件存储只有一个。

可扩展性和灵活性:块存储设备不限于特定的网络环境。可以为 Linux 和 Windows 等各种操作系统单独设置块。数据可以在不同环境中的开发人员之间共享,以确保高可用性。高可扩展性也是块存储架构的一个特点。开发人员可以扩展块以适应不断增长的容量需求。

频繁修改:块存储支持频繁的数据写入,而不会影响性能。系统会确定需要更改哪个特定块,而不是重写整个文件。然后用更新的数据重写选定的块。对于处理需要频繁更新的大文件,块存储非常有效。

细粒度控制:在使用块存储存储数据时,开发人员拥有广泛的控制权。例如,块存储允许您将热数据或冷数据存储在成本较低的硬盘驱动器 (HDD) 上,并将快速变化的数据分层到固态硬盘 (SSD) 上以获得最佳性能。

块存储的缺点

  • 服务器绑定:当块存储和服务器紧密连接时,其他服务器无法同时访问它。某些软件程序可以解决此问题,但它们会增加文件系统的负担,从而降低性能。
  • 元数据限制:与文件存储或对象存储相比,块存储的元数据要少得多。因此,系统可能需要搜索许多块才能找到所需的数据,这可能会减慢搜索和检索等过程。
  • 成本:块存储的成本。维护 SAN 需要专业人员和大量的资金投入。块存储将开始占据大型组织云成本的很大一部分。

云中的块存储

如今,云提供商提供具有许多优势的块存储服务。

云块存储的适应性是其主要优势之一。您可以轻松地按使用量付费并按需访问。这种方法通常比本地存储更经济,因为本地存储需要初始硬件投资。

另一个重要优势是可扩展性。您可以调整存储容量以适应当前需求。这对于处理季节性需求或波动性工作负载的公司尤其有益。

您当前的云块存储也可以与现有基础设施集成。这使得混合配置成为可能,将云存储和本地存储结合起来。数据迁移、应用程序更新和灾难恢复都支持这种灵活性。

最后,云块存储对于多云战略至关重要。使用多个提供商可以帮助您降低成本并避免依赖单一供应商。这种方法使您能够为每项任务选择最合适的供应商。它还保持了 IT 设置的灵活性。

块存储卷管理

  • 调整卷大小:您可以动态调整许多云服务提供商的卷大小。更新虚拟机的​​文件系统以反映调整大小的映像。
  • 创建快照:通过创建块存储卷的备份,快照使您能够在必要时快速恢复数据。
  • 分离卷:要避免在从云控制台分离卷之前缩减虚拟机 (VM) 上的卷。
  • 删除卷:一旦卷不再使用,您可以从控制台将其删除以释放资源。

结论

块存储为需要低延迟访问、可扩展性和灵活存储管理的应用程序提供了合适的选择。块存储数据库为虚拟机和企业应用程序提供了稳定的基础,以应对工作负载的需求。了解各种配置和管理块存储解决方案对于最大化其在云环境中的容量尤其重要,在云环境中,可扩展性和性能对于最佳利用率至关重要。

常见问题解答 - 块存储

1) 描述块存储。

块存储使用块存储数据,它将数据分成固定大小的块,每个块都由一个地址唯一标识。标准文件存储按层次结构组织数据,而块存储独立管理每个块。它非常适合数据库、虚拟机和其他需要高性能和可扩展性的应用程序,因为它提高了数据管理和检索的效率。

2) 块存储如何实现数据冗余?

块存储利用复制和快照等技术来确保数据冗余和可靠性。复制通过将数据复制到不同的块或存储系统来提供高可用性和容错能力。如果需要,您可以恢复到之前的状态,因为快照会在特定时间点捕获块的状态。

3) 需要存储区域网络 (SAN) 才能使用块存储吗?

存储区域网络 (SAN) 可以提高块存储的性能和可管理性,但并非总是实现最佳性能所必需的。可以使用网络附加存储或直接附加存储系统来实现块存储。然而,SAN 提供了更大的灵活性和可扩展性。

4) 块存储适合备份吗?

是的,块存储可用作备份。由于其高性能和可靠性,块存储是备份解决方案的理想选择,可以快速有效地存储备份数据。还可以使用快照来记录数据状态并加快恢复速度。

5) 哪种类型的工作负载最适合块存储?

块存储最适合需要高性能、低延迟和高效数据访问的工作负载。这些包括高性能应用程序、虚拟机、数据库和事务处理系统。块存储的架构旨在轻松管理要求苛刻的任务。

6) 块存储如何处理大型数据集?

块存储通过将大型数据集分成多个较小的块(每个块都有其唯一的 ID)来有效地管理大型数据集。这使得数据检索和访问速度更快,无论数据集的大小如何。由于其可扩展性,块存储可以处理不断增长的数据集而不会出现性能下降。