评估 权衡你正在考虑的技术、产品和项目的利弊。

对象存储、块存储和文件存储:哪个是云应用的最佳存储?

对象、文件和块存储经常争夺云应用用户的心。做出正确的选择会对应用的性能、可靠性和成本产生深远的影响。

块存储、文件存储和对象存储既有显著的差异,也有显著的相似性。随着时间的推移,这些差异越来越小,而相似之处却越来越多,这使得为云应用程序选择最合适的存储变得更加困难。

选择存储首先要确定云应用程序的需求和要求,例如通过以下方式访问存储:

  • 布洛克:NVMe, NVMe- of, iSCSI,光纤通道
  • 文件:NFS, SMB
  • 并行文件:光泽,光谱尺度,Panasas, WekaIO, BeeGFS
  • 对象:S3 (RESTful API)

如果应用程序只能通过特定的协议访问存储,并且应用程序所有者不能花费时间和资源来修改应用程序,则默认做出存储决策。

如果不是这样,影响决策的其他需求包括有状态容器持久存储数据保护、业务连续性、灾难恢复和安全。在继续之前,一定要让应用程序所有者签署需求。

为云应用选择最合适的存储的第二步需要了解它们是什么,它们能做什么,不能做什么,每种应用的最佳用例,以及对象、块和文件存储的比较。理解和知识深度降低了对组织特定需求做出不太理想选择的风险。

什么是块存储?

块存储是服务器和工作站中存储介质(hdd或ssd)的默认类型。在使用NVMe-oF协议的DAS、SAN和远程直接内存访问(RDMA)存储中也可以找到它。

它被称为因为数据被分解成块并以块的形式存储。这些块在物理上分布在存储媒体上,以获得最佳效率。每个块都有一个唯一的标识符,可以重新构造数据以便读取。

块存储的优点

性能是块存储在云应用中的最大优势。具体地说,延迟。当涉及到应用程序事务响应时间时,延迟非常重要。更低的延迟意味着更快的响应时间和更多的IOPS。

块存储也相对简单。服务器文件系统以本机方式写入。云应用程序通常在需要快速读写时使用云块存储。由于块存储将应用程序数据从应用程序中解耦,因此可以将数据分散到多个驱动器和卷上。这加快了数据检索。

块存储的缺点

块存储没有元数据。这限制了它的灵活性。没有搜索功能或内置的数据分析功能。虽然一些块存储系统促进了它们的分析,但这些主要是存储和驱动器分析,而不是数据分析。

云块存储通常具有严重的可伸缩性限制。云应用程序受限于可访问的驱动器数量。

块存储用例

块存储最常见的用例是:

  • 关系或事务数据库。
  • 时间序列数据库。
  • 任务和业务关键型应用程序需要非常低的延迟和响应时间。例如高频交易、Magento等电子商务、在线交易流程、CRM和营销自动化。
  • 一般存储虚拟化和裸金属服务器
  • 用于文件和对象存储的底层存储媒体。
  • Hypervisor文件系统也倾向于使用块存储,因为它分布在多个卷上。
存储比较图
了解对象、块和文件存储的比较。

什么是文件存储?

文件存储的组织方式类似于人们在文件柜中组织物理文件的方式。文件被系统地放置到文件夹中,并通过基于扩展、类别或应用程序等特征的命名约定进行组织。文件系统是由目录、子目录和文件组成的层次结构。此外,文件使用有限的元数据存储,如文件名、创建日期、创建者、文件类型、最近的更改和最后一次访问。

定位文件可以通过层次结构手工完成,也可以通过编程完成。用户或云应用程序访问文件只需要从目录到子目录到文件夹到文件的路径。命名、删除或操作文件通常很容易,不需要任何额外的接口,因为文件已经组织在一个分层目录树中。

对于少量文件来说,搜索和定位文件相对容易,但当文件数量达到数十亿时,就会非常困难。

文件存储的一种变体是并行文件存储.这种类型的文件存储系统是为大量并发读和少量并发写而设计的。并行文件存储在Data Direct Networks、IBM Spectrum Scale、开源Lustre、开源BeeGFS、Panasas和WekaIO中最为常见。用例很窄,但在不断增长。

文件存储的优点

简单性通常被认为是文件存储的最大优点。通过扩展文件共享和协作,这一优势在云中得到进一步实现。

许多应用程序已经为文件存储编写并进行了优化。VMware等供应商提供的无处不在的管理程序内置了NFS。一些关系数据库,如Oracle和Microsoft SQL Server,以及流行的开源数据库,如MySQL、MariaDB、PerconaDB和PostgreSQL,都是使用文件存储的。而且,大多数模式可选数据库(如Casandra和MongoDB)都本机使用文件存储。

运行在公共云中的第三方文件存储还有另一个优势:来自Dell EMC、Pure storage、Rozo Systems、StorOne、WekaIO和Zadara storage等存储供应商的软件实现。这些现收现付(PAYG)云订阅服务为云应用程序提供共享文件存储,通过消除孤立存储来降低成本。昂贵的SSD或NVMe SSD可以在多个应用程序之间共享。

文件存储的缺点

成本是云中文件存储最明显的缺点。云中的文件存储通常比块存储贵三到四倍,而且是一个数量级比云中的对象存储更昂贵

性能是另一个问题。文件存储在块存储媒体之前需要一个软件上层。这增加了延迟并减少了响应时间、IOPS和吞吐量。然而,一些文件存储系统已经显著地降低了开销延迟,使其不再是一个问题。他们通过提高文件存储软件的效率(StorOne),或优化它的flash (Pavilion Data Systems, Pure storage, Vast Data),增加处理能力(Pavilion Data)或使用低延迟RDMA NFS(几个)来实现这一点。

对于文件存储系统,最明显的缺点可能是可伸缩性有限。当文件数量上升到数亿到数十亿时,文件存储系统可能会陷入停滞。这是一种过时的看法,并不适用于许多最新的文件存储系统。最近的文件存储系统——Ctera Networks、Dell EMC、Nasuni、Panzura、Pavilion Data、Pure storage、Qumulo、Vast Data和WekaIO——通过实现扩展架构和/或全局命名空间,克服了这个历史上的文件存储可伸缩性瓶颈。

文件存储用例

最常见的文件存储用例是:

  • AI-machine学习
  • AI-deep机器学习
  • 各种分析
  • 健康记录
  • 流媒体视频
  • 音频流
  • 一般的多媒体
  • 办公应用程序
  • 备份目标存储
  • 存档的目标存储
  • 文件共享和工作流协作

比较不常见,但仍然重要的是,文件存储用例包括:

  • 利用并行文件存储的高性能计算集群应用程序
  • 地理上分布的全局命名空间(共享/协作)
    • 数据,Ctera Panzura
  • VMware ESX和vSphere
  • 关系数据库
  • 模式可选的数据库

什么是对象存储?

对象存储组织非结构化数据以一种非常有效的方式,但对人们来说并不直观。没有层级——这是关于单个对象的。这是一个无共享的架构,理论上可以实现无限的可伸缩性。文件作为对象存储在不同的位置,每个对象都有一个具有相当数量元数据的唯一标识符。元数据量是可变的——而且明显大于文件元数据——大小从千字节到千兆字节不等。

对象存储元数据包括通常在文件系统中发现的元数据,同时通常包括文件内容的摘要、关键字、关键点、注释、关联对象的位置、数据保护策略、安全、访问和地理位置。

增强的元数据使对象存储能够在比块或文件更细的粒度级别上保护、管理、操作和保持对象。一个常见的例子是对象存储通过使用擦除码来提高数据持久性。

擦除代码将文件分解为不同存储驱动器、存储/服务器节点甚至地理位置上的多个对象。Erasure code提供数据弹性,在多个驱动器和/或存储节点并发故障。这比RAID甚至三奇偶校验RAID具有更高的弹性。

定位由多个对象表示的数据是通过对象的唯一标识符及其元数据完成的。没有层级要扫描或爬行。更细的粒度意味着可以在每个对象的基础上提供许多函数。当数据保护、复制、搜索、挖掘、移动和管理变得更细粒度时(就像在对象存储中那样),它也会变得更快、更高效。随着文件数量增长到数十亿或数万亿,这一点越来越明显。

对象存储的优点

对象存储的最大优势是低成本。这是组织选择云应用程序的主要原因。

大规模的可扩展性是第二大优势。这种可伸缩性是对象存储的无共享架构和平台结构的直接结果。相对于文件存储或块存储的层次结构,全局唯一标识符的使用有助于实现这种可伸缩性。对象存储已经证明可以增长到exabytes的数据,并且有可能增长到zettabyte甚至yottabyte的规模。

无限制的元数据提供了额外的优势。存储管理员在如何实现数据保存、数据保留、数据从使用flash ssd的高值节点移动到使用hdd的低值节点以及数据删除或过期等方面具有灵活性。

另一个优点是数据对由于擦除编码而导致的硬件故障具有弹性。对象存储可以编程,以防止大量驱动器和/或存储节点故障。硬盘不会像RAID那样重建,但数据会,而且可以跨多个硬盘快速重建。

由于这些好处,对象存储已经成为AWS、微软、Oracle、谷歌、阿里巴巴和IBM等大型公共云提供商的主要存储。

对象存储的缺点

擦除编码对数据恢复很有帮助,但它增加了很大的延迟用于读取和写入。擦除编码是CPU和内存密集型的,响应时间明显变慢。因此,除了二级或三级存储之外,很少使用对象存储。一些供应商试图通过实现flash ssd来缓解这个延迟问题。它们速度更快,但延迟仍然高于使用ssd的块或文件存储。

擦除编码也不能防止数据损坏、人为错误或恶意软件/勒索软件。一般来说,对象存储不提供快照,快照是块存储和文件存储的重要组成部分,它提供了这种级别的保护。

许多对象存储系统(包括文件和块存储系统)都可以提供基于保持的不可变或一次写、多次读的存储容器或存储桶。这可以防止数据在保留期间以任何方式被更改。在当前勒索软件和隐私法的环境下,这是一个重要的能力。然而,大多数这些系统通常不会扫描、检测或隔离存储在不可变存储中的数据中的恶意软件/勒索软件。

尽管一些对象存储(DataCore Caringo、IBM Red Hat Ceph、Scality Ring)有内置的NAS前端或物理NAS网关,但它们无法与本机NAS系统的响应时间性能相匹配。文件和对象存储通常都有块iSCSI网关功能。同样,NAS变体通常(尽管不总是)比对象存储等效变体更具有性能。要充分利用对象存储,应用程序或服务器文件系统必须使用RESTful API。事实上的标准RESTful API目前是S3。随着AWS的普及,其数量也在增长应用程序使用S3 API.这已经不像以前那样是一个缺点了,但是它仍然远远落后于文件存储应用程序。

另一方面,通过标准的NFS、SMB、并行NFS、RDMA NFS甚至Hadoop分布式文件系统协议访问文件系统,以及IBM Spectrum Scale(以前的全球文件共享系统)、Lustre、Panasas和WekaIO。

对象存储用例

最常见的文件存储用例是:

  • 用于备份的目标存储。
  • 目标存储为档案或金库。
  • 使用文件同步和共享应用程序作为中央存储库的文件共享和协作。
  • 健康记录。
  • 视频流。
  • 音频流。
  • 多媒体。
  • 人工智能、机器学习和深度机器学习,尤其是在数据集非常大的情况下。
  • 地理上分布的全局命名空间边缘过滤器(Ctera, Nasuni, Panzura)使用对象存储作为集中的数据湖。
  • 用于大规模分析的数据湖,如数据仓库。
    • Snowflake在AWS S3对象存储之上运行其数据仓库云服务。

存储选择成本考虑

为云应用程序选择最合适的存储的最后一步是计算TCO。这不仅仅是购买或订阅价格。它还包括支持基础设施的成本例如机架空间、开关、电缆、导管、收发器、电源、冷却、不间断电源供应、广域网(如果需要)、培训、技术更新、计划停机时间、计划外停机时间和时间。

花费在培训、管理、操作、供应、故障排除和升级上的时间是主要成本,而且往往没有被考虑在内。这还不包括云应用性能如何影响其他成本,如员工生产率、收入、产品上市时间、分析和人工智能行动时间洞察力。

存储类型的区分和选择的注意事项

存储继续发展.就像块、文件和对象存储有纯粹的存储系统一样,也有混合存储系统。这些系统提供块、文件、并行文件和对象;或block, file和object;或者只是一个存储系统中的文件和对象。公共云服务提供商也倾向于在其存储服务中提供块、文件和对象。

有些融合存储系统只强调一种存储类型,忽略了其他存储类型。此外,有些具有有限的可伸缩性。确保选择的存储系统支持当前的云应用需求,并在可预见的将来继续支持。

另外,不要假定云应用程序存储仅限于公共云服务提供商提供的存储。许多存储供应商都有“云邻近”服务,他们可以将自己的系统与公共云服务提供商放在同一个位置,或者非常接近公共云服务提供商;它们通过一个高性能的10gbps管道连接。此外,大多数存储供应商都有PAYG弹性订阅计划,反映云存储费用,但性能和存储服务更高。

下一个步骤

对象存储vs.云中的块存储

通过对象存储系统管理数据

现代数据中心的高性能对象存储挑战

深入挖掘云对象存储

搜索灾难复苏
搜索数据备份
搜索聚合基础设施
关闭
Baidu