GFS分布式文件系统

一、GlusterFS概述

1-1、GlusterFS简介

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

1-2、GlusterFS特点

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

1-3、GlusterFS术语

Brick
Volume
FUSE
VFS
Glusterd

1-4、模块化堆栈式架构

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

二、GlusterFS工作原理

2-1、GlusterFS工作流程

在这里插入图片描述
Application: 客户端或应用程序通过GlusterFS的挂载点访问数据
VFS:linux系统内核通过VFS API收到请求并处理
FUSE:VFS将数据递交给FUSE内核文件系统,fuse文件系统则是将数据通过/dev/fuse设备文件递交给GlusterFS client端
GlusterFS client:GlusterFS clien收到数据后,cilent根据配置文件的配置对数据进行处理

2-2、弹性HASH算法

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

三、GlusterFS的卷类型

3-1、分布式卷

分布式卷
没有对文件进行分块处理
通过扩展文件属性保存HASH值
支持底层文件系统EXT3、EXT4、ZFS、XFS等
分布式卷的特点
文件分布在不同分服务器,不具备冗余性
更容易和廉价的扩展卷
单点故障会造成数据丢失
以来底层数据保护

3-2、条带卷

条带卷
根据偏移量将文件分成N块(N个条带节点),轮询的存储在每个Brick Server节点
存储大文件时,性能尤为突出
不具备冗余性,类似Raid0
条带卷特点
数据被分割成更小块分布到服务器群中的不同条带区
分布减少了负载且更小的文件加速了存储速度
没有数据冗余

3-3、复制卷

复制卷
同一文件保存一份或多份副本
因为要保存副本,所以磁盘利用率较低
若多个节点上的存储空间不一致,按照木桶效应取最低节点的容量作为该卷的总容量
复制卷特点
卷中所有服务器均保持一个完整副本
卷的副本数量可由客户创建的时候决定
至少有两个块服务器或更多服务器
具备冗余性

3-4、分布式条带卷

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

3-5、分布式复制卷

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

四、GlusterFS部署实验

4-1、基础环境配置

准备环境4台同一网段虚拟机,且添加4块磁盘
通过下面脚本对4块磁盘实现格式化、挂在、分区

Vi disk.sh
########
#!/bin/bash
echo  "进行磁盘创建,格式化,挂载"
fdisk -l |grep sd[b-z]
echo "------------------------------------"
read -p "你想选择上面那块磁盘挂载:" ci
case $ci  in
sda)
      echo "请选择数据盘挂载.."
      exit
        ;;
sd[b-z])
fdisk /dev/$ci <<EOF
n
p




w
EOF
#创建挂载目录
mkdir  -p  /data/${ci}1
ta=/data/${ci}1
#格式化磁盘
mkfs.xfs  /dev/${ci}1 &>/dev/null
#挂载磁盘
echo  "/dev/${ci}1  $ta  xfs   defaults  0 0 ">>/etc/fstab
mount -a
           ;;
quit)
      exit
      ;;
*)
    echo  "请选择正确的磁盘....重新尝试"
  ;;
esac

脚本不需要一个个复制粘贴,可通过命令远程复制到同一网段服务器,命令如下IP地址即目标IP地址

scp disk.sh root@192.168.100.12:/root

验证磁盘分区、挂载等

df -Th 查看磁盘挂载情况
disk -l 查看分区情况
vi /etc/fstab 查看挂载情况
mount -a 查看挂载格式是否有误,并提供刷新
mkfs -t xfs /dev/sdb1 将磁盘格式化(如果操作过快可能会导致挂载错误,这是需要格式化重新挂载)

将主机名更改为node1
hostnamectl set-hostname node1
vi /etc/hosts
在配置文件中添加如下,主要用来解析这些节点,免得后面敲IP地址太麻烦
192.168.100.11 node1
192.168.100.12 node2
192.168.100.13 node3
192.168.100.14 node4
可以通过ping主机名来验证解析是否成功

4-2、远程连接设置

将解压安装包共享
在这里插入图片描述
更改本地安全组
在这里插入图片描述
在这里插入图片描述
网络共享中心更改
在这里插入图片描述

4-3、软件安装及卷的创建

将安装包挂载到目录中

smbclient -L //192.168.100.1/来查看共享目录有哪些
mkdir /abc
mount.cifs //192.168.100.1/Users /abc 将共享目录挂载到新创建的abc目录下,使用Users是因为我那个gfs解压缩包放在那个下面
cd一层层进去,用pwd查看路径
cd /etc/yum.repos.d/
mv local.repo bakup/
vi GLFS.repo
[GLFS]
name=glfs
baseurl=file:///abc/jyf/Desktop/gfs
gpgcheck=0
enabled=1
~ 
yum clean all
yum list
yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma     
     
ntpdate ntp1.aliyun.com同步时间因为涉及到分布存储

gluster peer probe node4 把这些节点全部添加一个节点上
gluster peer status 查看节点状态

######分布式卷######
gluster volume create dis-vo1 node1:/data/sdb1 node2:/data/sdb1 force
######条带卷######
gluster volume create stripe-vo1 stripe 2 node1://data/sdc1 node2:/data/sdc2 force
######复制卷######
gluster volume create rep-vo1 replica 2 node3:/data/sdb1 node4:/data/sdb1 force
######分布式条带卷######
gluster volume create dis-stripe stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1
######分布式复制卷######
gluster volume create dis-rep replica 2 node1:/data/sde1 node2:/data/sde1 node3:/data/sde1

4-4、验证

再准备一台服务器验证用
基础配置与其他服务器一样,区别在yum安装时只需要安装两个
yum -y install glusterfs glusterfs-fuse
需要将之前四台节点信息加入hosts文件
vi /etc/hosts
192.168.100.11 node1
192.168.100.12 node2
192.168.100.13 node3
192.168.100.14 node4
把卷临时挂载
mkdir -p /test/rep
mount.glusterfs node3:rep-vo1 /test/rep/
其他卷也是如此操作

dd if=/dev/zero of=/demo1.log bs=1M count=40 创建测试文件

cp /demo* /test/dis
也一并复制到其他卷
通过cd进入,使用ll -h来查看是否复制成功

通过命令ls -lh /data/sdb1来查看

每次将不同机子执行init 0,在客户端查看卷是否在,从而验证不同卷对应的不同特性

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值