GFS分布式文件系统 解析及操作 简单明了值得一看

一、GlusterFS概述

1.1 GlusterFS简介
  • 开源的分布式文件系统
  • 有存储服务器、客户端以及NFS/Samba 存储网关组成
  • 无元数据服务器
    在这里插入图片描述
1.2 GlusterFS特点
  • 扩展性和高性能
  • 高可用性
  • 全局统一命名空间
  • 弹性卷管理
  • 基于标准协议
1.3 GlusterFS术语
  • Brick
  • Volume
  • FUSE
  • VFS
  • Glusterd
1.4 模块化堆栈式架构
  • 模块化、堆栈式的架构
  • 通过对模块的组合,实现复杂的功能d
    在这里插入图片描述

二、GlusterFS工作原理

■ GlusterFS工作流程

  • 客户端或应用程序通过GlusterFS的挂载点访问数据
  • linux系统内核通过VFS API收到请求并处理
  • VFS将数据递交给FUSE内核文件系统,fuse文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS client端
  • GlusterFS client收到数据后,client根据配置文件的配置对数据进行处理
  • 通过网络将数据传递至远端的GlusterFS Server,并且将数据写入到服务器存储设备上

■ 弹性HASH算法

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

在这里插入图片描述

三、GlusterFS的卷类型

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

3.1 分布式卷

■ 分布式卷

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

如图所示:没有分块处理,文件只能存在一个server中,效率不提升
分布式卷,不是轮询存储,而是HASA算法随机存储
在这里插入图片描述
■ 分布式卷的特点

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

■ 创建分布式卷

  • 创建一个名为dis-volume的分布式卷,文件将根据HASH分布在server1:/dir1、server2:/dir2和server3:/dir3中
#gluster volume create dis-volume server1:/dir1 server2:/dir2server3:/dir3
3.2 条带卷

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

如图所示:从多个server中同时读取文件,效率提升
在这里插入图片描述

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

■ 创建条带卷

  • 创建了一个名为Stripe-volume的条带卷,文件将被分块轮询的存储在Server1:/dir1和Server2:/dir2两个Brick中
# gluster volume create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2
3.4 复制卷-1

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

3.5 创建复制卷
  • 创建名为rep-volume的复制卷,文件将同时存储两个副本,分别在Server1:/dir1和Server2:/dir2两个Brick中
# gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
3.6 分布式条带卷
  • 兼顾分布式卷和条带卷的功能
  • 主要用于大文件访问处理
  • 至少最少需要4台服务器
    在这里插入图片描述
3.7 创建分布式条带卷
  • 创建了名为dis-stripe的分布式条带卷,配置分布式的条带卷时,卷中Brick所包含的存储服务器数必须是条带数的倍数(>=2倍)
# gluster volume create dis-stripe stripe 2 transport tcp server1:/dir1
server2:/dir2 server3:/dir3 server4:/dir4
3.8 分布式复制卷
  • 兼顾分布式卷和复制卷的功能
  • 用于需要冗余的情况
    在这里插入图片描述
3.9 创建分布式复制卷
  • 兼顾分布式卷和复制卷的功能
  • 用于需要冗余的情况
  • 创建名为dis-rep的分布式条带卷,配置分布式复制卷时,卷中Brick所包含的存储服务器数必须是条带数的倍数(>=2倍)
# gluster volume create dis-rep replica 2 transport tcp server1:/dir1 server2;
ldir2 server3:/dir3 server4:/dir4

四、GlusterFS部署步骤

4.1 群集环境

在这里插入图片描述

■ 卷类型
在这里插入图片描述

4.2 设备列表

在这里插入图片描述

4.3 部署群集环境
  • 准备环境
  • 关闭防火墙和Selinux
  • 配置hosts文件
  • 安装软件
  • 启动GlusterFS
  • 添加节点
  • 查看集群状态
4.4 创建券
  • 创建分布式卷
  • 创建条带卷
  • 创建复制卷
  • 创建分布式条带卷
  • 创建分布式复制卷
4.5 部署Glister客户端
  • 安装客户端软件
  • 创建挂载目录
  • 修改hosts文件
  • 挂载Gluster文件系统
  • 修改fstab配置文件
4.6 测试Gluster文件系统
  • 卷中写入文件
  • 查看文件分布
  • 破坏性测试

■ 其他的维护命令

  • 查看GlusterFS卷
  • 停止/删除卷
  • 设置卷的访问控制

五、GlusterFS实例部署

设备列表:
node1:20.0.0.30
node2:20.0.0.31
node3:20.0.0.32
node4:20.0.0.33
客户端:20.0.0.35

四台都要做此操作
[root@node1 ~]# systemctl stop firewalld         ###关闭防火墙
[root@node1 ~]# systemctl disable firewalld    ###关闭自启动
[root@node1 ~]# vim /etc/selinux/config         ###关闭核心防护
SELINUX=disabled        ###设置成disabled,一共三种模式。
  • 添加硬盘
把四台服务器,各加四块硬盘,算上自己本身的,每个服务器都有五块硬盘

[root@localhost ~]# fdisk -l   ###用这条命令查看一下刚刚添加进去的硬盘,是否在
[root@localhost ~]# 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 systeml
        mkdir -p /data/${VAR}"1" &>/dev/null
  
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值