容器跨主機(jī)存儲入坑指南

今日頭條
崔格拉斯
入坑準(zhǔn)備 REX-Ray 容器跨主機(jī)存儲坑實在是太多,百度搜索出來的各種解決方案很少有實際意義,跟風(fēng)粘貼復(fù)制者眾,大家在學(xué)習(xí)這些前沿技術(shù)時,學(xué)會去國外官方論壇上查詢問題。rex-ray作為docker跨主機(jī)數(shù)據(jù)卷存儲解...

入坑準(zhǔn)備

REX-Ray 容器跨主機(jī)存儲坑實在是太多,百度搜索出來的各種解決方案很少有實際意義,跟風(fēng)粘貼復(fù)制者眾,大家在學(xué)習(xí)這些前沿技術(shù)時,學(xué)會去國外官方論壇上查詢問題。rex-ray作為docker跨主機(jī)數(shù)據(jù)卷存儲解決方案,支持很多存儲模式,例如openstack的cinder,分布式存儲ceph等,但是今天我們用VirtualBox 虛擬機(jī)virtualbox來實現(xiàn)容器的跨主機(jī)存儲。

步驟一

閱讀官方文檔,了解rex-ray究竟是什么,能夠做什么,為什么選用它,它又支持什么。

步驟二

安裝VirtualBox,并啟動一個虛擬機(jī),例如centos7虛擬機(jī)。我是直接搜狗搜索VirtualBox,然后默認(rèn)安裝。安裝centos7虛擬機(jī)也很簡單,如果不會可以百度教程。

需要注意的是,安裝虛擬機(jī)時,網(wǎng)絡(luò)選擇橋接,確保centos7虛擬機(jī)可以正常聯(lián)網(wǎng)。同時存儲需要刪除默認(rèn)的控制器,選用SATA的控制器,安裝完系統(tǒng)后,請清空其他軟盤設(shè)備只保留你的虛擬機(jī)硬盤。細(xì)心的讀者已經(jīng)發(fā)現(xiàn),我的端口數(shù)設(shè)置為30,這是REX-Ray官方給的推薦配置,只有擴(kuò)大端口數(shù)你之后創(chuàng)建的卷才能被機(jī)器識別使用。

建議直接安裝兩臺虛擬機(jī)?。?!以便等會驗證跨主機(jī)存儲。

步驟三

為兩臺虛擬機(jī)安裝docker和rex-ray。如果你不能保證你的網(wǎng)絡(luò)可以與互聯(lián)網(wǎng)正常通信,就不用繼續(xù)下面的教程了。

我的習(xí)慣是禁selinux,sed -i "s/^SELINUX=.*/SELINUX=disabled/" /etc/selinux/config

然后安裝docker,yum -y install docker

接下來安裝rexray,curl -sSL https://rexray.io/install | sh -s -- stable

最后編寫/etc/rexray/config.yml文件

解讀config文件:

service選擇VirtualBox的virtualbox;

endpoint設(shè)置為你啟動VirtualBox的宿主機(jī)加18083端口,這是因為你在宿主機(jī)上啟動了VirtualBox而虛擬機(jī)都是使用橋接網(wǎng)絡(luò),所以ip是宿主機(jī)的ip;

volumePath是你的第一臺虛擬機(jī)的存放位置,我的第一臺虛擬機(jī)是cjm所以位置是這個;

controllerName:設(shè)置SATA類型;

localMachineNameOrId是指定的vm的名字。

這個時候先不要執(zhí)行 systemctl restart rexray.service

我們需要去cmd中rexray的安裝目錄下執(zhí)行關(guān)閉登錄認(rèn)證 和 啟動vboxwebsrv 服務(wù)

VBoxManage setproperty websrvauthlibrary null

vboxwebsrv -H 0.0.0.0

執(zhí)行完畢之后,我們就可以啟動相關(guān)服務(wù)了。

systemctl restart rexray

systemctl restart docker

步驟四

跨主機(jī)數(shù)據(jù)卷測試

現(xiàn)在兩臺虛擬機(jī)都啟動了docker和rexray服務(wù)。我們創(chuàng)建數(shù)據(jù)卷設(shè)備驗證一下:

docker volume create --driver rexray --name=mysqldata --opt=size=2

docker volume create --driver rexray --name=mysqldata1 --opt=size=2

docker volume ls

rexray volume ls

現(xiàn)在我們在第一臺虛擬機(jī)上創(chuàng)建一個t1的容器,掛載mysqldata設(shè)備,并在mysqldata設(shè)備上寫一個測試文件1.txt。

然后我們刪除t1容器在另外一臺虛擬機(jī)上創(chuàng)建t2的容器,也掛載mysqldata設(shè)備,并查看之前寫的文件是否還存在。

跨主機(jī)存儲已經(jīng)實現(xiàn),如果你在實現(xiàn)rexray遇到了很多坑,可以一起交流交流。

.

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論