对象存储架构所解决的文件遍历问题

简介:

在处理庞大的数据集合时,你一定不想要耗费大量系统资源来检索所有的文件才查找得到你想要的信息。对象存储,与其特有的识别符,很大程度上简化了这个过程。

在对象存储体系架构的最底层,所有的数据仍以块存储的形式加以存放。对象存储作为块存储的上层,包含了数据(即包含所存储信息详细描述的元数据)以及独有的识别符,将其封装成为特定的对象。由于对象存储的逻辑结构位于块存储之上,它与下层的硬件层无关,于是便可使用任何x86处理器、内存、磁盘驱动器以及固态闪存,而不需要专属硬件来支持特定的对象存储。事实上,绝大多数对象存储都运行在消费级的产品上,或使用白壳机配合硬件与固态闪存。

一个对象存储体系架构通常包含了海量的元数据。常见的元数据包括安全策略,即诸如控制对象访问权限以及对象加密与否的信息、数据保护政策或管理策略。

对象并不会像文件存储或NAS中的文件那样用索引来组织;相反,它们只需存储在非等级寻址空内(Fat Address Space)。对象的定位与操作经由其独特的识别符与元数据完成。这与传统的数据块存储截然不同,在块存储中,数据被放置在系统中实际物理存储的位置,或者文件位置可以通过集中化的文件目录重新指向。

对象存储更适合于大型的数据集合

对象存储体系架构中的非等级寻址空间使其较传统的NAS或SAN 存储系统更适合大型数据的存储。NAS系统中单一文件的检索会涉及到一次详细搜索——通常被称为文件遍历(File Crawl)——完整的索引才能找出某个文件。该过程消耗了文件系统的大量资源,会影响到所有的读写操作,而且系统耗费的时间会随着文件系统的扩展而显著提升。随着系统存取需求提高以及文件数量的增大,文件索引的方式会在某个时刻到达瓶颈。

对象存储的检索明显会来得更快,因为其只会搜索唯一识别符和元数据。由于不需要遍历整个文件系统或索引,对象存储的扩展性更强,对性能的影响则更低。

绝大多数的对象体系架构在标准的RESTful应用程序接口之外都有相应的文件接口,例如NFS、SMB以及Hadoop分布式文件系统(HDFS)。这使得对象存储可以像NAS那样读写数据,同时保持自身的优势。HDFS接口使得对象存储成为Hadoop方案中更具成本效益的体系架构。

对象存储的上述差异性使其更为以下多种应用环境中更具成本效率的方案,包括了:

冷热数据的归档

检索

分析

备份

合规文档

社交媒体

文件分享

云存储

用简单构想一下就能理解为什么对象存储会成为大部分云存储供应商的首选数据存储模式,包括Amazon的Web Services、Google、IBM的SoftLayer、Microsoft的Azure和其它许多服务商。

对象存储提升了数据保护等级

对象存储中的海量元数据与非等级存储池结构使其成为纠错码的理想选择。纠错码需要相当多的元数据,但其比传统RAID方式来防护磁盘或硬件故障更加经济且更具弹性。纠错码将数据松散地分解存储在一系列对象中,称之为数据宽度(Width)。阅读取回数据只需要找到数据宽度的一个子集,称之为数据广度(Breadth)。当数据广度可以被读取到时就代表着元数据可以被访问到,这时便无需获取到整个数据宽度来得到完整的数据。

假如不能阅读到所有的对象说明在读取过程中发生了错误。数据本身并不受影响。这时会重新创建新的对象来替代那些读取失败或无法找回的部分。在占用冗余存储量角度看,纠错码比RAID或镜像复制更有效率。

随之多处硬件并发故障的情况日益增多,所需的保护等级也逐渐提升。这里举一个例子,假如数据需要足够的容错性来防止6个硬件同时出错的情况,用多镜像复制的方式需要7倍的复制量,即占用额外600%的冗余存储空间;RAID压根无法提供7位的奇偶校验,你最多只能选择RAID 6来实现三重校验并对整个RAID进行镜像复制。这种配置方式需要大致2.5倍的复制量,即占用额外150%的冗余空间。此外,这还会大幅降低存储性能,尤其在发生重构的时候。对象存储体系架构用纠错码的方式,20位的数据广度占用26位的数据宽度,或者要性能更好的话,用16位的数据宽度代表10位的数据广度,这会占用额外30%~60%的存储空间,即1.3到1.6倍的冗余量。在达到同样硬件保护级别上这是巨大的成本差异。



本文转自d1net(转载)

相关实践学习
对象存储OSS快速上手——如何使用ossbrowser
本实验是对象存储OSS入门级实验。通过本实验,用户可学会如何用对象OSS的插件,进行简单的数据存、查、删等操作。
相关文章
|
Web App开发 监控 安全
OSS客户端签名直传实践:Web端安全上传TB级文件方案(含STS临时授权)
本文深入解析了客户端直传技术,涵盖架构设计、安全机制、性能优化等方面。通过STS临时凭证与分片上传实现高效安全的文件传输,显著降低服务端负载与上传耗时,提升系统稳定性与用户体验。
1343 2
|
消息中间件 监控 数据挖掘
【有奖实践】轻量消息队列(原 MNS)订阅 OSS 事件实时处理文件变动
当你需要对对象存储 OSS(Object Storage Service)中的文件变动进行实时处理、同步、监听、业务触发、日志记录等操作时,你可以通过设置 OSS 的事件通知规则,自定义关注的文件,并将 OSS 事件推送到轻量消息队列(原 MNS)的队列或主题中,开发者的服务即可及时收到相关通知,并通过消费消息进行后续的业务处理。
475 101
|
存储 NoSQL 关系型数据库
MPP架构数据仓库使用问题之Visibility bitmap表被删除的文件信息是如何记录的
MPP架构数据仓库使用问题之Visibility bitmap表被删除的文件信息是如何记录的
|
Java 对象存储 开发者
解析Spring Cloud与Netflix OSS:微服务架构中的左右手如何协同作战
Spring Cloud与Netflix OSS不仅是现代微服务架构中不可或缺的一部分,它们还通过不断的技术创新和社区贡献推动了整个行业的发展。无论是对于初创企业还是大型组织来说,掌握并合理运用这两套工具,都能极大地提升软件系统的灵活性、可扩展性以及整体性能。随着云计算和容器化技术的进一步普及,Spring Cloud与Netflix OSS将继续引领微服务技术的发展潮流。
425 0
|
DataWorks 安全 关系型数据库
DataWorks产品使用合集之同步数据到OSS时,文件的切分单位如何设置
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
388 1
|
存储 监控 数据可视化
SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
【9月更文挑战第2天】SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
792 9
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何将CSV文件从阿里云OSS同步到ODPS表,并且使用列作为表分区
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
347 1
DataWorks产品使用合集之如何将CSV文件从阿里云OSS同步到ODPS表,并且使用列作为表分区
|
存储 运维 Serverless
函数计算产品使用问题之OSS触发器是否可以只设置文件前缀
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。