2016-10-30 84 views
2

我一直在尋找數週的時間來爲我的Docker Swarm實現的持久分佈式文件存儲的合適解決方案無濟於事。Docker Swarm的文件存儲

我已經在swarm中有三個節點,其中多個應用程序的多個實例運行得非常好。

我現在正要求我在每個應用程序中都需要存儲的一致性,但我似乎無法找到任何直接解決問題的方法。

我想盡可能採用最少的可配置方法。

我有一個集羣,有三個節點,我們只是說一個應用程序在每個集羣上運行的實例。

什麼是這裏最好的選擇: 1.我有話要在每個節點我2 我有話要在每個容器我的 3.我使用一個單獨的文件存儲複製文件的複製文件我連接我的節點到 4.我使用一個單獨的文件存儲,我連接我的容器到

無論哪種方式,我需要某種形式的複製至少冗餘。

感謝任何人都可以讓我在正確的路線與一些選項!

+1

GlusterFS。但是任何分佈式文件系統都可以。 –

回答

3

performance/storage space明智,複製不是答案,您需要與shared storage解決方案。就像我們在Server Virtualization中使用的那樣。如果你有現金,那裏有許多SAN存儲品牌。現在

,如果你有一個適當的virtualization infrastructure像我這樣的(vmware vsphere在我的情況),您可以通過docker-volume vsphere driver使用可用SAN Datastores存儲卷。您將在vmware datastores上創建碼頭卷,並且它們在docker swarm之間共享,因此如果發生故障,docker將在羣集中的另一個節點上啓動容器(其捲上的持久數據)。

對於其他供應商(虛擬化/存儲)也有類似的drivers

有基於雲計算的解決方案,你可以使用Cephglusterfsflocker或其他開源的分佈式文件系統,用於存儲你的容器persistent data

1

碼頭的路線圖是實施分佈式音量驅動程序和最有前途的是從無限。他們將支持所有羣集節點的分佈,並且從我所看到的設計可以保證非常好的性能。

這可能至少需要6個月才能成熟,直到您需要使用連接到所有節點的一些共享存儲爲止。 (最簡單的一種是NFS

這樣的想法是安裝在所有節點上的共享文件夾,並使用

docker run -v /nfsShare:/container/folder 

如果你運行一個容器,或者如果你部署服務

docker service create -mount type=bind,src=/nfsShare,dst=/container/folder 

如果碼頭主機在高山上運行,則可以使用我創建的圖像來自動執行該過程。

下面是介紹如何使用它的鏈接: https://www.vip-consult.solutions/post/persistent-storage-docker-swarm-nfs#content