单台宿主机内通过两台docker容器配置glusterfs集群

本文主要内容为:在一台Centos7.9虚拟机(模拟物理机)内通过两台docker容器构建glusterfs集群并实现在虚拟机上的挂载,由于虚拟机可以虚拟硬盘,方便操作,所以本文没有选择在物理机上搭建。

一、配置虚拟机硬盘和网络

首先要保证虚拟机能够和外网联通,如果想配置外网和内网,可以在虚拟机内添加两个虚拟网卡,一个为桥接模式,另一个为NAT模式。然后在虚拟机上虚拟两个20G的硬盘。下图为虚拟机配置:

第一块硬盘为操作系统硬盘,主要是网络和硬盘需要配置好,其他参数酌情配置。

二、安装docker

接下来是进入虚拟机内安装docker,docker容器的安装,本人是按照菜鸟docker教程中采用手动方式安装的,由于本文不是主要讲解docker的安装,所以详细的步骤可以参考:CentOS Docker 安装 | 菜鸟教程 (runoob.com)​​​​​​

安装完docker后启动docker, 

systemctl start docker 

三、容器启动和网络配置

可以去docker hub查找一下centos官方镜像然后拉取,我拉取的是官方centos7.9的镜像.

docker pull centos:centos7.9.2009

通过docker images命令可以查看到我来取的镜像。

接下来是配置容器网络,我采用的是桥接网络:

docker network create mynet --subnet 192.168.4.0/24 --gateway 192.168.4.1

通过docker network ls可以查看到我创建的网络mynet:

 配置好网络后,就可以启动容器并绑定网络,分别启动两台docker容器server1和server2:

docker run -it -d --restart=always --network mynet --name server1 --privileged=true  eeb6 /sbin/init

docker run -it -d --restart=always --network mynet --name server2 --privileged=true  eeb6 /sbin/init

 参数介绍:-it交互模式,-d后台守护进程,--restart随docker守护进程启动而启动,--privileged特权模式,由于我要在容器内启动服务,挂载硬盘,所以需要特权模式,注意后面一定是/sbin/init或者/usr/sbin/init,我容器的tag是以eeb6打头,实际运行时要运行你们本地镜像的名字。使用docker ps可以查看到我创建的两个容器:

然后检查一下两台容器的网络:

server1为4.2,server2为4.3,由于我在创建容器时没有指定容器IP,所以该IP为docker自动分配的。然后检查一下容器之间的网络连接和容器和虚拟机的网络连接,我这里是正常的,由于我要挂载,所以我修改了一下宿主机的/etc/hosts文件, 

 四、容器内安装glusterfs-server

 接下来就是glusterfs的安装,我以server1为例来讲解:

 首先在虚拟机上下载yum源:(由于我下载的centos7.9镜像没有wget命令,只能拷贝了)

wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
docker cp CentOS7-Base-163.repo server1:/etc/yum.repos.d/

 将163的源拷贝到容器中并替换容器原来的源。

docker exec -it server1 /bin/bash    //进入容器
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak   //备份旧配置文件
mv CentOS7-Base-163.repo CentOS-Base.repo  //替换

然后在server1容器内安装glusterfs:

yum install centos-release-gluster
yum clean all&&yum makecache
yum install glusterfs-server
//启动glusterd服务
systemctl start glusterd

server2也按照server1这样安装glusterfs。

五、硬盘格式化挂载

接下来就是硬盘格式化挂载:

正常我们在server1容器内能看到两块磁盘,server1对/dev/sdb进行格式化挂载:

# mkfs.xfs -i size=512 /dev/sdb
# mkdir -p /data/brick1
# echo '/dev/sdb /data/brick1 xfs defaults 1 2' >> /etc/fstab
# mount -a && mount

然后在server2上执行同样的操作:

# mkfs.xfs -i size=512 /dev/sdc
# mkdir -p /data/brick1
# echo '/dev/sdc /data/brick1 xfs defaults 1 2' >> /etc/fstab
# mount -a && mount

server1挂载的是/dev/sdb,挂载后我们可以看到server1为:

六、glusterfs分布式文件系统集群搭建 

然后构建glusterfs集群:

gluster peer probe server2   //该命令在server1上执行
gluster peer probe server1   //该命令在server2上执行

在server1上执行命令查看集群状态: 

gluster peer status

在每个节点上执行:

mkdir -p /data/brick1/gv0

然后创建分布式复制卷,在任意一个节点上执行:

//创建卷
gluster volume create gv0 replica 2 server1:/data/brick1/gv0 server2:/data/brick1/gv0  
//启动卷
gluster volume start gv0

 任一节点执行以下命令,查看卷是否正常启动

gluster volume info

 卷正常启动后,我们就可以在虚拟机上挂载该卷,执行命令如下:

//安装文件系统接口
yum -y install glusterfs-fuse
//挂载
mount -t glusterfs server2:/gv0 /mnt

挂载后执行df -hT就可以看到挂载的盘了:

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值