写点什么

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:005604
用户头像

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

关注

评论

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

Nginx 限流配置

Bruce Duan

nginx

ARTS 第 5 周

乌拉里

国产开源流媒体SRS4.0对视频监控GB28181的支持

潇湘落木

音视频 云直播 短视频 流媒体

Demo 示例:如何原生的在 K8s 上运行 Flink?

Apache Flink

flink

推荐 16 款 IDEA 插件,让你的开发速度飞起来!

Bruce Duan

idea插件

阿里巴巴大规模应用 Flink 的实战经验:常见问题诊断思路

Apache Flink

flink

架构师那些不能碰的禁忌

曲水流觞TechRill

架构师

如何消灭飞机的“黑色十分钟”,AI来帮忙

华为云开发者联盟

华为 AI 智能时代 模型 华为云

第7周作业

文古

敏捷软件开发宣言及十二原则

BigYoung

敏捷开发

报志愿|想学区块链,要上什么大学?报什么专业?

CECBC

高考 报考志愿 区块链专业 高校学院

CDN百科第七期 | 关于CDN的原理、术语和应用场景那些事

阿里云Edge Plus

CDN

IO系列——UNIX五种IO模型

Java联盟

io 多路复用 异步IO

Flink Weekly | 每周社区动态更新

Apache Flink

flink

API接口限流

Bruce Duan

分布式限流 单体限流 限流算法

一文带你了解Zookeeper所有核心概念

小隐乐乐

zookeeper 分布式 分布式架构

Vue 学习笔记-3

多选参数

vue.js Vue vuejs

IO系列——用户空间与内核空间

Java联盟

io 零拷贝 用户空间 内核空间 zero copy

主宰操作系统的经典算法

cxuan

后端 操作系统

干货分享丨玩转物联网IoTDA服务系列四-智能网关

华为云开发者联盟

物联网 智能设备 应用场景 华为云 mqtt

HTTPS详解

Bruce Duan

https 对称加密 非对称加密

正则表达式基础详解

懒猫

Java 正则表达式 大前端 正则

LeetCode001-两数之和-easy

书旅

算法 LeetCode 数据结构与算法

2. 妈呀,Jackson原来是这样写JSON的

YourBatman

Java json Jackson Fastjson

英特尔中国研究院宋继强:芯片、系统、软件成为异构计算的三层级

最新动态

节约60%成本!虎牙直播云端大数据是怎么做到的?

腾讯云大数据

上海首批金融科技“监管沙盒”应用名单出炉 区块链技术备受青睐

CECBC

金融科技 金融监管 创新与安全 智能多元化

Vue 学习笔记-2

多选参数

vue.js Vue vuejs

胡继晔:发挥我国优势把依法治网落实到区块链管理中

CECBC

CECBC 胡继晔 依法治网 数字货币监管

Linux服务器存在某进程CPU过高如何追溯其问题根源?

Nick

Java Linux centos

Spring Boot + Vue前后端分离项目,Maven自动打包整合

xcbeyond

maven 前后端分离 springboot 部署

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