对象存储基础

你是否有这样的疑问:

  • 什么是对象存储? 对象存储 == 云存储 ?
  • 对象存储到底存什么?有哪些特点?
  • 各大云厂商的对象存储,如:S3、OSS、OBS、COS, 到底用哪一家?
  • 等等

面对各种关于对象存储的问题,本文试着用通熟易懂的话语,给大家分享一下,同时大家有任何问题和想法都可以一同探讨。

什么是对象存储

搜索引擎上一搜 对象存储 ,一出来就是 某某厂商云存储,似乎对象存储与云存储划等号了。

追根溯源各大厂商的对象存储,要回到AWS(亚马逊) S3 协议,其以一种简单的 REST API的方式对外提供可扩展、数据高可用、安全、和高性能的服务,除了数据读取服务外,还提供了很多高级特性,比如:生命周期管理、存储介质、对象锁、数据复制等(参考 S3 协议)基本各大厂商在S3的基础上,都发展各自的对象存储协议与特性,但是基本都会声称兼容 S3 协议。

S3协议两个重要的概念就是 桶Bucket 和 对象Object

  • 桶 是存储对象的容器,一个桶可以存放任意多个对象,在桶上有很多特性,如多版本、存储策略。
  • 对象 是一个基本的存储实体,对象中包含 数据 与 元数据,元数据中既有默认的原数据也有自定义的元数据,自定义元数据可通过 HTTP 的 HEADER 传入。

快速入门的一组操作实例:

  1. 创建桶
  2. 上传对象
  3. 下载对象
  4. 删除对象和桶

文件存储 & 块存储 & 对象存储

横行与其他存储协议对比,在云上有什么区别。

对比维度 文件 对象
概述 可以为多个云服务器提供共享访问,类似于Windows、linux远程目录 为云服务器提供可弹性扩展的云硬盘 提供海量的、安全的、高可高、低成本的数据存储能力。
协议 NAS、NFS SAN,iscsi S3、HTTPS
数据访问 挂载到服务器上,通过NFS协议访问 挂载在服务器上使用,通过iscsi协议访问 直接使用 HTTP/HTTPS访问
数据组织形式 文件系统方式,分层整理 数据块的形式 直接存放文件
应用场景 文件共享、 云硬盘 海量文件存储、大数据分析

国内外厂商

列举三个国内外成熟的厂商,对比其目前功能场景以及未来发力点。

AWS S3

鼻祖、不断挖掘数据价值。
主要特点:

  • 高可扩展
  • 低成本,多种存储介质
  • 安全性高、合规
  • 强大的访问控制
  • 数据湖,可以从任何地方获取任何量级数据进行存储,并做大数据分析
  • 复制功能备份和还原关键数据
  • 构建快速、功能强大的移动和基于 Web 的云原生应用程序,可在高度可用的配置中自动扩展。(理解一下,S3为云原生应用程序提供共享的存储环境,使其快速发布)

aliyun OSS

国内做的最早的一批厂商
主要特点:

  • 海量、安全、低成本、高可靠
  • 安全合规
  • 数据迁移,帮助企业快速上云、以及从其他厂商迁移数据
  • 支持图片、文档、视频、CSV等数据的常用处理和分析能力,这单很赞、充分利用自身算法优势,提供图片处理、人脸识别能力
  • 容灾备份 通过数据跨区域复制以及同城冗余、版本控制等技术,保障数据的高可靠性。
  • 数据糊

华为云 OBS

主要特点:

  • 海量、安全、高可靠、低成本
  • 安全可信
  • 超高性能,千万级TPS、2.4GB/s单流上传速度,感觉只有在私有云场景下,单流上传速度才有意义,共有云场景下,上传速度受限因素太多。
  • 多协议,支持兼容对象和POSIX协议。对象存储前面架一个文件网关,然后文件网关支持POSIX协议。这样做的好处是,可以从文件协议写入,然后对象协议读取数据,便于数据流动,在数据湖场景下,可以减少存储成本。
  • 并行文件系统,提供一个高性能的文件系统,这个很赞。

综上,从以上三个厂商的对象存储能力来看,都在完善基本能力的基础上,各自在自己擅长的领域发力,提供更优质的服务和能力。亚马逊在数据糊、云原生方面有更多亮点、阿里在AI、数据迁移上做的更好、华为在多协议互通、单机性能上更胜一筹。

因此对普通企业/个人用户来说,喜欢哪一家就用哪一家。

开源世界

聊完云厂商,再聊聊开源世界的对象存储,那肯定是大名鼎鼎的 CephMinio

Ceph

据说很多厂商的对象存储都是基于 ceph 基础之上的, 其显著特点是:同时支持 对象、文件、块存储三种协议,其主要是将三种协议最终收敛到平台 RADOS (Reliable Autonomic Distributed Object Store)
image.png

Minio

go语言编写,支持容器部署,天生适用于云原生,其显著特点是:

  • 双活复制(Active-Active Replication), 两端都可以同时对外提供服务,并将数据复制到对端。
  • 数据加密
  • 底层数据使用 纠删码(Erasure Code),而不是多副本模式,减少存储空间。

最后

对象存储不同于原有的存储(只在专网、私有云中提供存储服务),其可在互联网中对外提供海量的、低成本的、安全可靠的存储服务,让更多的企业/个人可以使用,相信未来其功能特性与使用场景将不断的扩大。

Reference


对象存储基础
http://example.com/2022/09/18/object-storage-service/
作者
Will
发布于
2022年9月18日
许可协议