REX-Ray 容器跨主機(jī)存儲(chǔ)坑實(shí)在是太多,百度搜索出來的各種解決方案很少有實(shí)際意義,跟風(fēng)粘貼復(fù)制者眾,大家在學(xué)習(xí)這些前沿技術(shù)時(shí),學(xué)會(huì)去國外官方論壇上查詢問題。rex-ray作為docker跨主機(jī)數(shù)據(jù)卷存儲(chǔ)解決方案,支持很多存儲(chǔ)模式,例如openstack的cinder,分布式存儲(chǔ)ceph等,但是今天我們用VirtualBox 虛擬機(jī)virtualbox來實(shí)現(xiàn)容器的跨主機(jī)存儲(chǔ)。
步驟一
閱讀官方文檔,了解rex-ray究竟是什么,能夠做什么,為什么選用它,它又支持什么。
官方鏈接 :
https://rexray.readthedocs.io/en/stable/
https://rexray.readthedocs.io/en/stable/user-guide/storage-providers/virtualbox/#virtualbox
步驟二
安裝VirtualBox,并啟動(dòng)一個(gè)虛擬機(jī),例如centos7虛擬機(jī)。我是直接搜狗搜索VirtualBox,然后默認(rèn)安裝。安裝centos7虛擬機(jī)也很簡單,如果不會(huì)可以百度教程。
需要注意的是,安裝虛擬機(jī)時(shí),網(wǎng)絡(luò)選擇橋接,確保centos7虛擬機(jī)可以正常聯(lián)網(wǎng)。同時(shí)存儲(chǔ)需要?jiǎng)h除默認(rèn)的控制器,選用SATA的控制器,安裝完系統(tǒng)后,請(qǐng)清空其他軟盤設(shè)備只保留你的虛擬機(jī)硬盤。細(xì)心的讀者已經(jīng)發(fā)現(xiàn),我的端口數(shù)設(shè)置為30,這是REX-Ray官方給的推薦配置,只有擴(kuò)大端口數(shù)你之后創(chuàng)建的卷才能被機(jī)器識(shí)別使用。
建議直接安裝兩臺(tái)虛擬機(jī),以便等會(huì)驗(yàn)證跨主機(jī)存儲(chǔ)。
步驟三
為兩臺(tái)虛擬機(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文件
libstorage:
service:virtualbox
virtualbox:
endpoint:http://172.16.2.214:18083
userName:root
password:123qwe
tls:false
volumePath:/Users/cgls/VirtualBoxVMs/cjm
controllerName:SATA
localMachineNameOrId:cjm
解讀config文件:
service選擇VirtualBox的virtualbox;
endpoint設(shè)置為你啟動(dòng)VirtualBox的宿主機(jī)加18083端口,這是因?yàn)槟阍谒拗鳈C(jī)上啟動(dòng)了VirtualBox而虛擬機(jī)都是使用橋接網(wǎng)絡(luò),所以ip是宿主機(jī)的ip;
volumePath是你的第一臺(tái)虛擬機(jī)的存放位置,我的第一臺(tái)虛擬機(jī)是cjm所以位置是這個(gè);
controllerName:設(shè)置SATA類型;
localMachineNameOrId是指定的vm的名字。
這個(gè)時(shí)候先不要執(zhí)行 systemctl restart rexray.service
我們需要去cmd中rexray的安裝目錄下執(zhí)行關(guān)閉登錄認(rèn)證 和 啟動(dòng)vboxwebsrv 服務(wù)
VBoxManagesetpropertywebsrvauthlibrarynull
vboxwebsrv-H0.0.0.0
執(zhí)行完畢之后,我們就可以啟動(dòng)相關(guān)服務(wù)了。
systemctlrestartrexray
systemctlrestartdocker
步驟四
跨主機(jī)數(shù)據(jù)卷測(cè)試
現(xiàn)在兩臺(tái)虛擬機(jī)都啟動(dòng)了docker和rexray服務(wù)。我們創(chuàng)建數(shù)據(jù)卷設(shè)備驗(yàn)證一下:
dockervolumecreate--driverrexray--name=mysqldata--opt=size=2
dockervolumecreate--driverrexray--name=mysqldata1--opt=size=2
dockervolumels
rexrayvolumels
現(xiàn)在我們?cè)诘谝慌_(tái)虛擬機(jī)上創(chuàng)建一個(gè)t1的容器,掛載mysqldata設(shè)備,并在mysqldata設(shè)備上寫一個(gè)測(cè)試文件1.txt。
然后我們刪除t1容器在另外一臺(tái)虛擬機(jī)上創(chuàng)建t2的容器,也掛載mysqldata設(shè)備,并查看之前寫的文件是否還存在。
跨主機(jī)存儲(chǔ)已經(jīng)實(shí)現(xiàn),如果你在實(shí)現(xiàn)rexray遇到了很多坑,可以一起交流交流。
-
存儲(chǔ)
+關(guān)注
關(guān)注
13文章
4226瀏覽量
85578 -
主機(jī)
+關(guān)注
關(guān)注
0文章
982瀏覽量
35008 -
容器
+關(guān)注
關(guān)注
0文章
492瀏覽量
22027
原文標(biāo)題:容器跨主機(jī)存儲(chǔ)入坑指南
文章出處:【微信號(hào):cunchujie,微信公眾號(hào):存儲(chǔ)界】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論