对象存储器通常称为基于对象的存储器,是一种用于处理大量非结构化数据的数据存储架构。这些数据无法轻易整理到包含行列的传统关系数据库中,或不符合其要求。当今的互联网通信数据的大部分都是非结构化的。其中包括电子邮件、视频、照片、Web 页面、音频文件、传感器数据以及其他类型的媒体和 Web 内容(文本或非文本)。这些内容不断地从社交媒体、搜索引擎、移动设备和“智能”设备中流出。
市场研究公司 IDC 估计,到 2025 年,非结构化数据可能占全球所有数据的 80%。
企业发现,高效(且经济实惠)地存储和管理这一前所未有的海量数据极具挑战性。基于对象的存储器已成为数据归档和备份的首选方法,提供了传统文件或基于区块的存储器所无法实现的可伸缩性。通过基于对象的存储器,可以存储和管理以 TB、PB 甚至更大单位计的数据量。
对象是存储在扁平结构数据环境中的独立数据单元。没有像基于文件的系统那样的文件夹、目录或复杂的层次结构。每个对象都是一个自成一体的简单存储库,其中包括数据、元数据(与对象关联的描述性信息)和唯一的标识号(而不是文件名和文件路径)。这些信息使应用程序能够找到和存取相关对象。可以将对象存储设备聚合到更大的存储池中,并将这些存储池分布在不同位置。这样做可以实现无限的规模伸缩,并提高数据弹性和灾难恢复能力。
包含文件夹和目录的分层文件系统所带来的复杂性和可伸缩性挑战,都可以由对象存储器解决。对象可以存储在本地,但最常见的是驻留在云服务器中,可以从全球任何地方存取。
可以通过应用程序编程接口 (API) 存取对象存储系统中的对象(数据)。对象存储器的本机 API 是基于 HTTP 的 RESTful API(也称为 RESTful Web 服务)。此类 API 可以查询对象的元数据,从而通过互联网从任何地方、任何设备上找到所需的对象(数据)。RESTful API 使用“PUT”或“POST”等 HTTP 命令来上传对象,使用“GET”检索对象,并使用“DELETE”删除对象。(HTTP 是“超文本传输协议”的缩写,是在互联网上传输文本、图形图像、声音、视频和其他多媒体文件的一套规则)。
可以在对象存储器实例中存储任意数量的静态文件,以供 API 调用。除了创建、检索、更新和删除对象之外,还出现了其他 RESTful API 标准。这些标准允许应用程序管理对象存储器,其容器、帐户、多租户、安全性、记帐等。
例如,假设您想在单一平台中存储一个庞大图书馆系统中的所有书籍,除了存储书籍的内容(数据)外,还需要存储作者、出版日期、出版商、主题、版权和其他详细信息(元数据)等相关信息。可以将所有这些数据和元数据存储在关系数据库中,按目录和子目录的层次结构整理到文件夹中。
但如果其中包含数百万本书,搜索和检索过程将变得繁琐而耗时。由于这里的数据处于静态或固定状态,因此对象存储系统可以发挥出色的作用。在这个示例中,书籍的内容不会改变。对象(数据、元数据和 ID)作为“包”存储在平面结构中,并且通过单个 API 调用即可轻松查找和检索。此外,随着书籍数量的不断增长,可以将存储设备聚合成更大的存储池,并分布式组合这些存储池,实现无限的规模伸缩。
使用基于对象存储器的解决方案来存储数据,值得考虑的原因有很多,尤其是在互联网和数字通信时代,各种系统正以越来越快的速度产生大量基于 Web 的多媒体数据。
对象存储器在云计算时代和非结构化数据的管理中得到了广泛应用(据分析师估计,在不久的将来,全球绝大多数数据将是非结构化数据)。Web 生成的内容(电子邮件、视频、社交媒体、文档、物联网 IoT 设备生成的传感器数据等)数量庞大且不断增长。非结构化数据通常是静态的(不变的)数据,但可能随时随地需要存取(例如图像和视频文件,或归档的数据备份)。
基于云的对象存储器是长期保留数据的理想选择。使用对象存储器取代网络连接存储器 (NAS) 等传统归档,可以缩小 IT 基础架构规模。必须长期保留的强制监管数据,都可以轻松归档和存储。还可以经济高效地保留大量不经常存取的富媒体内容(图像、视频等)。
无限规模伸缩可能是基于对象的数据存储最显著的优势。可以将对象,即(任意数量的)独立数据单元,存储在服务器等存储设备内的扁平结构数据环境中。只需将更多设备/服务器并行添加到对象存储器集群,即可进行额外处理,并支持视频或图像等大型文件所需的更高吞吐量。
包含文件夹和目录的分层文件系统带来的复杂性,可以由对象存储器解决。因为无需浏览文件夹、目录或复杂的层次结构,所以降低了性能延迟的可能性,并提高了检索数据的效率。这样一来就可以提高性能,特别是在管理大量数据时。
您可以配置对象存储系统,以便其复制内容。如果集群内的某个磁盘出现故障,则可以使用复制磁盘,确保系统继续运行,不会中断或性能下降。可以在节点和集群内以及在分布式数据中心之间复制数据,以便在非现场甚至跨地理区域进行额外备份。
对象存储器是替代磁带备份解决方案的更高效方法,后者需要将实体磁带加载到磁带机,然后再将其移除,并移至非现场以实现地理冗余。可以使用对象存储器自动将本地数据库备份到云,也可以在分布式数据中心之间经济高效地复制数据。此外还可以添加额外的异地备份,甚至跨地理区域备份,以确保灾难恢复。
有关灾难恢复的更深入探讨,请查看《备份与灾难恢复完整指南》。
请记住,每个对象都是一个独立的存储库,其中包含与其关联的元数据或描述性信息。对象将这些元数据用于重要功能,例如保留、删除和路由政策、灾难恢复策略(数据保护)或验证内容真实性。例如,还可以使用其他上下文定制元数据,可以稍后提取和利用这些上下文,就客户服务或市场趋势执行商业洞察和分析。
对象存储器服务采用即用即付定价方式,不会产生任何前期成本或资本投资。只需为指定数量的存储容量、数据检索、带宽利用率和 API 事务支付每月订阅费。相关定价通常基于层级或使用量,这意味着您将为海量数据支付更少的费用。
另外还可以通过商用服务器硬件节省额外成本,因为对象存储器解决方案没有太多的硬件限制,并且可以部署在大多数适当配置的商用服务器上,从而降低了在本地部署对象存储平台时购买新硬件的需求。甚至可以使用来自多个供应商的硬件。
对象存储器与提供多租户存储即服务的云或托管环境相辅相成,使多家公司或公司内部多个部门可以共享同一个存储库,每个公司或部门都可以存取存储空间的单独部分。这种共享存储方法本质上优化了规模和成本。可以通过使用低成本的云存储,减少组织内部 IT 基础架构,同时使数据在有需要时易于存取。例如,企业可以使用基于云的对象存储器解决方案来收集和存储智能设备应用程序的大量非结构化 IoT 和移动数据。
存储方法不断演变,以满足数据不断变化的性质。数据可以是事务性数据并以较小量收集,然后整齐地存储在服务器磁盘驱动器的数据库中。基于文件的存储器和基于区块的存储器非常适合这种类型的结构化数据,并且在某些场景下仍然发挥很好的作用。但互联网改变了一切。各组织纷纷面临管理不断增加的基于 Web 的数字内容(非结构化数据)难题。基于对象的存储器可以应对这一挑战。
贵公司可能有不同的存储需求,具体取决于 IT 运营的速度和性能需求。仔细研究基于文件、区块和对象的存储方法,因为每种方法都有各自的优缺点。您可能会发现,综合这些体系结构最能满足您的数据存储需求。
文件存储器会将数据整理并存储到文件夹中。系统会命名文件并用元数据进行标记(通常是文件名、文件类型以及创建和最近更新的时间),并整理到目录和子目录层次结构下的文件夹中。可以将文件存储器想象为在文件柜中存储实体纸质文件。其中有多个抽屉(目录),而每个抽屉内会有标记的文件夹(子目录)。若要在文件柜中查找特定的文件夹,可以拉出适当的抽屉并查看文件夹标签。同样,若要存取文件存储系统中的数据,电脑系统只需要查找相关数据的路径(目录和子目录)。类似这样的分层存储系统可以很好地处理相对较小、易于整理的数据量。然而,随着文件数量的不断增加,搜索和检索过程可能变得繁琐而耗时。
《文件存储器完整指南》全面概述了文件存储器。
基于对象的存储器已成为当今数字通信(非结构化媒体、电子邮件、视频、图像文件和 Web 页面等 Web 内容)以及 IoT 设备生成的传感器数据的归档和备份首选方法。这种存储系统并非将文件分解成存储在文件系统磁盘中的块,而是将对象视为存储在扁平结构数据环境中的独立数据单元。
对象存储器不使用文件夹、目录或复杂的层次结构。相反,每个对象都是一个自成一体的简单存储库,其中包括数据、元数据,以及应用程序用来查找和存取相关对象的唯一标识号。与基于文件的方法相比,这种情况下的元数据更具有描述性。可以使用更多上下文定制元数据,并于后续提取和利用这些上下文,用于数据分析等其他目的。
如果您需要经济高效的非结构化数据存储容量,实现远超出块和文件解决方案有效限制的伸缩性,可以使用对象存储器作为解决方案。对象存储器还非常适合归档不经常更改或根本不更改的数据(静态文件),例如交易记录或音乐、图像和视频文件。
块存储器提供了一种替代基于文件存储器的方法,效率和性能均有所提高。块存储器将文件分解为大小相等的数据块,并将这些数据块分别存储在唯一地址下。不需要文件与文件夹结构。相反,可以将数据块集合存储在系统的任何位置,实现最大效率。
若要存取文件,服务器操作系统会使用唯一地址,一并提取相关数据块,并将其组装到文件中。由于系统无需浏览目录和文件层次结构即可存取数据块,因此将提高效率。块存储器非常适合需要低延迟(最少延迟)、细粒度数据存取以及稳定性能的关键业务应用程序、交易数据库和虚拟机。
《块存储器完整指南》全面概述了块存储器。
如需详细了解块存储器和文件存储器的差异和优点,请观看视频“块存储器与文件存储器的对比”:
如前所述,基于对象的存储器是存储、归档、备份和管理大量静态或非结构化数据的理想解决方案。
其他用例包括:
我们从上文了解到,企业可以使用简单的 API 调用来上传和检索对象存储系统中的文件。但是,应用程序还需要对象的元数据才能在存储器中找到正确的对象。这就是对象存储器数据库发挥作用的地方。该数据库提供了一个目录,使用对象的元数据在分布式存储系统中查找适当的数据文件。
每个对象存储器组都有包含两张表格的对象存储器数据库。一张表格是对象目录,另一张表格则用于对象存储器。
对象目录表包含有关每个对象的描述性信息(元数据)。该目录记录了集合名称标识、对象名和其他相关信息,从而追踪存储器层次结构中的所有对象。例如,在 IBM 的对象存储方法中,对象目录表包括三个“索引”:
对象存储器数据库中的第二张表格是对象存储器表,其中包含数据内容/文件本身(相关对象)。相关数据(视频和图像文件或大型文档资料库等固定数字内容)位于对象存储中,而元数据(相关数据的上下文信息,包括名称标识)则位于数据库/对象目录表中。
当应用程序“发布”文件时,会创建元数据并将其存储在对象存储器数据库内的对象目录表中,同时将相关文件“放入”对象存储器表中。为了稍后检索文件,应用程序会在对象目录/数据库中查询元数据,并使用该描述性标识信息来查找或“获取”数据。
开放式源代码通常是指通用或非专有软件开发模型。开放式源代码开发者的环境鼓励协作。公众可以免费获得该环境中的所有源代码、文档、软件开发工具箱 (SDK) 和应用程序编程接口 (API)。开发者和程序员可以修改和改进源代码,然后在开发者社区内共享、分发或发布这些成果。其他开发者可以下载这些代码或进一步加以修改。
对于您的数据管理和存储器选项,开放式源代码技术提供了最大的灵活性和控制力。借助开源工具和开放 API,您可以定制代码来满足组织的特定需求。在开发过程中,您不会受限于专有技术,而是可以自由利用当前已经拥有的硬件(或混合搭配的供应商硬件)。此外,您还将受益于更广泛社区内其他开发者的工作成果。
有多种开源解决方案可供基于对象的存储系统使用,例如 Ceph、MinIO、Openio.io 和 SwiftStack/OpenStack Swift。尽管这些解决方案具备不同的功能、政策选项和方法,但都有相同的目标,即实现非结构化数字数据的大规模存储。
所有主要开放式源代码技术解决方案均遵守 Amazon 简易存储服务 (Amazon S3) 对象存储器协议。该协议于 2006 年首次推出,此后已成为云存储的事实标准。每项解决方案均提供与 Amazon S3 RESTful API 兼容的开放式源代码对象存储服务器。许多解决方案还提供自己的开放 API 作为替代方法。例如,OpenStack Swift 不仅支持 Amazon 的 S3 API,还提供自己的 Swift Open API,并具备一些独特的功能。Ceph 对象存储器和 Openio.io 与 S3 兼容,但也支持 OpenStack Swift API 的大部分子集。
随着越来越多的开发者竞相快速部署和伸缩应用程序,容器化已然成为一种方兴未艾的解决方案。
容器化是一种正在迅速成熟的应用程序打包方法,可为开发者、基础架构和运营团队带来前所未有的好处。《容器化完整指南》将全面概述容器化的所有内容。
而 Kubernetes 已经成为领先的容器管理解决方案。Kubernetes 简化了容器化应用程序伸缩等管理任务,同时可以帮助企业推出应用程序新版本,并提供监控、记录和调试服务等功能。Kubernetes 是一个开放式源代码平台,符合 Open Container Initiative (OCI) 的容器映像格式和运行时标准。
Kubernetes 与对象存储器有什么关系?其中的关键在于规模。
Kubernetes 支持大规模管理容器,能够跨多个主机编排容器,并动态伸缩容器化应用程序及其资源(自动伸缩是 Kubernetes 的关键功能之一)。对象存储系统可大规模处理存储器。此类系统能够以 PB 级甚至更大的规模存储海量非结构化数据。这两种伸缩方法结合使用,可以为当今和未来海量且不断增长的数据工作负载创建理想的环境。
在 Kubernetes 之上运行对象存储系统是自然的选择。使用 Kubernetes 可以设置和管理分布式容器化应用程序。同样,Kubernetes 可以成为处理分布式对象存储池业务流程的统一管理界面,无论是本地存储池,还是跨数据中心甚至跨地理区域的分布式存储池。
如需了解有关 Kubernetes 的所有信息,请参阅《Kubernetes 完整指南》。
若要回顾之前内容并从核心概念开始,请观看视频“容器编排说明”。
IBM Cloud Object Storage 是一种非结构化数据存储服务,旨在实现耐久性、复原力和安全性等功能。
IBM Analytics Engine 是 Apache Spark 和 Apache Hadoop 的组合服务,用于创建分析应用程序。
适用于混合多云企业的智能身份和访问权管理 (IAM) 解决方案。由 AI 驱动,并由 IBM Security® 提供技术支持。