参考文档

  1. https://wiki.centos.org/zh/HowTos/GlusterFSonCentOS 推荐
  2. https://wiki.centos.org/SpecialInterestGroup/Storage/gluster-Quickstart 安装文档
  3. https://www.codercto.com/a/23851.html gluster高可用HA
  4. http://www.voidcn.com/article/p-mczwnjaz-tx.html HA高可用
  5. https://blog.51cto.com/7424593/2165158 HA高可用
  6. https://www.cnblogs.com/smlie/p/11799908.html 3种客户端挂载方案
  7. https://blog.csdn.net/qq43748322/article/details/93875225 GlusterFS 配置及使用
  8. https://www.cnblogs.com/kevingrace/p/8709544.html gluster原理
  9. gluster 下载地址:https://download.gluster.org/pub/gluster/
  10. gluster 下载地址:https://bits.gluster.org/pub/gluster/glusterfs/3.4.2/x86_64/ 比较老的版本
  11. centos下载地址:http://mirror.centos.org/centos-7/7.7.1908/ CentOS包下载地址
  12. http://mirror.centos.org/centos-7/7.7.1908/storage/x86_64/ CentOS7镜像下载地址
  13. https://aravindavkgluster.readthedocs.io/en/latest/Quick-Start-Guide/Quickstart/ gluster文档
  14. https://docs.gluster.org/en/latest/Quick-Start-Guide/Quickstart/ gluster官方文档

一、准备环境

测试环境:
现网服务器测试机: tw19348 tw19349 tw19350
现网客户端测试机: tw19347

正式环境分布式存储系统gluster
操作系统centos7.6
内存:32G
磁盘:/data 数据盘 700g
/ 系统盘

内网vip 10.33.35.116 外网vip 180.101.x.x

服务器和客户端要配置hosts (或者外网ip 不同机房或者内网ip同一个机房) /etc/hosts 10.33.35.184 tw19348 10.33.35.188 tw19349 10.33.35.192 tw19350

或者 180.101.141.6 tw19348 180.101.141.15 tw19349 180.101.141.113 tw19350

二、安装指南

  1. rpm -qa|grep gluster 查看机器上面已经安装的gluster版本
  2. yum remove gluster* 移除已经安装的gluster老的版本
  3. yum search gluster 搜索gluster yum源
  4. yum install centos-release-gluster7.noarch 安装gluster7 yum源
  5. yum install glusterfs glusterfs-api glusterfs-cli glusterfs-fuse glusterfs-libs glusterfs-server glusterfs-geo-replication glusterfs-rdma 服务器安装组件
  6. yum install glusterfs glusterfs-fuse attr -y 客户端安装组件
  7. 防火墙 和iptables 配置
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    
     iptables -I INPUT -s 10.33.35.184/16 -p tcp -m tcp --dport 24007:24008 -j ACCEPT #开放端口24007-24008,实际使用的是24007
     iptables -I INPUT -s 10.19.1.148/24 -p tcp -m tcp --dport 24007 -j ACCEPT
     iptables -I INPUT -s 10.19.1.148/24 -p tcp -m tcp --dport 49152:49160 -j ACCEPT
     iptables -I INPUT -s 10.19.1.148/24 -p tcp -m tcp --dport 49152:49160 -j ACCEPT #开放传输服务端口
     iptables -I INPUT -s 116.211.206.147 -p tcp -m tcp --dport 49152:49160 -j ACCEPT #必须开通端口,要不无法访问
     其他防火墙配置例子
     firewall-cmd --zone=public --add-port=24007-24008/tcp --permanent
     firewall-cmd --reload
     iptables -A INPUT -p tcp --dport 24007:24008 -j ACCEPT
     iptables -I INPUT -p all -s 192.168.126.191 -j ACCEPT 
     iptables -I INPUT -p all -s 192.168.126.191/16 -j ACCEPT 
     iptables -A INPUT -p tcp --dport 24007:25000 -j ACCEPT
     iptables -A INPUT -p tcp --dport 49152:49160 -j ACCEPT
     iptables -A INPUT -p udp --dport 867 -j ACCEPT
    
  8. service iptables save 保存iptable配置
  9. systemctl stop rpcbind.service 停止rpcbind服务
  10. systemctl restart iptables.service 重启iptable服务
  11. systemctl enable glusterd.service #开机自动启动文件系统服务
  12. systemctl start glusterd.service #启动服务
  13. systemctl list-units –type=service 列出开机启动的服务
  14. glusterd 操作,在tw19348上面执行
    1
    2
    
    gluster peer probe tw19349 加入新节点
    gluster peer probe tw19350 加入新节点
    
  15. 挂载目录
    1
    2
    3
    4
    5
    6
    7
    8
    
    在3台服务器上面创建目录
    mkdir -p /data/gluster_brick1 三个节点都执行
    
    创建可以挂载的卷,任意一台机器执行 
    gluster volume create gluster_vol1 replica 3 transport tcp tw19348:/data/gluster_brick1 tw19349:/data/gluster_brick1 tw19350:/data/gluster_brick1
    
    启动卷 
    gluster volume start gluster_vol1
    
  16. 客户端挂载
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    
    客户端安装yum install glusterfs glusterfs-fuse attr -y
    配置host,里面有服务器的节点
    mount -t glusterfs tw06a2888:/gluster_vol1 /mnt/gluster_test
    或者指定vip,内网ip,外网ip
    mount -t glusterfs 180.101.141.15:/gluster_vol1 /mnt/gluster_test
    或者
    mount -t glusterfs wxtest064vm16:/gluster_vol1 /mnt/gluster_test
    或者
    mount -t glusterfs -o acl 180.101.141.15:/gluster_vol1 /mnt/gluster_test
    停止挂载:先ps aux|grep fuse 查看进程号,然后kill 掉进程就不挂载了
    
  17. 服务器运行两个服务
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    systemctl status glusterd.service 
    systemctl status glusterfsd.service
    
    基本操作:
    a. 查看卷状态 gluster volume status
    b. 不停机的情况下扩展卷
    gluster volume add-brick glustervol1  wxtest064vm15:/data/gluster_brick2 wxtest064vm16:/data/gluster_brick2 wxtest064vm17:/data/gluster_brick2  
    c. 查看卷信息 gluster volume info gluster_vol1
    d. 重新平衡扇区 gluster volume rebalance gluster_vol1 start
    e. 查看重新平衡的状况 gluster volume rebalance gluster_vol1 status
    f. 强制重启gluster volume start gluster_vol1 force
    数据是hash分布的,并且是复制的
    系统管理分成:节点管理,卷管理,brick管理
    设置 gluster volume set gluster_vol1 performance.client-io-threads on
    设置nfs打开 gluster volume set gluster_vol1 nfs.disable off
    
    客户端对 GlusterFS 设置ACL规则
    设置其他用户对目录有读写权限:
    setfacl -m o::rwx -R arfa_nfs/
    setfacl -m d:o:rwx arfa_nfs/ 
    
    mount -t glusterfs -o acl 10.33.35.116:/gluster_vol1 /mnt/gluster_test
    
    杀死进程:
    gluster volume stop gluster_vol1
    systemctl stop glusterd.service 
    systemctl disable glusterd.service 
    

三、安装keepalived

  1. 学习指南:https://www.iteye.com/blog/aoyouzi-2288124
  2. yum -y install keepalived
  3. keepalived重新加载配置文件
  4. kill -HUP $(cat /var/run/keepalived.pid)
  5. 通过ip a 命令可以查看vip绑定的