一句话描述对象存储
对象存储是一种以非结构化格式(称为对象)存储和管理数据的技术。
所以这里你可以简单把对象理解成非结构化数据就可以了,比如视频、图片、网页、音频、电子邮件、传感器数据等。
工作原理
使用对象存储,对象保存在单个存储桶中,而不是作为文件夹内的文件保存。相反,对象存储整合了构成文件的数据片段,将所有用户创建的元数据添加到该文件,并附加自定义标识符。这将创建一个称为存储桶的平面结构,而不是分层或分级存储。这使您可以根据存储桶的功能和特征来检索和分析其中的任何对象,而无论文件类型如何。
这里简单理解为我们要找对象,只需知道它在哪个桶中,然后要根据key就能直接找到对应的value。
对象存储、文件存储和块存储
多年来,随着互联网的发展以及数据源和数据类型的不断丰富,全世界的数据存储需求也在不断演变。传统的文件存储和块存储并不能很好地处理产生的海量数据,尤其是天生不适合结构化数据存储方法的非结构化数据。
那么,对象存储与文件存储和块存储有什么区别呢?
- 文件存储
文件存储将数据存储和整理到文件夹中,类似于保存在办公室的纸质文件系统中的物理文件。如果需要某个文件中的信息,则需要知道哪个房间、文件柜、抽屉和文件夹包含该特定文件。文件存储使用相同的分层存储结构,文件被命名,以元数据标记,然后放入文件夹中。
要找到某个数据,需要知道查找该数据的正确路径。随着时间的推移,文件变得越来越多,搜索和检索数据文件可能会变得非常耗时。虽然可伸缩性较为有限,但通过这种方法可以很容易地存储几乎任何类型的少量数据,并且可供多个用户同时访问。 - 块存储
块存储在文件存储的基础上提升了性能,它将文件拆分为多个单独的块并单独存储。块存储系统会为每个原始数据块分配一个唯一标识符,当需要访问完整的文件时,系统将使用唯一标识符将数据块重组为完整的文件。块存储不需要单一的数据路径,因此可以将其存储在最方便的位置,并且在需要时仍然能够快速检索。
块存储非常适合需要处理大量事务型数据或使用任务关键型应用的组织,可提供低延迟和一致的性能。但是,块存储费用高昂,不提供元数据功能,并且需要操作系统才能访问块。 - 对象存储
如前所述,对象存储将文件存储为扁平数据环境(即存储池)中的独立对象,对象包含全部数据、唯一标识符和详细元数据(元数据包含关于数据、权限、政策和其他应急情况的信息)。对象存储最适合非结构化数据的静态存储,只写入一次数据,但可能需要多次读取。
虽然对象存储不需要目录、文件夹和其他复杂的分层结构,但却不适合用来存储不断变化的动态数据,因为修改对象需要重写整个对象。根据速度和性能要求,在某些情况下文件存储和块存储可能仍然适合需求。
对象存储的优势
- 可伸缩性强
可以轻松横向扩容对象存储的扁平架构,而不会受到文件存储或块存储那样的限制。对象存储基本没有大小限制,因此只需添加新设备,即可将数据扩大到 EB 级。 - 复杂性低
对象存储没有文件夹或目录,也就不具有层次结构系统的大多数复杂性。由于没有复杂的树或分区,检索文件变得十分轻松,因为不需要知道确切位置。 - 易于搜索
元数据是对象的一部分,无需借助单独的应用即可轻松搜索和导航。它也更加灵活,并且可以深度自定义。可以使用各种特性和信息来为对象添加标记,例如用量、费用以及自动删除、保留和分层的政策。 - 具有弹性
对象存储可以自动复制数据并存储在多个设备和多个地理位置。这有助于防范服务中断和数据丢失,并可为灾难恢复策略提供支持。 - 成本效益高
对象存储在设计时考虑了成本因素,与基于文件和块的系统相比,能够以更低的价格存储大量数据。使用对象存储时,只需要的容量付费,即使存储大量数据,也能很好地控制费用。
使用场景
- 大数据分析
存储大量任何类型的数据,然后查询这些数据以执行大数据分析,并获取有关客户、运营或市场的宝贵数据洞见。 - 数据存档
云对象存储非常适合长期数据留存。可以使用能够优化数据持久性、加快检索速度、加强安全性与合规性并且提升数据可访问性的解决方案来取代本地的磁带和磁盘存档基础设施,从而获得高级分析及业务情报能力。还可以以经济高效的方式归档大量富媒体内容,并长时间保留强制性监管数据。 - 富媒体存储和传送
降低存储和在全球范围内分发音乐、视频和图片等富媒体的成本。 - ML
在机器学习(ML)中,您“教”计算机进行预测或推理。使用算法来训练模型,然后将模型集成到您的应用程序中,以实时和大规模地生成推理。由于规模和成本效率的原因,机器学习需要对象存储,因为生产模型通常从数百万到数十亿个示例数据项中学习,并在短短 20 毫秒内生成推理结果。 - …
成熟的对象存储框架
- Amazon S3
Amazon Simple Storage Service (S3) 是亚马逊AWS提供的一种高度可扩展的对象存储服务。它提供了安全、耐用、可靠的存储基础设施,可以轻松存储和检索任意类型的数据。 - Google Cloud Storage
Google Cloud Storage是谷歌云平台上的对象存储服务。它提供了高可用性、持久性和强大的一致性,可用于大规模数据存储和分析。 - Microsoft Azure Blob Storage
Microsoft Azure Blob Storage是微软Azure云平台上的对象存储服务。它提供了高度可扩展的数据存储解决方案,适用于各种应用场景,包括备份、归档、分发媒体文件等。 - OpenStack Swift:
OpenStack Swift是一个开源的对象存储系统,适用于构建私有云和公有云的存储服务。它具有高可用性、可扩展性和数据冗余性,并提供了丰富的API接口。 - Ceph
Ceph是一个分布式对象存储系统,具有高可伸缩性和容错性。它采用了智能数据分布和数据冗余技术,可以在大规模集群中存储和管理海量数据。 - Alibaba Cloud Object Storage Service (OSS)
阿里云对象存储服务是阿里云平台上的一种高可用、高扩展性的对象存储服务。它具有低成本、高可靠性和安全性,并提供了丰富的存储和数据处理功能。 - Apache Ozone
Apache Ozone 是一个开源的分布式对象存储系统,它是 Apache Hadoop 生态系统的一部分,并且专门用于存储大规模数据。Apache Ozone 提供高度可扩展的存储解决方案,并且支持灵活的数据复制和故障恢复机制。非常感谢您的指正,Apache Ozone 也是一个成熟的对象存储框架之一。
后记
随着数据量的不断增长和应用场景的多样化,传统的文件系统和块存储在大规模数据存储方面逐渐暴露出局限性。对象存储作为一种创新的存储技术,具备可伸缩性、容错性、高性能和灵活性的特点,在大规模数据存储领域有着广阔的应用前景。未来,对象存储将成为大规模数据存储的主流,为各行各业提供更好的数据存储和管理解决方案。