网站首页 > 编程文章 正文
入坑准备
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遇到了很多坑,可以一起交流交流。
猜你喜欢
- 2024-10-15 超能课堂(138):硬盘的S.M.A.R.T.是什么?如何看懂它
- 2024-10-15 教你打造网络与存储设备:群晖DS 1618+IT团队老伙伴的新相逢
- 2024-10-15 AHCI SSD和NVMe SSD的区别(ahci和固态硬盘)
- 2024-10-15 网络与存储设备 篇一:Synology DS 1618+ IT团队老伙伴的新相逢
- 2024-10-15 windows系统启动常见报错信息判断电脑故障
- 2024-10-15 工业级2.5寸SATA固态硬盘(SSD)(2.5寸工业主板)
- 2024-10-15 SATA固态硬盘性能遇瓶颈,NVMe协议来帮忙
- 2024-10-15 浪潮服务器——板载raid UEFI模式下配置步骤
- 2024-10-15 戴尔7467-Inspiron 灵越 14 7000硬件测评!
- 2024-10-15 如何通过命令行使用virtualbox虚拟机
你 发表评论:
欢迎- 05-09Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 05-09《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- 05-09MapStruct架构设计(mapstruct @mapping)
- 05-09分布式微服务架构组件(分布式微服务架构设计)
- 05-09Java Swing组件下的JButton实例(java swing 组件)
- 05-09java基础都在这了,小主们拿去吧(java基础是指什么)
- 05-09AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 05-09【Spring Boot】WebSocket 的 6 种集成方式
- 最近发表
-
- Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- MapStruct架构设计(mapstruct @mapping)
- 分布式微服务架构组件(分布式微服务架构设计)
- Java Swing组件下的JButton实例(java swing 组件)
- java基础都在这了,小主们拿去吧(java基础是指什么)
- AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 【Spring Boot】WebSocket 的 6 种集成方式
- Java 中五种最常见加密算法:原理、应用与代码实现
- 用注解进行参数校验,spring validation介绍、使用、实现原理分析
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)