验证 Swarm 数据持久性 - 每天5分钟玩转 Docker 容器技术(104)
上一節(jié)我們成功將 Rex-Ray Volume 掛載到了 Service。本節(jié)驗(yàn)證?Failover 時(shí),數(shù)據(jù)不會(huì)丟失。
Scale Up
增加一個(gè)副本:
docker service update --replicas 2 my_web運(yùn)行之前我們先推測(cè)一下,理想的結(jié)果應(yīng)該是:swarm 在?swarm-worker2?上啟動(dòng)第二個(gè)副本,同時(shí)也將掛載 volume?my_web。
對(duì)比一下實(shí)際的運(yùn)行結(jié)果:
出現(xiàn)了一點(diǎn)復(fù)雜的狀況:
swarm 首先嘗試在?swarm-worker2?上啟動(dòng)第二個(gè)副本,但在 mount volume 失敗。
重試了三次都失敗了。
最后在?swarm-worker1?成功啟動(dòng)第二個(gè)副本。
mount 失敗的原因是:以 VirtualBox 為 backend 的 Rex-Ray volume 不支持同時(shí) attach 到多個(gè) Host。
需要注意:這實(shí)際上是 VirtualBox 的限制,而非 Rex-Ray。如果 backend 選擇 Ceph RBD 就沒(méi)有這個(gè)問(wèn)題。
更新 Volume
更新 volume 的內(nèi)容。
service 返回更新內(nèi)容,數(shù)據(jù)已經(jīng)同步到副本。
當(dāng)前的實(shí)驗(yàn)環(huán)境如圖所示:
Failover
現(xiàn)在模擬故障情況。shutdown 節(jié)點(diǎn)?swarm-worker1,過(guò)一會(huì),所有副本都會(huì)遷移到?swarm-worker2。
訪問(wèn) service,以前更新的內(nèi)容完整地保留了下來(lái)。
當(dāng)前的實(shí)驗(yàn)環(huán)境如圖所示:
Rex-Ray 作為 Swarm 的存儲(chǔ)編排方案能夠很好地支持跨主機(jī) volume 管理,而且當(dāng)容器在集群中遷移時(shí) volume 也能夠自動(dòng)遷移。
Swarm 數(shù)據(jù)管理就討論到這里,下一節(jié)我們學(xué)習(xí) Service 的 Replicated Mode 和 Global Mode。
書(shū)籍:
1.《每天5分鐘玩轉(zhuǎn)Docker容器技術(shù)》
https://item.jd.com/16936307278.html
2.《每天5分鐘玩轉(zhuǎn)OpenStack》
https://item.jd.com/12086376.html
總結(jié)
以上是生活随笔為你收集整理的验证 Swarm 数据持久性 - 每天5分钟玩转 Docker 容器技术(104)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: IOS UIAlertControlle
- 下一篇: 获得WebBrowser中的图片数据