centos7下glusterFs 分布式文件系统环境搭建

1、GlusterFS简介:

GlusterFS是一个开源的分布式文件系统 相关术语如下:
- Brick:GFS中的存储单元,通过是一个受信存储池中的服务器的一个导出目录。可以通过主机名和目录名来标识,如’SERVER:EXPORT’
- Client: 挂载了GFS卷的设备
- Extended Attributes:xattr是一个文件系统的特性,其支持用户或程序关联文件/目录和元数据。
- FUSE:Filesystem Userspace是一个可加载的内核模块,其支持非特权用户创建自己的文件系统而不需要修改内核代码。通过在用户空-
间运行文件系统的代码通过FUSE代码与内核进行桥接。
- GFID:GFS卷中的每个文件或目录都有一个唯一的128位的数据相关联,其用于模拟inode
- Namespace:每个Gluster卷都导出单个ns作为POSIX的挂载点
- Node:一个拥有若干brick的设备
- RDMA:远程直接内存访问,支持不通过双方的OS进行直接内存访问。
- RRDNS:round robin DNS是一种通过DNS轮转返回不同的设备以进行负载均衡的方法
- Self-heal:用于后台运行检测复本卷中文件和目录的不一致性并解决这些不一致。
- Split-brain:脑裂
- Volfile:glusterfs进程的配置文件,通常位于/var/lib/glusterd/vols/volname
- Volume:一组bricks的逻辑集合

2、准备工作:

  • 用三个节点搭建一个glusterfs集群,一个节点作为客户端使用

     glusterfs服务器节点:  
     172.29.41.229 tmaster centos7  
     172.29.41.231 tslave1 centos7  
     172.29.41.232 tslave2 centos7    
    
     client节点:   
     172.29.41.163 phn centos7    
    
  • 修改每台机器的hostname(vi /etc/hostname)和hosts文件(vi /etc/hosts),添加主机名到ip的映射
    最终的hosts文件应该如下图所示:

  • 使用ping命令检验各个节点是否能够ping通

  • 配置yum源为阿里源(在每个节点中都执行)

//下载阿里源文件
wget http://mirrors.aliyun.com/repo/Centos-7.repo 
//备份并替换系统的repo文件    
cp Centos-7.repo /etc/yum.repo.d/ 
cd /etc/yum.repos.d/ 
mv CentOS-Base.repo CentOS-Base.repo.bak 
//执行yum源更新命令 
yum clean all 
yum makecache 

3、安装glusterfs

  • 在tmaster、tslave1、tslave2节点安装glusterfs

    yum install centos-release-gluster

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

  • 启动 glusterFS (每个节点上都运行)

    systemctl start glusterd.service
    systemctl enable glusterd.service

  • 关闭每台机器上的防火墙

    systemctl stop firewalld.service
    systemctl disable firewalld.service

  • 在 tmaster节点上配置,将两个slave节点加入到gluster集群中。

    gluster peer probe tmaster
    gluster peer probe tslave1
    gluster peer probe tslave2

  • 查看集群状态:
    gluster peer status

  • 创建数据存储目录(在三个节点上都运行):
    mkdir -p /opt/gluster/data

  • 查看volume 状态:
    gluster volume info

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

  • 创建GlusterFS磁盘gtest:

    gluster volume create models replica 3 tmaster:/opt/gluster/data tslave1:/opt/gluster/data tslave2:/opt/gluster/data force

    replica 3表明存储3个备份,后面指定服务器的存储目录

    再次查看volume信息 gluster volume info

  • 启动 models
    gluster volume start models

  • gluster 性能调优:

    开启 指定 volume 的配额: (models 为 volume 名称)
    gluster volume quota models enable

    限制 models 中 / (既总目录) 最大使用 80GB 空间
    gluster volume quota models limit-usage / 80GB

    设置 cache 大小(此处要根据实际情况,如果设置太大可能导致后面客户端挂载失败)
    gluster volume set models performance.cache-size 512MB

    开启 异步,后台操作
    gluster volume set models performance.flush-behind on

    设置 io 线程 32
    gluster volume set models performance.io-thread-count 32

    设置 回写 (写数据时间,先写入缓存内,再写入硬盘)
    gluster volume set models performance.write-behind on

    调优之后的volume信息
    gluster volume info

  • 部署GlusterFS客户端并mount GlusterFS文件系统(在客户端节点phn上执行)

    yum install -y glusterfs glusterfs-fuse

    建立挂载点:mkdir -p /opt/gfsmount
    mount命令:mount -t glusterfs tmaster:models /opt/gfsmount/

    df 命令检查:df -h

    往该目录写入文件,随后查看gluster服务器的存储情况
    time dd if=/dev/zero of=/opt/gfsmount/hello bs=100M count=1

    查看phn机器上/opt/gfsmount 目录

    查看tmaster机器上/opt/gluster/data目录

    查看tslave1机器上/opt/gluster/data目录

    查看tslave2机器上/opt/gluster/data目录

    可以看到gluster服务器的每个节点上都有备份,符合之前设置的3个备份的原则

4、其他命令

  • 查看GlusterFS中所有的volume:
    gluster volume list

  • 删除GlusterFS磁盘:
    gluster volume stop models //停止名字为 models 的磁盘
    gluster volume delete models //删除名字为 models 的磁盘

至此。glusterfs的分布式环境搭建完成

猜你喜欢

转载自blog.csdn.net/phn_csdn/article/details/75153913