1. 定义

对象存储是一种 以“对象(Object)”为基本单位 的存储架构。

  • 对象 = 数据本体(文件内容) + 元数据(描述信息) + 唯一标识(Key/ID)。
  • 数据以扁平化的方式存放,不依赖文件目录层级。
  • 通过 HTTP/HTTPS API(REST/SDK)访问,而不是文件路径或块地址。

2. 为什么叫“对象存储”

  • 存储单位是“对象”,而不是“文件”或“块”。
  • 每个对象自带完整的元数据,类似面向对象编程中的“自描述对象”。
  • 关注的是数据整体,而不是底层细节。

类比:

  • 块存储:给你一堆纸页(block),你要自己装订成书。
  • 文件存储:给你书架和目录(路径)。
  • 对象存储:给你快递包裹(object),只看条码就能取。

3. 与块存储、文件存储的区别

特性 块存储 文件存储 对象存储
存储单元 Block(块) File(文件) Object(对象)
命名方式 块号(ID) 路径 Key/ID
组织方式 文件系统组织块 目录树组织文件 扁平命名空间 + 元数据
访问方式 块地址 文件路径 API(HTTP/HTTPS)
扩展性 小到中等 中等 极强(EB 级)
典型场景 数据库、虚拟机磁盘 文件共享、协作 图片、视频、AI 数据、归档

4. 解决的问题

对象存储的核心价值:

  • 可扩展性:突破文件系统在 PB/EB 级别的瓶颈。
  • 低成本:基于分布式架构和通用硬件。
  • 高可靠性:多副本、跨区域冗余,避免数据丢失。
  • 易访问:通过 URL/API 直接获取,云原生应用友好。
  • 元数据灵活:支持权限、标签、生命周期管理。

5. 发展历史

  • 1990s–2000s(研究/企业归档阶段)

    • 学术探索:Coda FS、OceanStore、Pond 等。
    • 企业产品:EMC Centera(2002)、Hitachi HCP、Caringo CAStor(2005)。
    • 主要用于归档,价格高、门槛高。
  • 2006(里程碑)

    • Amazon S3 推出:

      • 首次将对象存储以“云服务”形式大规模普及。
      • REST API 成为事实标准。
      • 按需付费,低门槛,面向开发者。
  • 2010s(云计算普及)

    • Google Cloud Storage、Azure Blob Storage、阿里云 OSS 等纷纷推出。
    • OpenStack Swift、Ceph、MinIO 等开源对象存储出现。
  • 2020s(云原生 & AI 时代)

    • 与 CDN、Serverless、边缘计算结合。
    • AI 训练数据、模型文件主要依赖对象存储。
    • Cloudflare R2 等产品挑战 S3,强调多云兼容和低成本。

6. 与数据库的关系

  • 历史上:数据库(BLOB)曾用于存储非结构化数据,但扩展性差。

  • 技术上:对象存储类似 Key-Value 数据库(Key = ID,Value = 数据+元数据)。

  • 应用上:常与数据库配合使用:

    • 数据库存元信息(用户、标签、权限)。
    • 对象存储存大文件(图片、视频、模型)。
  • 趋势:对象存储具备越来越多数据库能力(如 AWS S3 Select 支持 SQL 查询)。


7. 存储在哪里

  • 物理层面:最终还是落在 HDD/SSD 上。

  • 逻辑层面:由分布式系统自动分片、副本、冗余,用户只看到“桶(Bucket)+Key”。

  • 部署方式

    • 公有云(AWS S3、Cloudflare R2、阿里云 OSS)。
    • 私有云/机房(Ceph、MinIO)。
    • 混合云/边缘节点。

8. 总结一句话

对象存储的本质: 👉 在分布式集群上,用“对象”这种扁平化、自描述的方式来管理海量非结构化数据,并通过 API 提供可靠、可扩展、低成本的云原生存储服务。