GFS分布式文件系统

一、GlusterFS概述:

1、GlusterFS简介:

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

2、GlusterFS特点:

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

3、GlusterFS术语:

  • Brick (存储块)
  • Volume
  • FUSE (内核模块)
  • VFS
  • Glusterd

4、模块化堆栈式架构:

  • 模块化、堆栈式的架构
  • 通过对模块的组合,实现复杂的功能
    在这里插入图片描述

二、GlusterFS工作原理:

群集通讯:rdma
gluster —vfs–服务-客户机 --命令
gluster-server —服务端
fuse -内核模块 -服务–客户
在这里插入图片描述

弹性HASH算法:

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

三、GlusterFS的卷类型:

  • 分布式卷
  • 条带卷
  • 复制卷
  • 分布式条带卷
  • 分布式复制卷
  • 条带复制卷
  • 分布式条带复制卷

1、分布式卷:

  • 没有对文件进行分块处理
  • 通过扩展文件属性保存HASH值
  • 支持的底层文件系统有EXT3、EXT4、ZFS、XFS等

特点:

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

在这里插入图片描述
2、条带卷:

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

特点:

  • 数据被分割成更小块分布到块服务器群中的不同条带区
  • 分布减少了负载且更小的文件加速了存取的速度
  • 没有数据冗余
    在这里插入图片描述

3、复制卷:

  • 同一文件保存一份或多分副本
  • 因为要保存副本,所以磁盘利用率较低
  • 若多个节点上的存储空间不一致,将按照木桶效应取最
  • 低节点的容量作为该卷的总容量

特点

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

在这里插入图片描述
4、分布式条带卷:

  • 兼顾分布式卷和条带卷的功能
  • 主要用于大文件访问处理
  • 至少最少需要4台服务器
    在这里插入图片描述5、分布式复制卷(银行多用)
  • 兼顾分布式卷和复制卷的功能
  • 用于需要冗余的情况
    在这里插入图片描述
四台机子都有的操作:
systemctl stop firewalled.service 
setenforce 0
将每台机子上添加4个20G的硬盘,建立磁盘节点群集:
fdisk -l            
            
vim /etc/hosts
 14.0.0.14 node1
 14.0.0.15 node2
 14.0.0.16 node3
 14.0.0.17 node4

scp /etc/hosts root@14.0.0.15:/etc/hosts    16 17 

ping node 1 2 3 4      ##测试

将磁盘分区及挂载:
cd /opt/
vim disk.sh
#! /bin/bash
echo "the disks exit list:"
fdisk -l | grep '磁盘 /dev/sd[a-z]'
echo "==========================================="
PS3="chose which disk you want to ceate:"
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
chmod +x disk.sh
scp disk.sh root@14.0.0.15:/opt     将脚本输送给就集群的其他的节点,其他的节点同样的操作

每台机子安装glusterd软件:
yum -y install centos-release-gluster
yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
systemctl start glusterd.service
systemctl enable glusterd.service
systemctl status glusterd.service                runing 

ntpdate ntp1.aliyun.com

在14上:node1
gluster peer probe node2
gluster peer probe node3
gluster peer probe node4
在15上:node2
gluster peer probe node1
gluster peer probe node3
gluster peer probe node4
在16上:node3
gluster peer probe node1
gluster peer probe node2
gluster peer probe node4
在17上:node4
gluster peer probe node1
gluster peer probe node2
gluster peer probe node3

gluster peer status   ##查看池子里面的状况!


实验1:分布卷 20+20  (整块文件单位随机分散存储)
gluster volume create dis-vol node1:/data/sdb1 node2:/data/sdb1 force
gluster volume list                     查看卷型
gluster volume info dis-vol       查看卷信息
gluster volume start dis-vol      开启卷功能   才能用
gluster volume stop dis-vol      停止卷功能
gluster volume delete dis-vol    删除卷功能
在客户机上:
mkdir -p /test/dis
mount.glusterfs node2:dis-vol /test/dis
dd if=/dev/zero of=/demo1.log bs=1M count=40    每个文件40m
dd if=/dev/zero of=/demo2.log bs=1M count=40
dd if=/dev/zero of=/demo3.log bs=1M count=40
dd if=/dev/zero of=/demo4.log bs=1Mcount= 40
dd if=/dev/zero of=/demo5.log bs=1M count=40
cp demo* /test/dis

实验2:条带卷(每个块都存储不同的东西 20+20 )用两块磁盘存储,整块数据分两开存储
gluster volume create stripe-vol stripe 2 node1:/data/sdc1 node2:/data/sdc1 force
gluster volume start stripe-vol
在客户机上:
mkdir /test/stripe-vol
mount.glusterfs node2:stripe-vol /test/stripe-vol/
cp demo* /test/stripe-vol/

实验3:复制卷(镜像卷)20+20=20(两边都是存储一样的数据)
gluster volume create rep-vol replica 2 node3:/data/sdb1 node4:/data/sdb1 force
gluster volume start rep-vol
在客户机上:
mkdir /test/rep-vol 
mount.glusterfs node2:rep-vol /test/rep-vol/
cp demo* /test/rep-vol/

实验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
在客户机上:
mkdir /test/dis-stripe
mount.glusterfs node2:dis-stripe /test/dis-stripe/
cp demo* /test/dis-stripe/

实验5:分布式复制卷(先随机分开,在镜像存储)
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
在客户机上:
cp demo* /test/rep-vol/
mkdir /test/dis-rep
mount.glusterfs node1:dis-rep /test/dis-rep/

破坏实验:

访问控制:
gluster volume set dis-vol auth.reject 192.168.10.100(要拒绝的IP地址)
gluster volume set dis-vol auth.allow 192.168.10.100(要拒绝的IP地址)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值