对象存储一些分享
注: Blogger 的主题对 Markdown 支持有些问题。优雅的内容排版,请见 notion 版
探讨对象存储,我们从 AWS S3 ,另一个角度开始。
一、迷人的数字
2021年3月,在 AWS S3 发布 15 年之后,S3 中已存储 100 万亿个Object,峰值每秒数千万次请求。相当于地球上每个人拥有 1.3万个 Object。
到目前为止,S3 仍然是最成功的商业化对象存储服务,不仅定义了事实上的接口标准,更在引领对象存储产品进化的方向。
万亿Object,每秒数千万次 API 请求,除去这些宏大的数字,还有哪些 S3 相关的数据和信息更能让人兴奋?
价格降幅巨大,存储单价相当于15年前的 0.15折,2006年每GB 0.15美元,2021年每GB 0.023美元。(如果考虑上这15年间美元购买力的变化,实际降幅会更夸张)
全球 21 个可用区,覆盖所有人类居住的大洲(21个可用区,暂不包含大陆由光环星网和西云数据所运营的两个区域)
生态和工具上千款。围绕 S3 对象存储的生态服务和工具,包括已在 Github 上开源的数百个周边工具,包括数百款 S3 Compatibility 产品,包括商业的数据迁移,备份,管理工具。举些常见的:Ceph、Azure Blob、Google Cloud Storage、R2 Storage、B2 Storage、Wasabi、JuiceFS、Alluxio、OpenIO、MinIO、S3fs、QingStor、goofys、Atempo、备份服务、迁移服务、s3a、s3ql、Aliyun OSS、COS、Kodo、S3backer、tntdrive、s3 browser、Mountain Duck、qscamel、MOS、iCloud、GooseFS、Rclone、音视频分析SaaS...
那么再回到 S3 本身。要最快了解一款在线服务,除了用户手册和 API 文档,更捷径的就是服务定价模型。
产品服务 | S3 |
---|---|
存储类 | S3 Standard、S3 Intelligent-Tiering、S3 Standard – 不频繁访问、S3 One Zone – 不频繁访问、S3 Glacier、S3 Glacier Deep Archive 和低冗余存储 (RRS) |
存储容量 | 阶梯定价+通用定价 |
访问请求 | 按存储类,区别定价 |
数据传输 | 数据下载/跨区域复制/加速上传/ |
管理和分析 | Tag,Select,inventory 单独定价 |
数据复制 | 跨区域复制CRR,同区域复制SRR,细粒度定价 |
一句话总结,只要是操作存储里的数据,任意操作,不论是用户主动触发的,还是系统自动操作的,都会产生费用。
看似价格低廉,但却是收费模型最复杂的云产品。“廉价”的云存储服务,实际使用成本并不低,用户的应用对数据的存储和处理越频繁,总体开销就越昂贵。
所以当前业界的现状和趋势,就是当业务和数据到一定规模体量后,开始采用混合存储模式,会有大量数据回归到私有化存储中。私有化存储的特点一次交付产品,交付的是产品,不是服务,仍需要投入运维和管理的资源。但即便如此,只要数据体量到一定规模后,混合存储模式,仍然能大幅降低存储的成本开销,长期上的成本更占优势。
当一家商业公司的接口标准,成为业界事实标准之后。影响范围不仅是在 API 层面,甚至会扩大到 SLA。
11个9的数据持久性,4个9的服务可用性。这是 S3 所承诺和定义的服务标准。其他家做对象存储服务,不管实际上能不能达到 11个9的 SLA 标准,书面上都要去承诺11个9,甚至更高的 SLA 承诺。这也是 S3 事实标准的延续。
当然私有化对象存储产品一般不会去承诺 SLA,因为影响 SLA 的因素是多方面的,SLA是服务化的体现。私有化交付用户的是产品,保证的是产品自身的品质和延续性,它并不是像云存储一样去交付服务。但偶尔是会遇到私有云存储用户提出类似这样的问题,“你们的存储产品能做到几个9”。
二、一些有趣的对象存储服务
除了 S3 这个标杆,看下这几个不那么热门和被熟知的“对象存储产品”,因为背景的差异,它们所推出的产品和服务,也都各具特色。其中有一些很有趣的东西。
产品和服务 | 特色 | 说明 |
---|---|---|
B2 Cloud Storage | 核心业务是备份服务,在此基础上扩展出云存储服务。有趣的点是它开源自己的存储硬件模型,以及每季度定期公布在线磁盘的运行数据 | 更适用非计算存储紧耦合的业务,比如数据备份,仓库等等。 |
Wasabi | 独立对象存储厂商,唯一一款产品就是对象存储。有趣的点是它的定价模型,除存储收费之外,API调用和下行流量通通免费。背后是依靠租用廉价IDC+大量使用 SMR 等介质。 | 更适用非计算存储紧耦合的业务,比如作为 Docker Registry ,或者备份仓库等等。 速度和稳定性相比大型云服务商会弱一些。价格是 S3 的 1/5 |
JuiceFS | 底层是对象存储的“共享文件系统”,其实更应该把它看作是一款缓存产品,很大的意义之一就是它在弥补对象存储自身所不擅长的地方,让对象存储能更好的用在数据分析等场景下。 | 市面上产生了大量目的类似的产品,比如 Alluxio,GooseFS,就是要消弭对象存储和海量数据分析之间的瓶颈,替代 Hadoop 里的 HDFS |
Storj | 商业化运营的去中心化存储服务。运行在以太坊网络上,产品兼容部分 S3 API | 区块链“浪潮”中,商业运营的一款去中心化云存储服务,它不像 IPFS&Filecoin 体系里存储大量垃圾数据。 |
Dropbox(番外) | 业务需要消耗大量存储空间,2016年用自研存储替换S3,目前是混合存储状态。 内部的存储框架 Magic Pocket,也有在针对 SMR、ZNS SSD 做特殊的优化和应用; 内部不再维护庞大的 Hadoop,通过将数十PB的数据存储在 AWS S3 进行数据分析 | 它对对象存储的使用历程,代表了公司从小规模到壮大,都要经历的一条路径:云存储 —— 混合存储模式。 |
R2 Storage | Cloudflare 即将推出的对象存储服务。免出口流量费用(带宽联盟)、阈值区间内免 API 请求费用、数据智能自动分层、与 Workers 深度集成(Workers 是其推出的Serverless服务) | CDN 巨头,在业内有很优质的品牌形象,优势之一是拥有庞大的边缘节点。在尝试拓展服务边界中。对象存储是个很好的新入口 |
2.1 B2 Cloud Storage
截至2021年6月,Backblaze 线上环境中共有 177935 块数据盘,用来存放用户数据。可以看到 16TB HDD 已开始大量用于线上。后面会有更大单盘容量的 HDD 快速进入生产环境。
从 2009年开始,开源硬件设计模型,Storage Pod(设计文件,配件清单,线路图等),例如在 2016年推出的 6.0 模型里,采用 4U60 盘的设计方式。
2.2 Wasabi
Wasabi 产品的定价模型里,存储容量收费,API和下行流量均免费。同样容量下,整体支出是 S3 的 1/5。以下是 50TB 的数据,每年的支出费用对比。
2.3 Dropbox
为了可靠管理海量的数据,同时持续降低存储成本,Dropbox 内部的 Magic Pocket 做了许多有意思的事情。
- 硬件调度
- 大量使用 SMR 硬盘
- 缓存设计
- 冷数据层的优化
三、对象存储的可能
关于对象存储的细节特征,可以参考 xuanwo 的这篇文章 从应用接口视角看存储系统
可以看到对象存储的特征是扩展能力强,可存储容量庞大,不善于随机读写的业务,接口相对简单。
对象存储还有哪些演进可能? 需要先理清还有哪些东西未被解决,和正在被忽视。
问题1: 实际情况下,很大一部分数据最终丢弃掉,这里包括新生成不久的原始数据,也包括历史数据。原因还是存储成本的问题,数据增长很快,预算有限,导致存储空间有限,最终不得不丢弃掉部分数据,被丢弃的这部分数据并非没有价值。对象存储的极致成本之路还很漫长,需要依托软硬件的持续发力,新的硬件技术和介质,更好的存储软件能力(EC,压缩,自动分层,数据取回效率,硬件细粒度调度,等等)。
问题2: 尤其是私有云场景下,数据导入到对象存储里还没有那么简单。这些数据包括在其他异构存储里的数据,包括未能对接起来的上层应用所产生的数据。
问题3: 私有化场景里,阻碍对象存储的广泛且深入使用的屏障之一,就是和上层应用的对接,真正难点并不在开发层面,而是其他因素,大致可分为三种类型:a.年久失修,应用只维护不优化;b.懒惰和惯性,上层软件开发商不愿意耗费精力去改造应用; c. 少部分应用和场景确实不适合直接对接对象存储。
问题N:...
这几年大家普遍都在做的事情,就是围绕这个思路:如何直接存储更多来源的数据,如何持续降低单GB存储成本,如何更简单的管理维护对象存储。
视角 | 近几年内所做的一些事情 |
---|---|
对用户 | 存:Append / 智能分层 / CRR / WORM / 用:Select / inventory / 分析:CloudWatch / CloudTrail / Lens |
对管理员 | 细粒度QoS / “可观测性”(举例,任务的处理情况,LifeCycle后台任务是否积压,处理进度,处理速度,为什么速度慢。数据使用情况,哪些桶处理频繁,哪些操作在高频进行。) / 硬件健康预测和处理 / |
对存储自身 | 降低存储成本:新硬件介质,JBOD,硬盘休眠,蓝光&磁带 / 大比例EC / 数据压缩 / |
对象存储自身的演变,不会成为一款万能型产品,那是文件存储更擅长的事情。
对象存储,至少在未来几年内,仍会是一款将优势持续去放大,但“短板”始终无法消失的产品。只不过这个“短板”,有其他生态服务正在帮助更好的去解决。