对象存储

September 19, 2026 in 计算机与网络 2 minutes

介绍对象存储及其他存储方式的基础知识。

对象存储的组成与使用场景

对象存储(Object Storage)是一种用于存储和管理海量非结构化数据(如图片、视频、音频、日志、备份文件等)的云存储架构。 它与块存储、文件存储并列为三大主要存储类型,核心思想是将数据封装为独立的"对象",通过全局唯一标识符进行访问,而非传统文件系统的目录层级结构。


核心组成

每个对象包含三部分:

  • 数据本体:用户实际存储的二进制内容(如一张图片、一段视频)
  • 元数据(Metadata):描述对象属性的键值对集合(如创建时间、文件类型、自定义标签等),用户可以自由扩展
  • 唯一标识符(Object Key):全局唯一的对象ID,用于直接定位和访问对象

对象存储在逻辑上分为两层:

  • Bucket(存储桶):存储对象的容器,具有全局唯一名称,绑定固定地域
  • Object(对象):存储数据的基本单元,通过 Key 唯一标识

与传统存储的本质区别

打个比方:文件存储像一个图书馆,书按分类摆放在固定书架上,借书要按索书号一层层找位置;对象存储像一个快递仓库,每个包裹上有唯一的运单号,包裹随便放,只要扫运单号就能找到。

这个差异带来了几个直接结果:

  • 扩展性极强:不需要关心数据具体落在哪台机器上,存储集群可以横向扩展到 EB 级别(1 EB = 100 万 TB)
  • 接口极简:核心操作就几个——PUT(上传)、GET(下载)、DELETE(删除)、LIST(列举),通过基于 HTTP/HTTPS 的 RESTful API 访问,Amazon S3 兼容 API 已成为行业事实标准
  • 成本结构不同:按实际使用量付费(存储容量 + 请求次数 + 流量费),用多少付多少,无需提前规划容量采购硬件

核心优势

  • 近乎无限的扩展能力:分布式架构支持从 GB 到 PB 再到 EB 的弹性扩展,新增存储节点可自动加入集群,扩容对业务透明
  • 极高的数据持久性:主流对象存储通过多副本或纠删码技术,提供 99.9999999999%(12个9)的数据持久性,即使部分节点故障也能自动恢复
  • 低成本:采用商品化硬件构建集群,配合分层存储策略,总拥有成本(TCO)相比传统存储可降低 50% 以上
  • 灵活的元数据管理:用户可为每个对象添加自定义元数据,直接用于数据检索与分类,无需额外数据库

存储类型分层

为优化成本,对象存储通常提供多层存储类型,适配不同访问频率:

存储类型 适用场景 特点
标准存储 频繁访问的热点数据(网站图片、短视频、AI训练数据) 低延迟实时访问,无最短存储时间限制
低频访问 每月访问1-2次的温数据(业务备份、不常查阅的文档) 存储单价更低,有30天最短存储时间约束
归档存储 长期保存极少访问的冷数据(档案、医疗影像、科学资料) 成本更低,解冻约1分钟,有60天最短存储时间
冷归档/深度冷归档 超长期几乎不访问的极冷数据(合规留存、历史资料) 成本最低,解冻12-48小时,有180天最短存储时间

配合生命周期管理功能,可以设置规则自动将数据从标准存储沉降到归档存储,到期自动删除,大幅降低管理成本。


典型应用场景

  • 多媒体内容存储与分发:图片、视频、音频等富媒体文件的存储,配合 CDN 实现全球加速分发
  • 数据湖底层存储:作为大数据分析的数据底座,存储海量原始数据供计算引擎使用
  • AI训练与机器学习:存储训练数据集、模型权重,支撑 AI Agent 和多模态检索
  • 备份与归档:企业核心数据的长期保存,满足合规性要求
  • 静态网站托管:直接托管 HTML、CSS、JavaScript 等静态资源,无需服务器
  • 日志存储:业务日志、系统日志的集中存储与分析

主流厂商

  • 公有云:AWS S3(行业标杆)、阿里云 OSS、腾讯云 COS、华为云 OBS、Azure Blob Storage、Google Cloud Storage 等
  • 私有化部署:MinIO、Cloudian、HPE、浪潮信息等

其中阿里云 OSS 是国内资历最老、用户基数最大的对象存储服务,腾讯云 COS 在小程序生态和性价比方面有优势,华为云 OBS 在政企市场和等保合规方面表现突出。


哪些场景不适合对象存储

  • 需要频繁随机写或修改文件中间部分(如实时更新的数据库文件)
  • 需要低延迟的 POSIX 文件语义(如跑 Oracle RAC 共享存储)
  • 需要强一致性的目录级事务操作

简单来说,对象存储是为"写一次、读多次、极少改"的场景设计的,如果你的数据符合这个特征且体量很大,对象存储几乎是最优解。


块存储、文件存储与对象存储

三类存储的特性对照

对比维度 块存储 文件存储 对象存储
存储单元 固定大小的数据块(512B-4KB) 文件+层级目录树 对象(数据+元数据+唯一Key)
寻址方式 磁盘LBA块地址 文件路径(/home/user/file.txt) 唯一对象Key(扁平化,无层级)
访问协议 iSCSI、FC光纤通道、NVMe NFS、SMB/CIFS RESTful HTTP/HTTPS API(S3兼容)
共享能力 单主机独占,不支持多机同时读写 天然支持多客户端挂载共享 多客户端通过API并发访问
局部修改 ✅ 支持任意位置修改 ✅ 支持文件局部覆盖修改 ❌ 不支持,只能完整覆盖重传
扩展性 扩容上限有限,需提前规划 纵向扩容有性能瓶颈,海量小文件卡顿 近乎无限横向扩展(PB→EB级)
性能特点 低延迟、高IOPS,随机读写极强 顺序读写优秀,海量小文件性能差 大文件顺序读写优秀,随机读写延迟偏高
典型产品 AWS EBS、阿里云云盘、腾讯云CBS AWS EFS、NetApp、群晖NAS AWS S3、阿里云OSS、腾讯云COS

块存储(Block Storage)

本质:把磁盘切成固定大小的块,每个块有独立地址,操作系统把它当"裸硬盘"用,需要自己格式化文件系统。

核心优势:低延迟(亚毫秒级)、高IOPS(数十万级)、支持任意位置随机读写。

典型场景:数据库底层存储(MySQL/Oracle)、虚拟机磁盘、容器持久化存储、高性能计算。

一句话:块存储就是"云硬盘",给服务器当本地盘用。


文件存储(File Storage / NAS)

本质:提供层级目录结构(文件夹套文件夹),支持POSIX语义,多客户端可以同时挂载访问同一套文件。

核心优势:人类可读的目录结构、文件级权限管理、多用户协作共享。

典型场景:企业办公文档共享、开发测试环境、4K/8K视频剪辑、工业设计仿真、传统应用迁移上云。

一句话:文件存储就是"网络共享盘",大家都能访问同一套文件夹。


对象存储(Object Storage)

本质:扁平化键值对模型,每个对象=数据本体+自定义元数据+唯一Key,通过HTTP API访问,没有目录概念。

核心优势:近乎无限扩展(EB级)、数据持久性12个9(99.9999999999%)、低成本、元数据灵活。

典型场景:图片/视频存储、备份归档、数据湖底座、静态网站托管、AI训练数据集。

一句话:对象存储就是"海量仓库",每个包裹有唯一运单号,扫一下就能找到。


存储与数据库的区别及配合

这是两个不同层级的概念:

存储解决的是"数据物理存在哪里"的问题,数据库解决的是"数据怎么逻辑组织、高效查询、保证一致性"的问题。

对比维度 存储(块/文件/对象) 数据库
本质 物理介质/基础设施 软件系统(DBMS)
数据结构 原始字节/块/文件/对象,无内置复杂结构 表、行、列、文档、图等结构化模型
查询能力 只能通过路径/Key定位,无法复杂查询 SQL/API,支持JOIN、聚合、过滤等复杂操作
事务保证 无ACID,写一半断电可能数据损坏 支持ACID事务,要么全成功要么全回滚
并发控制 基本无锁机制,多写可能冲突 完善的锁、MVCC、隔离级别
索引 无 B+树、哈希、位图等,加速查询
数据完整性 无约束,写什么存什么 主键、外键、数据类型、唯一约束等

打个比方

  • 存储 = 仓库的货架和空间,只负责"放东西"
  • 数据库 = 仓库管理系统(WMS),不仅有货架,还有:
    • 货物分类目录(数据模型)
    • 高效查找方法(索引)
    • 进出库登记流程(事务)
    • 防乱拿乱放的规则(并发控制、锁)
    • 管理员权限(安全)
    • 备份计划(恢复)

它们之间的关系

数据库运行在存储之上:

  • MySQL/Oracle 的数据文件(.ibd)最终是存在块存储上的
  • 数据库的备份文件可以存到对象存储里做归档
  • 开发环境的共享代码库可以放在文件存储上