溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現(xiàn)跨Docker主機存儲

發(fā)布時間:2021-11-15 17:36:21 來源:億速云 閱讀:195 作者:柒染 欄目:云計算

本篇文章給大家分享的是有關如何實現(xiàn)跨Docker主機存儲,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

從業(yè)務數(shù)據(jù)的角度看,容器可以分為兩類:無狀態(tài)(stateless)容器和有狀態(tài)(stateful)容器。

無狀態(tài)是指容器在運行過程中不需要保存數(shù)據(jù),每次訪問的結(jié)果不依賴上一次訪問,比如提供靜態(tài)頁面的 web 服務器。

有狀態(tài)是指容器需要保存數(shù)據(jù),而且數(shù)據(jù)會發(fā)生變化,訪問的結(jié)果依賴之前請求的處理結(jié)果,最典型的就是數(shù)據(jù)庫服務器。

簡單來講,狀態(tài)(state)就是數(shù)據(jù),如果容器需要處理并存儲數(shù)據(jù),它就是有狀態(tài)的,反之則無狀態(tài)。

對于有狀態(tài)的容器,如何保存數(shù)據(jù)呢?

前面在 Docker 存儲章節(jié)我們學習到 data volume 可以存儲容器的狀態(tài),不過當時討論的 volume 其本質(zhì)是 Docker 主機本地的目錄。

本地目錄就存在一個隱患:如果 Docker Host 宕機了,如何恢復容器?

一個辦法就是定期備份數(shù)據(jù),但這種方案還是會丟失從上次備份到宕機這段時間的數(shù)據(jù)。更好的方案是由專門的 storage provider 提供 volume,Docker 從 provider 那里獲取 volume 并掛載到容器。這樣即使 Host 掛了,也可以立刻在其他可用 Host 上啟動相同鏡像的容器,掛載之前使用的 volume,這樣就不會有數(shù)據(jù)丟失。

本章將詳細討論如何實現(xiàn)跨 Docker 主機管理 data volume。

從一個例子開始

假設有兩個 Dokcer 主機,Host1 運行了一個 MySQL 容器,為了保護數(shù)據(jù),data volume 由 storage provider 提供,如下圖所示。

當 Host1 發(fā)生故障,我們會在 Host2 上啟動相同的 MySQL 鏡像,并掛載 data volume。

Docker 是如何實現(xiàn)這個跨主機管理 data volume 方案的呢?

答案是 volume driver。

任何一個 data volume 都是由 driver 管理的,創(chuàng)建 volume 時如果不特別指定,將使用 local 類型的 driver,即從 Docker Host 的本地目錄中分配存儲空間。如果要支持跨主機的 volume,則需要使用第三方 driver。

目前已經(jīng)有很多可用的 driver,比如使用 Azure File Storage 的 driver,使用 GlusterFS 的 driver,完整的列表可參考 https://docs.docker.com/engine/extend/legacy_plugins/#volume-plugins

我們這里將選擇 Rex-Ray driver,其原因是:

  1. Rex-Ray 是開源的,而且社區(qū)活躍。

  2. 支持多種 backend,VirtualBox 的 Virtual Media、Amazon EBS、Ceph RBD、OpenStack Cinder 等。

  3. 支持多種操作系統(tǒng),Ubuntu、CentOS、RHEL 和 CoreOS。

  4. 支持多種容器編排引擎,Docker Swarm、Kubernetes 和 Mesos。

  5. Rex-Ray 安裝使用方法非常簡單。

以上就是如何實現(xiàn)跨Docker主機存儲,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI