容器跨主机存储入坑指南

栏目: 服务器 · 发布时间: 8年前

内容简介:REX-Ray 容器跨主机存储坑实在是太多,百度搜索出来的各种解决方案很少有实际意义,跟风粘贴复制者众,大家在学习这些前沿技术时,学会去国外官方论坛上查询问题。rex-ray作为docker跨主机数据卷存储解决方案,支持很多存储模式,例如openstack的cinder,分布式存储ceph等,但是今天我们用VirtualBox 虚拟机virtualbox来实现容器的跨主机存储。阅读官方文档,了解rex-ray究竟是什么,能够做什么,为什么选用它,它又支持什么。

入坑准备

REX-Ray 容器跨主机存储坑实在是太多,百度搜索出来的各种解决方案很少有实际意义,跟风粘贴复制者众,大家在学习这些前沿技术时,学会去国外官方论坛上查询问题。rex-ray作为 docker 跨主机数据卷存储解决方案,支持很多存储模式,例如openstack的cinder,分布式存储ceph等,但是今天我们用VirtualBox 虚拟机virtualbox来实现容器的跨主机存储。

容器跨主机存储入坑指南

步骤一

阅读官方文档,了解rex-ray究竟是什么,能够做什么,为什么选用它,它又支持什么。

官方链接 :

https://rexray.readthedocs.io/en/stable/

https://rexray.readthedocs.io/en/stable/user-guide/storage-providers/virtualbox/#virtualbox

步骤二

安装VirtualBox,并启动一个虚拟机,例如centos7虚拟机。我是直接搜狗搜索VirtualBox,然后默认安装。安装centos7虚拟机也很简单,如果不会可以百度教程。

需要注意的是,安装虚拟机时,网络选择桥接,确保centos7虚拟机可以正常联网。同时存储需要删除默认的控制器,选用SATA的控制器,安装完系统后,请清空其他软盘设备只保留你的虚拟机硬盘。细心的读者已经发现,我的端口数设置为30,这是REX-Ray官方给的推荐配置,只有扩大端口数你之后创建的卷才能被机器识别使用。

建议直接安装两台虚拟机!!!以便等会验证跨主机存储。

容器跨主机存储入坑指南

步骤三

为两台虚拟机安装docker和rex-ray。如果你不能保证你的网络可以与互联网正常通信,就不用继续下面的教程了。

我的习惯是禁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/VirtualBox VMs/cjm 
controllerName: SATA 
localMachineNameOrId: cjm 

解读config文件:

service选择VirtualBox的virtualbox;

endpoint设置为你启动VirtualBox的宿主机加18083端口,这是因为你在宿主机上启动了VirtualBox而虚拟机都是使用桥接网络,所以ip是宿主机的ip;

volumePath是你的第一台虚拟机的存放位置,我的第一台虚拟机是cjm所以位置是这个;

controllerName:设置SATA类型;

localMachineNameOrId是指定的vm的名字。

这个时候先不要执行 systemctl restart rexray.service

我们需要去cmd中rexray的安装目录下执行关闭登录认证 和 启动vboxwebsrv 服务

VBoxManage setproperty websrvauthlibrary null 
vboxwebsrv -H 0.0.0.0 

执行完毕之后,我们就可以启动相关服务了。

systemctl restart rexray 
systemctl restart docker 

步骤四

跨主机数据卷测试

现在两台虚拟机都启动了docker和rexray服务。我们创建数据卷设备验证一下:

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 

容器跨主机存储入坑指南

现在我们在第一台虚拟机上创建一个t1的容器,挂载mysqldata设备,并在mysqldata设备上写一个测试文件1.txt。

容器跨主机存储入坑指南

然后我们删除t1容器在另外一台虚拟机上创建t2的容器,也挂载mysqldata设备,并查看之前写的文件是否还存在。

容器跨主机存储入坑指南

跨主机存储已经实现,如果你在实现rexray遇到了很多坑,可以一起交流交流。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Head First Python

Head First Python

Paul Barry / O'Reilly Media / 2010-11-30 / USD 49.99

Are you keen to add Python to your programming skills? Learn quickly and have some fun at the same time with Head First Python. This book takes you beyond typical how-to manuals with engaging images, ......一起来看看 《Head First Python》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具