极客油画

为何s3对象存储这么便宜

  1. 软件与架构的创新

    • 纠删码技术:这是成本低廉最核心的技术原因。
      • 传统副本方案:为了保证数据不丢,通常一份数据存3个副本(冗余度300%)。虽然可靠,但存储效率只有33%。
      • 纠删码方案:S3等将数据切分成多个数据块,并计算出一批校验块。例如,将数据切成12个块,再计算出4个校验块,总共16块。这16块会被分散存储在不同的机架、服务器和硬盘上。即使其中任意4块(不管是数据块还是校验块)同时损坏,原始数据也能被完整还原。
      • 结果:用 1.33倍​ 的存储空间(12+4)/12,就实现了比3副本(3倍空间)更高的可靠性。存储效率从33%提升到了75%以上,这是革命性的降低。
    • 去中心化扁平架构:没有复杂的目录树结构,所有对象(文件)通过唯一的Key(键)来寻址。这使得系统可以无限水平扩展,管理成本极低。
  2. 商业模式与定价策略

    • 按需付费:你只为实际使用的容量、流量和请求次数付费,没有前期硬件投资和闲置浪费。这“感觉上”很便宜。
    • 分级存储:S3提供了存储分层,这是控制成本的关键工具。
      • 标准型:用于频繁访问的数据,价格相对最高。
      • 低频访问型 / 归档型:通过收取数据取回费,来换取极低的存储单价。这类存储的硬件可能使用更慢的硬盘,甚至磁带库,功耗更低,成本结构完全不同。
      • 你可以将不常访问的数据自动转移到更便宜的层级,从而大幅降低总成本。
    • 流量费是“大头”:存储本身很便宜,但数据流出到互联网(下载)的费用可能很高,尤其是数据量巨大时。

纠删码技术没有副本,是如何保证数据不丢的呢?

纠删码技术并非“没有副本”,而是用另一种更聪明、更高效的方式创造“冗余”。它不保存数据的完整副本,而是保存数据的“数学信息副本”,用“计算冗余”替代“复制冗余”。

技术解析:如何工作的?(以RS码为例)

我们用一个简化模型 (k, n)来解释:

  • k = 数据块数量(例如 4块)
  • n = 总块数(数据块 + 校验块,例如 6块)
  • 容错能力 = n - k(这里 6-4=2,意味着最多可同时丢失任意2块)

步骤1:分割与编码 * 假设你的文件大小是 4MB。 * 系统把它水平切割成 k=4​ 个数据块,每块 1MB:D1, D2, D3, D4。 * 然后,系统用一个特殊的数学公式(如里德-所罗门编码)对这些数据块进行计算,生成 m=2​ 个校验块:P1, P2。 * 这个计算不是简单的复制,而是一种线性组合,确保 D1~D4和 P1, P2之间满足特定的数学关系。 * 现在,我们总共有 n=6​ 个块:D1, D2, D3, D4, P1, P2。 * 这6个块不会存储在同一个地方!它们会被分散存储在不同机架、不同服务器、不同硬盘上(称为“分布式存储”)。

步骤2:数据丢失与重建(核心魔法) * 场景:一段时间后,存放 D2和 P1的两块硬盘同时坏了。我们丢失了这两块。 * 现状:我们手里只剩下 D1, D3, D4, P2这4个块。 * 重建: 1. 系统检测到有2个块丢失。它知道总共有6个块,原始数据是4个块,容错能力是2。 2. 关键点来了:由于编码时建立的数学关系,D1, D3, D4, P2这4个块里,已经包含了足够的信息来唯一确定原始的4个数据块(包括已丢失的 D2)。 3. 系统调用解码算法,将这4个存活的块作为已知变量,代入那组数学方程中,就能解方程求解出未知的 D2。 4. 一旦 D2被算出,原始数据 D1, D2, D3, D4就完整复原了。 5. 系统随后会找到新的健康硬盘,重新生成并写入丢失的 D2和 P1,恢复 (4,6)的编码状态。

结论:

  • 保证不丢的原理:纠删码通过数学变换,将数据信息扩散到多个块中。只要存活块的数量达到最低要求(k个),就能通过解码算法100%精确恢复所有原始数据。它不是靠“复制”来保证,而是靠“信息扩散和数学重建”来保证。
  • 代价:计算开销。编码(写入时)和解码/重建(读取损坏数据时)需要CPU进行复杂的数学运算,这会增加延迟和功耗。这就是为什么对延迟极度敏感的数据库块存储不使用它的原因——它用空间(三副本)换取了时间(极致的速度)。

rclone工具的使用


本文发表于 0001-01-01,最后修改于 0001-01-01。

本站永久域名「 jiavvc.top 」,也可搜索「 极客油画 」找到我。


上一篇 « 下一篇 »

赞赏支持

请我吃鸡腿 =^_^=

i ysf

云闪付

i wechat

微信

推荐阅读

Big Image