Torus是一种针对容器集群量身打造的存储系统,可以为通过[Kubernetes](http://www.oschina.net/p/kubernetes)编排和管理的容器集群提供可靠可扩展的存储。这是继[etcd](http://www.oschina.net/p/etcd)、[rkt](http://www.oschina.net/p/CoreOS-rocket)、[flannel](http://www.oschina.net/p/rudder),以及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)的存储进行暴露。
![image](http://static.oschina.net/uploads/img/201606/16164052_UvDS.png)
_Torus为Kubernetes的pod提供了简单的固定存储_
这样的设计还可在不远的未来支持加密和高效率的Reed-Solomon纠错功能,借此为整个系统提供更有保障的数据有效性和保密性。
Torus可通过Kubernetes部署和管理。目前首发的Torus包含用于在任何Kubernetes集群上以应用程序方式配置和运行Torus的Kubernetes清单。这使得Torus的安装、管理和升级变成一种简单,完全在云端完成的操作。
据CoreOS介绍,该公司计划在未来让对象存储等其他存储系统也能基于Torus实现,通过这些分布式文件创建集合,并由etcd负责协调。
Torus的前景如何?毕竟开源的分布式存储系统还有很多,例如Ceph、GlusterFS等,但这些系统都是针对传统基础结构设计的,有别于
Torus这一业界首个主要以容器为中心的分布式存储平台。如果Torus能够按照CoreOS的规划继续完善,IT管理员很可能会将其视作一种更为优雅
和成熟,专门针对容器打造的固定存储解决方案。
若想尝试和体验该产品,可按照这里提供的[指南](https://github.com/coreos/torus/blob/master/Documentation/getting-started.mdub.com/coreos/torus)开始运行第一个Torus集群。
介绍来自:[http://www.infoq.com/cn/news/2016/06/CoreOS-Kubernetes](http://www.infoq.com/cn/news/2016/06/CoreOS-Kubernetes)