glusterfs分布式存储

glusterfs分布式存储运维文档

glusterfs分布式存储简介

glusterfs分布式存储作用

我们的容器应用常常需要将重要的数据持久化,方便在不同容器间共享。单机环境的数据卷难以满足 Docker 集群化的要求,因此需要引入分布式文件系统。GlusterFS 因其部署简单、扩展性强、高可用、可mount挂载成path的方式访问等特点,我们选择GlusterFS来作为我们的分布式存储。

glusterfs分布式存储集群机器列表

  • 服务端
ip软件磁盘卷模式brick名称volume名称分布式存储大小
192.168.0.60 centos-release-gluster、glusterfs 、glusterfs-server /dev/vdc : 50G replica /glusterfs/brick dockerdata 50G
192.168.0.63 centos-release-gluster、glusterfs 、glusterfs-server /dev/vdc : 50G replica /glusterfs/brick dockerdata  
  • 客户端
客户端ip安装软件挂载路径
192.168.53.7 glusterfs、glusterfs-fuse、glusterfs-rdma /dockerdata
192.168.53.8 glusterfs 、glusterfs-fuse、glusterfs-rdma /dockerdata
192.168.53.9 glusterfs 、glusterfs-fuse、glusterfs-rdma /dockerdata
192.168.53.4 glusterfs 、glusterfs-fuse、glusterfs-rdma /dockerdata
192.168.53.10 glusterfs、glusterfs-fuse、glusterfs-rdma /dockerdata
192.168.53.11 glusterfs 、glusterfs-fuse、glusterfs-rdma /dockerdata
192.168.53.12 glusterfs 、glusterfs-fuse、glusterfs-rdma /dockerdata
192.168.53.13 glusterfs 、glusterfs-fuse、glusterfs-rdma /dockerdata
其他新增客户端 其他 其他

glusterFS服务端搭建

1.准备brick

#fdisk /dev/vdc 进行分区
#lsblk  查看
#mkfs.xfs -i size=512 /dev/vdc1 格式化
创建glusterfs挂载路径:
#mkdir -p /glusterfs/brick
  • 开机启动就挂载:
#echo '/dev/vdc1 /glusterfs/brick xfs defaults 1 2' >> /etc/fstab
挂载:
#mount -a && mount

2.搭建glusterFS分布式存储集群

  • 为每台机器分别配置阿里的yum源(Centos-7.repo CentOS-Gluster-3.12.repo),备份并替换系统的repo文件 ,每台机器都执行yum源更新命令
#yum clean all
#yum makecache

生成缓存可能需要一段时间。

  • 机器上安装gluster:
#yum install -y centos-release-gluster
#yum install -y glusterfs glusterfs-server 
  • 两机器上都启动 glusterFS
#systemctl start glusterd.service 
  • 两机器增加开机自启动
#systemctl enable glusterd.service
  • 将节点加入集群中:
# gluster peer probe 192.168.0.63
  • 创建Volume:
#gluster volume creat dockerdata replica 2 192.168.0.63:/glusterfs/brick/dockerdata 192.168.0.60:/glusterfs/brick/dockerdata
  • 启动Volume:
#gluster volume start dockerdata
  • 查看信息:
# gluster volume info dockerdata

glusterFS分布式存储集群搭建好了。

glusterFS客户端

1.安装相关软件

192.168.53.4;192.168.53.7;192.168.53.8;192.168.53.9都安装客户端。

#yum install -y glusterfs glusterfs-fuse

2.挂载存储(选择 Native mount client方式挂载)

#mkdir /dockerdata
#echo 192.168.0.60:dockerdata   /dockerdata    glusterfs defaults,_netdev 0 0”>> /etc/fstab
#mount & mount -a

3.检查 ls 或者df 查看

#df -h

glusterFS常见问题和维护方法

glusterFS整个集群换ip导致不能使用

  • 1.原因:灰度环境gfs服务器ip更换,导致集群不能使用。
  • 2.解决办法:

服务端删集群记录:

#rm -rf /glusterfs/brick/dockerdata/.glusterfs

服务端停gfs:

#service glusterd stop

服务端删gfs记录

#cd /var/lib/glusterd/
#rm ./* 

服务端启动gfs:

#service glusterd start

服务端重新将节点加入集群:

#gluster peer probe 192.168.52.37

服务端检查:

#gluster peer status

服务端创建复制卷

#gluster volume creat dockerdata replica 2 192.168.52.36:/glusterfs/brick/dockerdata 192.168.52.37:/glusterfs/brick/dockerdata

服务端启动卷

#gluster volume start dockerdata

客户端重新挂载:

#mount -t glusterfs 192.168.52.36:dockerdata /dockerdata

检查数据:

数据依然存在,没有丢失。

## 磁盘故障导致GFS不能使用

故障的表象:客户端不能访问挂载的gfs目录。

 

分析过程:

1. 检查gfs服务端

 

 推测原因:磁盘老化导致坏道,异常操作导致文件node错乱、文件损坏等
修复方法:命令修复,单不能保证修复所有的错误。修复后如果一段时间内再次发生,要考虑磁盘质量问题。

恢复步骤:

1. 停止卷

# gluster volume stop gfs-sit

 

停止gfs服务

#  systemctl stop glusterd.service 

 2. 卸载磁盘

#umont -f /glusterfs/brick

无法卸载的情况下,将/etc/fstab里面自动挂载取消,执行reboot命令,将操作系统重启。

3.修复磁盘

 

 

根据提示,需要加上参数L

# xfs_repair -L /dev/sdb1

 

 

 

 

 

 修复完成后,/etc/fstab配置恢复:

vi /etc/fstab 

 

 使用命令进行挂载

#mount -a

 

启动gfs服务:

# systemctl start glusterd.service 

启动卷:

 # gluster volume start gfs-sit

查看卷信息:

#gluster volume info gfs-sit

 

 

 去客户端检查挂载目录是否可用。

 

posted @ 2019-05-18 16:39  邹姣姣  阅读(728)  评论(0编辑  收藏  举报