目标简述: 机器A 上面装有docker,docker里有跑了python爬虫程序去抓数据,机器A上有个目录mydata挂载到docker 抓取的目录上。有机器B,C 通过gluster 挂载到 机器A的mydata目录里。这样当docker里的数据下载完以后,会把数据分布式存储在机器B 和C 上。

     三台机器:

     192.168.0.107(机器B角色)

      192.168.0.109(机器c角色)

      192.168.0.111 (机器A角色)

 

      其中192.168.0.107 ,192.168.0.109创建replica volume复制卷(lxsvolume)(目录为/gluster/data)

192.168.0.111 为lxsvolume创建 /lxs/mydata的挂载点,然后把/lxs/mydata挂载到docker的mydata目录里。验证在docker的mydata目录里创建文件,则在192.168.0.107 ,192.168.0.109里能看到对应的文件

 

     

192.168.0.107 安装gluster

 yum install centos-release-gluster

 

yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

 

同样在192.168.0.109上安装上述命令

 

未开启服务时 
查看集群状态: gluster peer status  机器未开启

 

 

两台机器启动服务

启动服务 systemctl start glusterd.service 

重启时自动服务    systemctl enable glusterd.service

 

 

再次查看集群状态

 

关闭服务命令 systemctl stop glusterd.service 

 

把2台机器的IP 加入到集群中

操作在一台服务器上操作即可,状态将同步到其他服务器

gluster peer probe 192.168.0.107

gluster peer probe 192.168.0.109

 

 

此时在107上 把109那台机器加入进集群失败

能ping通 估计没关闭109防火墙

 

在109上关闭防火墙

systemctl stop firewalld.service 
systemctl disable firewalld.service

 

再次把109加入集群 成功

 

同时关闭下107防火墙

再次查看集群状态: gluster peer status 

 

 

创建数据存储目录(在二个节点上都运行):

107 109 上 mkdir -p /gluster/data

 

 

查看volume 状态: gluster volume info

 

 

 

由于还没有创建volume所以显示的是暂无信息

创建volume (有7种volume)

在107上 创建replica volume (复制卷)

gluster volume create lxsvolume replica 2 192.168.0.107:/gluster/data   

192.168.0.109:/gluster/data

 

 

 

 

再加上 gluster volume create lxsvolume replica 2 192.168.0.107:/gluster/data    192.168.0.109:/gluster/data  force

 

 

再次查看volume信息  gluster volume info (107 和109)

 

 

 

启动 lxsvolume卷   gluster volume start lxsvolume

 

 

 

在111 上安装客户端

yum install -y glusterfs glusterfs-fuse

 

 

建立挂载点:mkdir -p /lxs/mydata

 

mount命令:mount -t glusterfs 192.168.0.107:lxsvolume /lxs/mydata/

 

 在107  109  /gluster/data 目录 无东西

 

此时在 111 的 /lxs/mydata/ 的目录下 随便创建个文件

 

此时 107  109下都有

 

查看挂载信息

 

说明此时gluster 复制已经搭建完成

 

   下一步:验证通过docker 挂载数据到机器A 上 从而分布式存储到机器b c 上

 

 

把111的 /lxs/mydata 目录挂载到 docker 的 /mydata 目录里

 

docker run -it -v  /lxs/mydata:/mydata --privileged=true  ff426288ea90

 

 

然后在docker的 mydata目录里创建 文件qq 和目录lxs

在 107  109的挂载点里都能看到

 

 

 

 搭建成功:

  通过Docker 里的/mydata ----à 111 的/lxs/mydata   然后 挂载lxsvolume卷(107和109创建的复制卷)