September 19, 2026 in 计算机与网络2 minutes
介绍对象存储及其他存储方式的基础知识。
对象存储(Object Storage)是一种用于存储和管理海量非结构化数据(如图片、视频、音频、日志、备份文件等)的云存储架构。 它与块存储、文件存储并列为三大主要存储类型,核心思想是将数据封装为独立的"对象",通过全局唯一标识符进行访问,而非传统文件系统的目录层级结构。
每个对象包含三部分:
对象存储在逻辑上分为两层:
打个比方:文件存储像一个图书馆,书按分类摆放在固定书架上,借书要按索书号一层层找位置;对象存储像一个快递仓库,每个包裹上有唯一的运单号,包裹随便放,只要扫运单号就能找到。
这个差异带来了几个直接结果:
为优化成本,对象存储通常提供多层存储类型,适配不同访问频率:
| 存储类型 | 适用场景 | 特点 |
|---|---|---|
| 标准存储 | 频繁访问的热点数据(网站图片、短视频、AI训练数据) | 低延迟实时访问,无最短存储时间限制 |
| 低频访问 | 每月访问1-2次的温数据(业务备份、不常查阅的文档) | 存储单价更低,有30天最短存储时间约束 |
| 归档存储 | 长期保存极少访问的冷数据(档案、医疗影像、科学资料) | 成本更低,解冻约1分钟,有60天最短存储时间 |
| 冷归档/深度冷归档 | 超长期几乎不访问的极冷数据(合规留存、历史资料) | 成本最低,解冻12-48小时,有180天最短存储时间 |
配合生命周期管理功能,可以设置规则自动将数据从标准存储沉降到归档存储,到期自动删除,大幅降低管理成本。
其中阿里云 OSS 是国内资历最老、用户基数最大的对象存储服务,腾讯云 COS 在小程序生态和性价比方面有优势,华为云 OBS 在政企市场和等保合规方面表现突出。
简单来说,对象存储是为"写一次、读多次、极少改"的场景设计的,如果你的数据符合这个特征且体量很大,对象存储几乎是最优解。
| 对比维度 | 块存储 | 文件存储 | 对象存储 |
|---|---|---|---|
| 存储单元 | 固定大小的数据块(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 |
本质:把磁盘切成固定大小的块,每个块有独立地址,操作系统把它当"裸硬盘"用,需要自己格式化文件系统。
核心优势:低延迟(亚毫秒级)、高IOPS(数十万级)、支持任意位置随机读写。
典型场景:数据库底层存储(MySQL/Oracle)、虚拟机磁盘、容器持久化存储、高性能计算。
一句话:块存储就是"云硬盘",给服务器当本地盘用。
本质:提供层级目录结构(文件夹套文件夹),支持POSIX语义,多客户端可以同时挂载访问同一套文件。
核心优势:人类可读的目录结构、文件级权限管理、多用户协作共享。
典型场景:企业办公文档共享、开发测试环境、4K/8K视频剪辑、工业设计仿真、传统应用迁移上云。
一句话:文件存储就是"网络共享盘",大家都能访问同一套文件夹。
本质:扁平化键值对模型,每个对象=数据本体+自定义元数据+唯一Key,通过HTTP API访问,没有目录概念。
核心优势:近乎无限扩展(EB级)、数据持久性12个9(99.9999999999%)、低成本、元数据灵活。
典型场景:图片/视频存储、备份归档、数据湖底座、静态网站托管、AI训练数据集。
一句话:对象存储就是"海量仓库",每个包裹有唯一运单号,扫一下就能找到。
这是两个不同层级的概念:
存储解决的是"数据物理存在哪里"的问题,数据库解决的是"数据怎么逻辑组织、高效查询、保证一致性"的问题。
| 对比维度 | 存储(块/文件/对象) | 数据库 |
|---|---|---|
| 本质 | 物理介质/基础设施 | 软件系统(DBMS) |
| 数据结构 | 原始字节/块/文件/对象,无内置复杂结构 | 表、行、列、文档、图等结构化模型 |
| 查询能力 | 只能通过路径/Key定位,无法复杂查询 | SQL/API,支持JOIN、聚合、过滤等复杂操作 |
| 事务保证 | 无ACID,写一半断电可能数据损坏 | 支持ACID事务,要么全成功要么全回滚 |
| 并发控制 | 基本无锁机制,多写可能冲突 | 完善的锁、MVCC、隔离级别 |
| 索引 | 无 | B+树、哈希、位图等,加速查询 |
| 数据完整性 | 无约束,写什么存什么 | 主键、外键、数据类型、唯一约束等 |
数据库运行在存储之上: