一。Rex-Ray以standalone進程的方式運行在docker主機上,安裝方法很簡單:在docker1和docker2上運行如下命令:
curl -sSL https://dl.bintray.com/emccode/rexray/install | sh
然后創建並編輯Rex-Ray的配置文件/etc/rexray/config.yml
也可以使用圖形化的在線Rex-Ray配置生成:http://rexrayconfig.codedellemc.com/
配置文件的內容如下:
1. service: virtualbox 使用virtualbox的virtual media作為backend,提供data volume。原因是我們的實驗環境就是virtualbox,不需要額外部署存儲系統,作為驗證和實踐,已經足夠多了。如果是生產系統,肯定得選擇更加穩定的backend,比如ceph rbd
2. endpoint: http://192.168.99.1:18083 是vietualbox宿主機的服務端口,后面會演示如何啟動這個服務
3.volumePath: /Users/<your-name>/VirtualBox/Volumes 是vietual宿主機上存放data volume的目錄
4. controllerName: SATA 是controller的名字,不用修改
二 .在每台host主機上配置完Rex-Ray driver之后,要配置backend
注:由於實驗環境的原因,沒有做實驗,就不展示了
三。在每台host主機上分別創建volume
docker volume create --driver rexray --name=mysqldata --opt=size=2
四。先在一台host主機上運行容器並使用數據卷(mysqldata)
宿主機提供的backend被容器使用過程:
1.backend首先提供了volume,如:mysqldata
2.mysqldata先被掛載到host主機上,host主機會自動創建一個掛載點
3.host主機上的掛載點通過容器運行時的指定,被掛載到容器上
五。更新容器中的數據,刪除容器
六。在另外一個host主機上重新運行一個容器,並掛載相同的volume(mysqldata),這個volume(mysqldata)會被沖重新使用。使用過程和之前一樣
總結:1.假設有兩個host主機docker1和docker2,當我們在docker1上運行了兩個有狀態的容器時,要分別創建兩個不同名的volume,
2.volume實際是backend的一部分
3.volume有點類似共享存儲