Backblaze

Backblaze 使用 Apache Cassandra 提供 IaaS

Backblaze 成立于 2007 年,总部位于加州圣马特奥,是一家云存储公司,管理着超过一个艾字节的数据,客户遍布 175 多个国家。

Backblaze 存储云为企业、开发者、IT 专业人员和个人提供了一个基础平台,用于存储、备份、归档数据,并与其他领先的技术公司合作,托管内容、管理媒体、构建应用程序等等。

该公司最初是一家从一居室公寓运营的计算机备份公司,其明确的使命是让数据存储和使用变得惊人地简单。在早期,Backblaze 是摄影和家谱等利基市场的热门备份服务。随着时间的推移,其专注于保持备份简单易用,扩大了其吸引力。

自 2013 年以来,Backblaze 定期发布硬盘性能统计数据和见解——这是市场上唯一一家这样做的人。这种透明度引起了现有和潜在用户的共鸣,并导致开发者和 IT 专业人员的追随,他们希望执行比 Backblaze 目前提供的更复杂的任务。随着其 Backblaze 计算机备份产品的稳固建立,该公司决定开发 Backblaze B2 云存储,这是一个提供基础设施即服务 (IaaS) 的云存储平台。

此 IaaS 将提供直接的 API 访问,并使开发者和 IT 人员能够将数据存储在云中、检索和/或共享数据,以及按需扩展,并且只为他们使用的资源付费。本质上,Backblaze B2 提供类似于 Amazon S3、Microsoft Azure 存储和 Google Cloud Storage 的云存储,易于使用、价格实惠且值得信赖。

但是,现有的计算机备份堆栈不适合这种新的用例。它是一个自定义存储,公司控制着客户端。Backblaze 的高级系统管理员 Elliott Sims 说:“计算机备份索引非常适合计算机备份系统的工作方式,因此我们必须从 Backblaze B2 的基础开始,创建一个不同的系统。”

正是在这个时候,Backblaze 开始调查分布式数据库,并引入了 Apache Cassandra。

推荐语

“我们需要一些能够处理非常高的写入吞吐量并保持写入吞吐量扩展的东西。这迫使我们去寻找分布式存储,而 Apache Cassandra 是最符合我们需求的选择。”
— Elliott Sims
高级系统管理员

为了在 2015 年推出 Backblaze B2,该公司采用了 Ansible 进行软件配置、配置管理和应用程序部署,并将其与 Apache Cassandra 配合使用以满足其数据需求,并应用模板和 Reaper 来处理修复。在选择 Apache Cassandra 时,有几个重要优势使其成为新云解决方案的首选。

可扩展且弹性的性能,可提供

Backblaze 需要随着添加更多主机而看到写入吞吐量的增加。Sims 说:“如果你只需要读取吞吐量,传统的 MySQL 复制效果很好,因为你可以不断地复制副本,但我们也需要写入吞吐量。Cassandra 能够开箱即用地做到这一点,而不是在 MySQL 之上使用分层或我们自己的分片。”Backblaze 还发现,Cassandra 的写入吞吐量和扩展几乎是线性的。“30 台机器意味着拥有 10 台机器使用 Apache Cassandra 的三倍容量,或者,你知道,2.95 倍。”

能够承受数据中心宕机的持久性

虽然写入吞吐量是一个关键问题,但 Backblaze 也需要一些标准的数据库要求:“当我们放入一段数据时,如果机器崩溃,它需要保留在那里。它不能像一些 NoSQL 数据库那样丢失一部分数据。它必须写入磁盘,而不是一个定期快照的缓存。”Sims 说。

无需停机时间的容错性

与任何重视其数据库操作员睡眠的公司一样,Backblaze 希望能够在晚上丢失一台机器,“我们不想让某人加班来解决问题。我们需要一个能够承受并忽略任何单台机器离线的解决方案。”由于 Apache Cassandra 是去中心化的,所有数据都会自动复制到多个节点,因此没有单点故障。

Apache Cassandra 4.0 对 Backblaze 的益处

对于 Backblaze 来说,立即升级到 4.0 并不是一个考虑因素,“我们使用 Apache Cassandra 的方式是作为用户文件位置的权威来源,而不是分析等等,因此我们有点谨慎。”Sims 说。但是,Backblaze 对利用的一些功能感到兴奋,他们预计将在 4.0.1 或更高版本发布时进行迁移。

增量修复以消除墓碑问题

“最大的一项是增量备份与分层压缩策略相结合。”Sims 说。Backblaze 使用几个小型表,其中墓碑(已删除但尚未从磁盘中清除的数据)一直是一个问题。使用 SizeTieredCompactionStrategy (STCS),您可以设置 Cassandra 仅压缩已修复的墓碑。“这意味着您可以设置一个非常短的 gc_grace_seconds,这意味着墓碑在您可能使用的较小表上更频繁地清理 […​] 它们只占总数的极小一部分,因此如果我们可以在一天内多次对它们运行增量修复,这些墓碑的寿命将非常短——十个小时而不是十天。它将基本上消除这个问题。”

使用令牌分配更改简化数据迁移

在执行数据中心迁移时,Cassandra 4.0 将允许用户根据复制级别而不是模式分配令牌,从而消除了“先有鸡还是先有蛋”的依赖关系。“能够根据特定模式分配令牌对于平衡来说很好。”Sims 说。“但是新方法消除了手动为新数据中心分配令牌的繁琐过程 […​] 这将使我更轻松地完成剩余的数据中心迁移,并减少 vnode 数量。”

Kubernetes 用于 Cassandra

虽然 Backblaze 现在有一个用于 Kubernetes 的测试环境,但 Sims 说,随着 Backblaze 向 Backblaze B2 添加各种服务,他们正在更多地迁移到该环境。“我认为我们最终会迁移到 Kubernetes 用于 Cassandra,但目前我们正在使用由 Ansible 控制的裸机 […​] Reaper 一直很容易管理,并且随着我们上线更多集群,我们对 cass-operator 的 Reaper 组件会越来越感兴趣。”

虽然 Sims 说 Apache Cassandra 存在各种复杂性和痛点,但他认为它兑现了对 Backblaze 的承诺:“可扩展的写入吞吐量和弹性——它在承诺时会保留您的数据——这些承诺在 Apache Cassandra 中得到了兑现。这些都是重要的事情,并且 […​] 保留您的数据不幸的是,我不能说一些其他新的存储系统也是这样。”

关于 Backblaze

Backblaze 使企业和消费者能够惊人地轻松地管理数据。Backblaze 存储云为广泛的开发者、IT 通用人员、企业家和个人提供了一个基础平台,他们寻求简单、经济实惠、值得信赖的解决方案。该公司管理着超过一个艾字节的数据,目前与 175 多个国家的客户合作。该公司成立于 2007 年,总部位于加州圣马特奥。有关更多信息,请访问 www.backblaze.com