TorusKubernetes 分布式存儲方案
Torus是一種針對容器集群量身打造的存儲系統(tǒng),可以為通過Kubernetes編排和管理的容器集群提供可靠可擴展的存儲。這是繼etcd、rkt、flannel,以及CoreOS Linux之后CoreOS發(fā)布的另一個開源產(chǎn)品。
Torus的架構(gòu)
現(xiàn)代化集群的存儲必須在網(wǎng)絡(luò)端維持統(tǒng)一的可用性,隨著數(shù)據(jù)在不同容器中處理還需要管理訪問并保障一致性,就算只是在一個應(yīng)用程序內(nèi)部使用,隨著應(yīng)用版本的增長也需要做到這幾方面。
Torus在架構(gòu)的設(shè)計上通過下列幾個特性解決了這些問題:
擴展性:與etcd類似,Torus也是一種構(gòu)建塊,可以實現(xiàn)包括分布式塊設(shè)備(Distributed block device)或大型對象存儲在內(nèi)不同類型的存儲。Torus使用Go語言編寫并使用gRPC協(xié)議,用戶可以方便地用任何語言創(chuàng)建Torus客戶端。
易用性:專門針對集群和Kubernetes等集群流程平臺(Cluster orchestration platform)設(shè)計的Torus可用簡單的方法部署和運維,并可隨時縮放。
準(zhǔn)確性:Torus使用etcd分布式鍵值數(shù)據(jù)庫存儲并檢索文件或?qū)ο笤獢?shù)據(jù)。etcd為必須快速可靠執(zhí)行的分布式系統(tǒng)核心運作提供了一個堅實、經(jīng)得起考驗的基礎(chǔ)。
縮放性:Torus目前可縮放至數(shù)百個節(jié)點,并可將多個共用磁盤以單一存儲池的方式使用。
Torus的核心是一個將接口以傳統(tǒng)文件方式呈現(xiàn)的庫,這個庫使得存儲系統(tǒng)能夠順利實現(xiàn)易于理解的基本文件操作。借助etdc的一致過程 (consensus process)進行協(xié)調(diào)和檢查點操作,這個分布式文件可以通過多種方式暴露給用戶的應(yīng)用程序。目前Torus支持通過網(wǎng)絡(luò)塊設(shè)備(Network Block Device,NBD)將這個文件以面向塊(Block-oriented)的存儲進行暴露。
Torus為Kubernetes的pod提供了簡單的固定存儲
這樣的設(shè)計還可在不遠的未來支持加密和高效率的Reed-Solomon糾錯功能,借此為整個系統(tǒng)提供更有保障的數(shù)據(jù)有效性和保密性。
Torus可通過Kubernetes部署和管理。目前首發(fā)的Torus包含用于在任何Kubernetes集群上以應(yīng)用程序方式配置和運行Torus的Kubernetes清單。這使得Torus的安裝、管理和升級變成一種簡單,完全在云端完成的操作。
據(jù)CoreOS介紹,該公司計劃在未來讓對象存儲等其他存儲系統(tǒng)也能基于Torus實現(xiàn),通過這些分布式文件創(chuàng)建集合,并由etcd負(fù)責(zé)協(xié)調(diào)。
Torus的前景如何?畢竟開源的分布式存儲系統(tǒng)還有很多,例如Ceph、GlusterFS等,但這些系統(tǒng)都是針對傳統(tǒng)基礎(chǔ)結(jié)構(gòu)設(shè)計的,有別于 Torus這一業(yè)界首個主要以容器為中心的分布式存儲平臺。如果Torus能夠按照CoreOS的規(guī)劃繼續(xù)完善,IT管理員很可能會將其視作一種更為優(yōu)雅 和成熟,專門針對容器打造的固定存儲解決方案。
若想嘗試和體驗該產(chǎn)品,可按照這里提供的指南開始運行第一個Torus集群。
