
| 类型 | 数据存储架构 |
| 访问方式 | HTTP RESTful API(S3 协议为事实标准) |
| 代表服务 | 亚马逊 S3、阿里云 OSS、腾讯云 COS |
| 开源实现 | MinIO、Ceph、OpenStack Swift |
| 典型用途 | 静态资源托管、备份归档、数据湖 |
| 对比架构 | 文件存储、块存储 |
对象存储(Object Storage)是一种将数据作为「对象」来组织和管理的计算机存储架构,每个对象由数据本身、可自定义的元数据和一个全局唯一标识符组成,应用程序通过这个标识符直接读写数据。
传统的文件存储把数据放进层层嵌套的目录树,块存储则把数据切成固定大小的块交给操作系统管理。对象存储走了第三条路:它取消了目录层级,把所有对象放进一个扁平的命名空间(常称为「桶」或 Bucket),靠唯一标识符定位数据。这种设计让系统可以横跨大量物理服务器扩展,容量几乎没有上限。
对象存储可以在多个层面实现,包括设备层面的对象存储设备(OSD)、系统层面的分布式存储软件,以及接口层面的云存储服务。如今用户接触最多的是云厂商提供的对象存储服务,例如亚马逊 S3、阿里云 OSS、腾讯云 COS 等,S3 的 API 也已成为行业事实标准。
由于每个对象都能携带丰富的元数据,并且系统内置数据复制、生命周期管理等能力,对象存储特别适合存放图片、音视频、日志、备份归档这类一次写入、多次读取的非结构化数据。
对象存储广泛用于网站和 App 的静态资源托管(图片、视频、下载文件)、数据备份与归档、大数据分析的数据湖底座,以及配合 CDN 做内容分发。开发者也常用开源方案如 MinIO、Ceph 在自有服务器上搭建兼容 S3 协议的私有对象存储。
问:对象存储和网盘是一回事吗?答:不是。网盘是面向普通用户的成品应用,对象存储是面向开发者的基础设施,网盘的底层往往就构建在对象存储之上。
问:对象存储适合当数据库或系统盘用吗?答:不适合。对象通常整体读写、不支持原地修改局部内容,延迟也高于块存储,因此数据库、操作系统盘应使用块存储,对象存储更适合非结构化数据。
问:自建对象存储和用云服务怎么选?答:数据量大、有合规或成本诉求且具备运维能力时可用 MinIO、Ceph 等自建;否则直接使用云厂商的对象存储服务更省心,按量付费、免运维。

| 类型 | 数据存储架构 |
| 访问方式 | HTTP RESTful API(S3 协议为事实标准) |
| 代表服务 | 亚马逊 S3、阿里云 OSS、腾讯云 COS |
| 开源实现 | MinIO、Ceph、OpenStack Swift |
| 典型用途 | 静态资源托管、备份归档、数据湖 |
| 对比架构 | 文件存储、块存储 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧