GFS分布式文件系统

梦想与她 提交于 2019-12-27 05:14:59

一、GlusterFS 简介:

GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,并提供容错功能。它可以给大量的用户提供总体性能较高的服务。

  • 开源的分布式文件系统;
  • 由存储服务器、客户端以及 NFS/Samba 存储网关组成;

(1)GlusterFS 特点:

  • 扩展性和高性能;
  • 高可用性;
  • 全局统一命名空间;
  • 弹性卷管理;
  • 基于标准协议

弹性 HASH 算法:

  • 通过 HASH 算法得到一个32位的整数;
  • 划分为 N 个连接的子空间,每个空间对应一个 Brick;
  • 弹性 HASH 算法的优点:
    保证数据平均分布在每一个 Brick 中;
    解决了对元数据服务器的依赖,进而解决了单点故障以及服访问瓶颈。

二、GFS的卷类型

(1)分布式卷:
没有对文件进行分块处理;
通过扩展文件属性保存 HASH值;
支持的底层文件系统有 ext3 、ext4 、ZFS 、XFS等

特点:
文件分布在不同的服务器,不具备冗余性;
更容易和廉价地扩展卷的大小;
单点故障会造成数据丢失;
依赖底层的数据保护。

(2)条带卷:
根据偏移量将文件分为 N 块(N个条带节点),轮询的存储在每个 Brick Server 节点;
存储大文件时,性能尤为突出;
不具备冗余性,类似 raid0

特点:
数据被分割成更小块分布到块服务器群中的不同条带区;
分布减少了负载且更小的文件加速了存取的速度;
没有数据冗余

(3)复制卷:
同一个文件保存一份或多分副本;
复制模式因为要保存副本,所以磁盘利用率较低;
多个节点上的存储空间不一致,那么将安装木桶效应取最低节点的容量作为该卷的总容量

特点:

卷中所有的服务器均保存一个完整的副本;
卷的副本数量可由客户创建的时候决定;
至少由两个块服务器或更多服务器;
具备容灾性。

(4)分布式条带卷:

兼顾分布式和条带卷的功能;
主要用于大文件访问处理;
至少最少需要 4 台服务器。

(5)分布式复制卷:

兼顾分布式卷和复制卷的功能;
用于需要冗余的情况下

三、部署GFS

1、在每台虚拟机上挂载好磁盘

vim disk.sh //挂载磁盘脚本,一键操作

#! /bin/bash
echo "the disks exist list:"
fdisk -l |grep '磁盘 /dev/sd[a-z]'
echo "=================================================="
PS3="chose which disk you want to create:"
select VAR in `ls /dev/sd*|grep -o 'sd[b-z]'|uniq` quit
do
    case $VAR in
    sda)
        fdisk -l /dev/sda
        break ;;
    sd[b-z])
        #create partitions
        echo "n
                p
                
                
           
                w"  | fdisk /dev/$VAR

        #make filesystem
        mkfs.xfs -i size=512 /dev/${VAR}"1" &> /dev/null
	#mount the system
        mkdir -p /data/${VAR}"1" &> /dev/null
        echo -e "/dev/${VAR}"1" /data/${VAR}"1" xfs defaults 0 0\n" >> /etc/fstab
        mount -a &> /dev/null
        break ;;
    quit)
        break;;
    *)
        echo "wrong disk,please check again";;
    esac
done

2、在4台node节点上的操作
(1)、关闭防火墙
(2)、编辑hosts文件

192.168.116.128 node1
192.168.116.130 node2
192.168.116.129 node3
192.168.116.131 node4

3、编辑yum仓库,安装Glustrt

cd /opt/
mkdir /abc
mount.cifs //192.168.100.128/MHA /abc   //远程挂载到本地
cd /etc/yum.repos.d/
mkdir bak  
mv Cent* bak/   //将原来的源都移到新建的文件夹中

vim GLFS.repo   //新建一个源
[GLFS]
name=glfs
baseurl=file:///abc/gfsrepo
gpgcheck=0
enabled=1

安装软件包

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

开启服务

systemctl start glusterd
systemctl status glusterd

在这里插入图片描述

时间同步

ntpdate ntp1.aliyun.com   //时间同步(每台节点都需要操作)

添加存储信任池,只要在一台主机上添加其他三台节点即可:
这是在 node1 节点上的操作:

gluster peer probe node2
gluster peer probe node3
gluster peer probe node4
gluster peer status //查看所有节点状态

GlusterFS 卷的创建

(1)创建分布式卷

gluster volume create dis-vol node1:/data/sdb1 node2:/data/sdb1 force
  //利用node1和node2上的两块磁盘创建;dis-vol为磁盘名;force表示强制
gluster volume start dis-vol    //启动
gluster volume info dis-vol     //查看状态

(2)创建条带卷

gluster volume create stripe-vol stripe 2 node1:/data/sdc1 node2:/data/sdc1 force
gluster volume start stripe-vol
gluster volume info stripe-vol

(3)创建复制卷

gluster volume create rep-vol replica 2 node3:/data/sdb1 node4:/data/sdb1 force
gluster volume start rep-vol
gluster volume info rep-vol

(4)创建分布式条带卷(至少4个节点)

gluster volume create dis-stripe stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
gluster volume start dis-stripe
gluster volume info dis-stripe

(5)创建分布式复制卷(至少4个节点)

gluster volume create dis-rep replica 2 node1:/data/sde1 node2:/data/sde1 node3:/data/sde1 node4:/data/sde1 force
gluster volume start dis-rep
gluster volume info dis-rep

客户端配置

(1)关闭防火墙
(2)配置安装 GFS 源

cd /opt/
mkdir /abc
mount.cifs //192.168.100.128/MHA /abc   //远程挂载到本地
cd /etc/yum.repos.d/

vim GLFS.repo   //新建一个源
[GLFS]
name=glfs
baseurl=file:///abc/gfsrepo
gpgcheck=0
enabled=1
yum -y install glusterfs glusterfs-fuse   //安装软件包

修改hosts文件

192.168.116.128 node1
192.168.116.130 node2
192.168.116.129 node3
192.168.116.131 node4

创建临时挂在点

mkdir -p /text/dis   //递归创建一个挂载点
mount.glusterfs node1:dis-vol /text/dis/         //挂载分布式卷

mkdir /text/strip
mount.glusterfs node1:stripe-vol /text/strip/     //挂载条带卷

mkdir /text/rep
mount.glusterfs node3:rep-vol /text/rep/          //挂载复制卷

mkdir /text/dis-str
mount.glusterfs node2:dis-stripe /text/dis-str/    //挂载分布式条带卷

mkdir /text/dis-rep
mount.glusterfs node4:dis-rep /text/dis-rep/        //挂载分布式复制卷
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!