写点什么

CoreOS 为 Kubernetes 量身打造分布式存储方案 Torus

  • 2016-06-07
  • 本文字数:2151 字

    阅读完需:约 7 分钟

近日,CoreOS 在 GitHub 上基于 Apache 2.0 许可证协议开源了它们的分布式存储系统 Torus。Torus 是一种针对容器集群量身打造的存储系统,可以为通过 Kubernetes 编排和管理的容器集群提供可靠可扩展的存储。这是继 etcd rkt flannel ,以及 CoreOS Linux 之后 CoreOS 发布的另一个开源产品。

分布式系统的过去、现在和将来

分布式系统为物联网的安全可靠运行奠定了基础。通过模块化的方式进行构建,在工作负载增加的时候进行扩展,同时确保简单易用,并使得不同模块能够与其他组件相互配合,这样的做法解决了大规模环境中计算领域曾经面临过的不少挑战。

容器技术一经推出就获得了用户的普遍认可,然而在部署容器集群的过程中,很多用户都在头疼一个问题:

  • 如何将容器运行过程中访问的数据固定存储起来?
  • 如何用一种能够让开发者在任何环境中顺利使用的方式存储这些信息?
  • 随着使用过程中容器集群不断缩放和扩展,怎样保证这些数据的一致性和固定性?

绝大部分容器集群依然可以使用传统存储,然而这类系统并非针对容器这种新技术量身打造的,这样的使用不仅会遇到很多技术困难,同时也需要付出极高的成本。

在设计上,传统分布式存储系统主要适用于由大型计算机组成的小规模集群,而非使用廉价小型计算机组成的大规模集群,后者才是容器世界中最常用的。此外传统商用分布式存储系统通常需要使用昂贵甚至定制的软硬件,抛开价格不谈,这类系统很难与新兴的工具和使用模式进行集成。随着使用时间的延长,这类系统升级、许可,以及维护的成本也将日益增加。

此时只能通过某种全新的解决方案为容器集群提供存储。

CoreOS 最近发布的开源分布式存储系统 Torus,在设计上可以为通过 Kubernetes 编排和管理的容器集群提供可靠可扩展的存储。

Torus 的架构

现代化集群的存储必须在网络端维持统一的可用性,随着数据在不同容器中处理还需要管理访问并保障一致性,就算只是在一个应用程序内部使用,随着应用版本的增长也需要做到这几方面。

Torus 在架构的设计上通过下列几个特性解决了这些问题:

  • 扩展性:与 etcd 类似,Torus 也是一种构建块,可以实现包括分布式块设备(Distributed block device)或大型对象存储在内不同类型的存储。Torus 使用 Go 语言编写并使用 gRPC 协议,用户可以方便地用任何语言创建 Torus 客户端。
  • 易用性:专门针对集群和 Kubernetes 等集群流程平台(Cluster orchestration platform)设计的 Torus 可用简单的方法部署和运维,并可随时缩放。
  • 准确性:Torus 使用 etcd 分布式键值数据库存储并检索文件或对象元数据。etcd 为必须快速可靠执行的分布式系统核心运作提供了一个坚实、经得起考验的基础。
  • 缩放性:Torus 目前可缩放至数百个节点,并可将多个共用磁盘以单一存储池的方式使用。

Torus 的核心是一个将接口以传统文件方式呈现的库,这个库使得存储系统能够顺利实现易于理解的基本文件操作。借助 etdc 的一致过程(consensus process)进行协调和检查点操作,这个分布式文件可以通过多种方式暴露给用户的应用程序。目前 Torus 支持通过网络块设备(Network Block Device,NBD)将这个文件以面向块(Block-oriented)的存储进行暴露。

Torus 为 Kubernetes 的 pod 提供了简单的固定存储

这样的设计还可在不远的未来支持加密和高效率的 Reed-Solomon 纠错功能,借此为整个系统提供更有保障的数据有效性和保密性。

Torus 可通过 Kubernetes 部署和管理。目前首发的 Torus 包含用于在任何 Kubernetes 集群上以应用程序方式配置和运行 Torus 的 Kubernetes 清单。这使得 Torus 的安装、管理和升级变成一种简单,完全在云端完成的操作。

据 CoreOS 介绍,该公司计划在未来让对象存储等其他存储系统也能基于 Torus 实现,通过这些分布式文件创建集合,并由 etcd 负责协调。

Torus 的前景如何?毕竟开源的分布式存储系统还有很多,例如 Ceph、GlusterFS 等,但这些系统都是针对传统基础结构设计的,有别于 Torus 这一业界首个主要以容器为中心的分布式存储平台。如果 Torus 能够按照 CoreOS 的规划继续完善,IT 管理员很可能会将其视作一种更为优雅和成熟,专门针对容器打造的固定存储解决方案。

若想尝试和体验该产品,可按照这里提供的指南开始运行第一个Torus 集群。

社区反馈

Torus 发布后获得了大量社区成员的关注,大家都对这种全新的分布式存储系统表示出巨大的兴趣。同时该项目的相关工作人员也对此发表了自己的看法。

CoreOS 产品主管 Wei Dang 表示:“我们听到 Kubernetes 用户说现有的存储系统有些难用,希望 Torus 的使用能简单一些。Torus 可通过 Kubernetes 部署到容器内部运行,能够为多个微服务工作负载提供一个统一的分布式存储集群。”

分布式系统工程师兼 Go kit 创始人 Peter Bourgon 认为:“分布式存储一直被视作云原生应用程序难以解决的问题,我对于 Torus 的潜力感到很满意,很希望知道 CoreOS 和这个社区最终将取得怎样的辉煌成果!”

Twitter 用户 Barak Michener(@barakmich) 则认为:“Torus 的开发已经有段时间了,特别感谢 @coreoslinux 给我提供了这次机会以及 @packethost 对我的帮助,当然,还要感谢我的测试平台。”


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-06-07 19:006621
用户头像

发布了 283 篇内容, 共 108.9 次阅读, 收获喜欢 62 次。

关注

评论

发布
暂无评论
发现更多内容

C# 三个Timer

喵叔

7月日更

在线条码生成器

入门小站

工具

实践解析丨如何通过 WebAssembly 在 Web 进行实时视频人像分割

声网

大前端 WebRTC webassembly

从鉴黄师到阿里程序员,我成功逆袭上岸

Java 编程 程序员 计算机

什么是 Druid

HoneyMoose

我应该在什么时候使用 Apache Druid

HoneyMoose

加速基因测序进程,北鲲云高性能计算平台再发力

北鲲云

完整视频+源码!十六天带你精通基于Spring Cloud微服务电商项目

Java架构追梦

Java 架构 面试 微服务 SpringCloud

Docker的学习体验

吴脑的键客

,docker

怎么才能写出100个用户体验的关键时刻?

石云升

读书笔记 用户体验 关键时刻 7月日更

网络攻防学习笔记 Day83

穿过生命散发芬芳

网络攻防 7月日更

根据四个商业指标找到MOT

石云升

读书笔记 用户体验 商业洞察 关键时刻 7月日更

微观管理?

escray

学习 极客时间 朱赟的技术管理课 7月日更

大厂的产品研发流程,你知道么?

Simon郎

产品 研发体系 大厂 互联网公司

使用数据库乐观锁的方式解决数值累加的问题

陈靓-哲露

结构化流-Structured Streaming(八-下)

Databri_AI

spark 流式计算框架 structuredStreaming

Linux之cal命令

入门小站

Linux

不要让这2个坏习惯限制了你的成长

俞凡

认知

去阿里应聘P7Java岗,都会被问到哪些问题?

Java架构师迁哥

极光开发者周刊【No.0723】

极光JIGUANG

58字节常量池面试题,你如何应对?

卢卡多多

intern 字符串 7月日更

Apache Druid 简介

HoneyMoose

【Kafka技术专题】「实践操作篇」单机部署实践手册(2.8.0)

洛神灬殇

kafka MQ kafka配置 消息队列 kafka架构

从鉴黄师到阿里程序员,我成功拿下阿里offer

白亦杨

Java 编程 程序员 计算机

上线仅7天,GitHub已标星48.4k!原来是阿里巴巴内部《高并发系统设计》

Java redis 编程 架构 面试

线上教育培训机构如何推广自己

石头IT视角

Go语言:运行时反射,深度解析!

微客鸟窝

Go 语言

大三就拿到字节提前批,你不想成长,生活总会逼着你成长

Java架构师迁哥

我学编程时最后悔的事!

程序员鱼皮

Java c++ Python 大前端 后端

学习下服务器端漏洞,受益匪浅!

网络安全学海

运维 网络安全 信息安全 漏洞扫描 渗透测试·

如何在Go 服务中做链路追踪

Rayjun

微服务 Go 语言

CoreOS为Kubernetes量身打造分布式存储方案Torus_语言 & 开发_大愚若智_InfoQ精选文章