容器跨主机存储入坑指南

存储 存储软件
ex-ray作为docker跨主机数据卷存储解决方案,支持很多存储模式,例如openstack的cinder,分布式存储ceph等,但是今天我们用VirtualBox 虚拟机virtualbox来实现容器的跨主机存储。

入坑准备

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

[[242769]]

步骤一

阅读官方文档,了解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文件

  1. libstorage: 
  2. service: virtualbox 
  3. virtualbox: 
  4. endpoint: http://172.16.2.214:18083 
  5. userName: root 
  6. password: 123qwe 
  7. tls: false 
  8. volumePath: /Users/cgls/VirtualBox VMs/cjm 
  9. controllerName: SATA 
  10. 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 服务

  1. VBoxManage setproperty websrvauthlibrary null 
  2. vboxwebsrv -H 0.0.0.0 

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

  1. systemctl restart rexray 
  2. systemctl restart docker 

步骤四

跨主机数据卷测试

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

  1. docker volume create --driver rexray --name=mysqldata --opt=size=2 
  2. docker volume create --driver rexray --name=mysqldata1 --opt=size=2 
  3. docker volume ls 
  4. rexray volume ls 

容器跨主机存储入坑指南

 

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

容器跨主机存储入坑指南

 

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

容器跨主机存储入坑指南

 

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

 

责任编辑:武晓燕 来源: 今日头条
相关推荐

2020-06-19 11:20:17

开发避坑支付宝

2021-09-27 10:19:24

机器学习情绪分析工具AI人工智能

2019-04-24 17:45:24

微服务容器青云

2022-07-20 15:19:17

容器Docker

2015-01-08 10:29:59

Shipyardweb管理集中化

2020-02-05 14:31:04

两种互通方法

2020-06-18 14:39:42

MongoDB数据数据库

2012-04-10 10:11:40

软件项目

2023-01-18 23:20:25

编程开发

2016-09-22 15:50:38

JavascriptRedux源码解析

2020-05-19 10:49:56

云计算文件数据

2021-10-18 23:49:50

云原生分布式存储

2024-04-03 12:30:00

C++开发

2024-04-24 13:45:00

2024-06-04 22:20:02

2021-03-25 10:14:10

自动化运营人工智能AIOps

2021-02-26 00:46:11

CIO数据决策数字化转型

2020-06-12 11:03:22

Python开发工具

2023-06-11 15:51:13

2018-01-20 20:46:33

点赞
收藏

51CTO技术栈公众号