TorusKubernetes 分布式存储方案
Torus是一种针对容器集群量身打造的存储系统,可以为通过Kubernetes编排和管理的容器集群提供可靠可扩展的存储。这是继etcd、rkt、flannel,以及CoreOS Linux之后CoreOS发布的另一个开源产品。
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集群。