理论+实验:Linux部署GFS分布式文件系统

目录

    • 一、GlusterFS概述
        • 1.1 GlusterFS概述-1
        • 1.2 GlusterFS概述-2
        • 1.3 GlusterFS概述-3
    • 二、GlusterFS工作原理
    • 三、GlusterFS的卷类型
        • 3.1 分布式卷
        • 3.2 条带卷-1
        • 3.3 条带卷-2
        • 3.4 复制卷-1
        • 3.5 复制卷-2
        • 3.6 分布式条带卷-1
        • 3.7 分布式条带卷-2
        • 3.8 分布式复制卷
    • 四、GlusterFS部署步骤
        • 4.1 GlusterFS部署-1
        • 4.2 GlusterFS部署-2
        • 4.3 GlusterFS部署-3
        • 4.4 GlusterFS部署-4
        • 4.5 GlusterFS部署-5
        • 4.6 GlusterFS部署-6
    • 五、GlusterFS实操部署

一、GlusterFS概述

1.1 GlusterFS概述-1

■ GlusterFS简介

  • 开源的分布式文件系统
  • 有存储服务器、客户端以及NFS/Samba 存储网关组成
  • 无元数据服务器
    在这里插入图片描述
    ■ GlusterFS特点
  • 扩展性和高性能
  • 高可用性
  • 全局统一命名空间
  • 弹性卷管理
  • 基于标准协议

1.2 GlusterFS概述-2

■ GlusterFS术语

  • Brick
  • Volume
  • FUSE
  • VFS
  • Glusterd

1.3 GlusterFS概述-3

■ 模块化堆栈式架构

  • 模块化、堆栈式的架构
  • 通过对模块的组合,实现复杂的功能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 条带卷-1

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

如图所示:从多个server中同时读取文件,效率提升
理论+实验:Linux部署GFS分布式文件系统_第1张图片

3.3 条带卷-2

■ 特点

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

■ 创建条带卷

  • 创建了一个名为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 复制卷-2

■ 创建复制卷

  • 创建名为rep-volume的复制卷,文件将同时存储两个副本,分别在Server1:/dir1和Server2:/dir2两个Brick中
# gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2

3.6 分布式条带卷-1

■ 分布式条带卷

  • 兼顾分布式卷和条带卷的功能
  • 主要用于大文件访问处理
  • 至少最少需要4台服务器
    在这里插入图片描述

3.7 分布式条带卷-2

■ 创建分布式条带卷

  • 创建了名为dis-stripe的分布式条带卷,配置分布式的条带卷时,卷中Brick所包含的存储服务器数必须是条带数的倍数(>=2倍)
# gluster volume create dis-stripe stripe 2 transport tcp server1:/dir1
server2:/dir2 server3:/dir3 server4:/dir4

3.8 分布式复制卷

■ 分布式复制卷

  • 兼顾分布式卷和复制卷的功能
  • 用于需要冗余的情况
    在这里插入图片描述
    ■ 创建分布式复制卷
  • 兼顾分布式卷和复制卷的功能
  • 用于需要冗余的情况

■ 创建分布式复制卷

  • 创建名为dis-rep的分布式条带卷,配置分布式复制卷时,卷中Brick所包含的存储服务器数必须是条带数的倍数(>=2倍)
# gluster volume create dis-rep replica 2 transport tcp server1:/dir1 server2;
ldir2 server3:/dir3 server4:/dir4

四、GlusterFS部署步骤

4.1 GlusterFS部署-1

■ 群集环境
理论+实验:Linux部署GFS分布式文件系统_第2张图片

■ 卷类型
理论+实验:Linux部署GFS分布式文件系统_第3张图片

4.2 GlusterFS部署-2

■ 设备列表
理论+实验:Linux部署GFS分布式文件系统_第4张图片

4.3 GlusterFS部署-3

■ 部署群集环境

  • 准备环境
  • 关闭防火墙和Selinux
  • 配置hosts文件
  • 安装软件
  • 启动GlusterFS
  • 添加节点
  • 查看集群状态

4.4 GlusterFS部署-4

■ 创建券

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

4.5 GlusterFS部署-5

■ 部署Glister客户端

  • 安装客户端软件
  • 创建挂载目录
  • 修改hosts文件
  • 挂载Gluster文件系统
  • 修改fstab配置文件

4.6 GlusterFS部署-6

■ 测试Gluster文件系统

  • 卷中写入文件
  • 查看文件分布
  • 破坏性测试

■ 其他的维护命令

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

五、GlusterFS实操部署

设备列表:
node1:20.0.0.3
node2:20.0.0.5
node3:20.0.0.6
node4:20.0.0.7
客户端:20.0.0.8

  • 开局必配操作,不然一定会出问题
四台都要做此操作!!!
[root@node1 ~]# systemctl stop firewalld         ###关闭防火墙
[root@node1 ~]# systemctl disable firewalld    ###关闭自启动
[root@node1 ~]# vim /etc/selinux/config         ###关闭核心防护
SELINUX=disabled        ###设置成disabled,一共三种模式。

Enforcing:强制模式。代表SELinux在运行中,且已经开始限制domain/type之间的验证关系
Permissive:宽容模式。代表SELinux在运行中,不过不会限制domain/type之间的验证关系,即使验证不正确,程仍可以对文件进行操作,不过如果验证不正确会发出警告
Disabled:关闭模式。SELinux并没有实际运行
  • 添加硬盘
把四台服务器,各加四块硬盘,算上自己本身的,每个服务器都有五块硬盘

[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
        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

  • 给脚本一个执行权限
[root@localhost ~]# chmod +x disk.sh   ###给脚本一个执行权限
  • 通过root用户远程拷贝到20.0.0.5、6、7主机上的根目录
[root@localhost ~]# scp disk.sh [email protected]:/root   
然后输入yes   输入密码Abc123(root密码)
[root@localhost ~]# scp disk.sh [email protected]:/root 
然后输入yes   输入密码Abc123(root密码)
[root@localhost ~]# scp disk.sh [email protected]:/root 
然后输入yes   输入密码Abc123(root密码)

  • 给硬盘分区格式化

[root@localhost ~]# ./disk.sh   ### 然后在四台服务器都执行该脚本
1) sdb
2) sdc
3) sdd
4) sde
5) quit
chose which disk you want to create:           //这里就输入1,然后在执行一次脚本在输入2,依次执行。
注意:每一个执行都要留一段时间,不然可能失败

[root@localhost ~]# df -Th   ###查看一下四块硬盘是否创建好


---------------------------------如果单个硬盘出现没做好,可以以下方法解决----------------------------------
[root@localhost ~]# mkfs -t xfs /dev/sdb1   ###格式化sdb1
[root@localhost ~]# mount  -a                      ###重新挂载
[root@localhost ~]# df -Th                            ###再检查一下
  • 设置四台服务器主机名,这样可以用主机名映射ip地址。
[root@localhost ~]# hostnamectl  set-hostname node1
[root@localhost ~]# hostnamectl  set-hostname node2
[root@localhost ~]# hostnamectl  set-hostname node3
[root@localhost ~]# hostnamectl  set-hostname node4
[root@localhost ~]# su        ### 每一个都要su刷新一下,这里就不过多写了
  • 设置hosts映射文件,四台都要这样映射。设置主机名为了简化等会的操作。
[root@node1 ~]# vim /etc/hosts
20.0.0.3 node1
20.0.0.5 node2
20.0.0.6 node3
20.0.0.7 node4
[root@node1 ~]# ping node4            ###可以测试一下,ping主机名,能ping通
  • yum仓库在我的windows电脑上,需要共享后挂载使用

找到本机yum源,进行共享操作
一、文件共享添加Everyone 用户指定读取权限
理论+实验:Linux部署GFS分布式文件系统_第5张图片
理论+实验:Linux部署GFS分布式文件系统_第6张图片
理论+实验:Linux部署GFS分布式文件系统_第7张图片

二、设置本地策略secpol.msc
win键加R 输入 secpol.msc,进入本地策略组
理论+实验:Linux部署GFS分布式文件系统_第8张图片
理论+实验:Linux部署GFS分布式文件系统_第9张图片
理论+实验:Linux部署GFS分布式文件系统_第10张图片
理论+实验:Linux部署GFS分布式文件系统_第11张图片
理论+实验:Linux部署GFS分布式文件系统_第12张图片

三、网络和共享中心》》共享选项》》把所有共享选项设置为允许(无密码保护共享)
理论+实验:Linux部署GFS分布式文件系统_第13张图片
理论+实验:Linux部署GFS分布式文件系统_第14张图片

  • 挂载宿主机的yum源
[root@node1 ~]# smbclient -L //192.168.10.2       ###查看一下宿主机的共享目录
---然后不用输入密码直接回车---
[root@node1 ~]# mkdir /abc                                   ###在node1创建一个abc目录
[root@node1 ~]# mount.cifs //192.168.10.2/gfsrepo  /abc     ###然后把刚刚的yum源挂载进去
  • 配置yum仓库,四台都要做相同的配置!!!
[root@node1 abc]# cd /etc/yum.repos.d/                     ###进入到etc/yum.repos.d/ 目录里
[root@node1 yum.repos.d]# mkdir  backup                 ###创建一个backup目录
[root@node1 yum.repos.d]# mv CentOs-*   backup/   ###把CentOs放到backup目录里
[root@node1 yum.repos.d]# vim GLFS.repo
[GLFS]
name=glfs
baseurl=file:///abc         ###这个目录要注意 http://mirror.centos.org/centos/$releasever/storage/$basearch/gluster-3.12/
gpgcheck=0
enabled=1
[root@node1 yum.repos.d]# yum clean all         ###清除缓存
[root@node1 yum.repos.d]# yum list                 ###重新加载
---------------------------如果不能启动就使用下面的办法------------------------------
用线网源!!!
[root@node1 yum.repos.d]# vim GLFS.repo
baseurl=file:///abc  改成 ==》》 http://mirror.centos.org/centos/$releasever/storage/$basearch/gluster-3.12/
[root@node1 yum.repos.d]# yum clean all
[root@node1 yum.repos.d]# yum makecache
[root@node1 yum.repos.d]# yum -y install glusterfs-server glusterfs glusterfs-fuse glusterfs-rdma
  • 安装环境包,四台都要安装
[root@node1 ~]# yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

[root@node1 yum.repos.d]# systemctl start glusterd.service    ###启动服务
[root@node1 yum.repos.d]# systemctl enable glusterd             ###开机自启
[root@node1 yum.repos.d]# systemctl status  glusterd             ###查看状态
  • 时间同步,四台都要做
[root@node1 yum.repos.d]# ntpdate ntp1.aliyun.com
  • 在任意一台主机上,添加入存储信任池
[root@node1 yum.repos.d]# gluster peer probe node2 
[root@node1 yum.repos.d]# gluster peer probe node3
[root@node1 yum.repos.d]# gluster peer probe node4
  • 查看所有节点
[root@node1 yum.repos.d]# gluster peer status
Number of Peers: 3

Hostname: node2
Uuid: 63f568a6-9f1a-47f7-8667-0893186ef99e
State: Peer in Cluster (Connected)

Hostname: node3
Uuid: b69de245-b692-46bc-8848-8db471f304b8
State: Peer in Cluster (Connected)

Hostname: node4
Uuid: 9f0decde-ba47-4537-a0f0-50464962d182
State: Peer in Cluster (Connected)

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

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

[root@node4 yum.repos.d]# gluster volume create dis-vol node1:/data/sdb1 node2:/data/sdb1 force  ###创建分布式卷,卷名叫dis-vol,用了node1:/data/sdb1和node2:/data/sdb1 

[root@node4 yum.repos.d]# gluster volume info dis-vol    ###查看详细信息和状态
Volume Name: dis-vol          ###名称
Type: Distribute                     ###分布式卷的类型
Volume ID: 5b75e4bd-d830-4e3f-9714-456261c276be  ###id,独一无二的
Status: Created                      ###Created(创建)状态不能使用
Snapshot Count: 0        
Xlator 1: BD
Capability 1: thin
Capability 2: offload_copy
Capability 3: offload_snapshot
Number of Bricks: 2               ###两个块组成
Transport-type: tcp                ###tcp协议
Bricks:
Brick1: node1:/data/sdb1      ###node1的sdb1
Brick1 VG: 
Brick2: node2:/data/sdb1      ###node2的sbd1
Brick2 VG: 
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
 
[root@node4 yum.repos.d]# gluster volume start dis-vol      ###开启
[root@node4 yum.repos.d]# gluster volume info dis-vol       ###再用这条查看状态就是Started
Status: Started
  • 条带卷
条带卷
根据偏移量将文件分成N块(N个条带节点),轮询的存储在每个Brick Server节点存储大文件时,性能尤为突出
不具备冗余性,类似Raid0

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

[root@node4 yum.repos.d]# gluster volume create stripe-vol stripe 2 node1:/data/sdc1 node2:/data/sdc1 force
[root@node4 yum.repos.d]# gluster volume info stripe-vol    ###查看详细信息和状态
[root@node4 yum.repos.d]# gluster volume start stripe-vol    ###开启
[root@node4 yum.repos.d]# gluster volume info stripe-vol     ###在查看详细信息和状态  
```bash

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

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

[root@node4 yum.repos.d]# gluster volume create rep-vol replica 2 node3:/data/sdb1 node4:/data/sdb1 force
[root@node4 yum.repos.d]# gluster volume info rep-vol   ###查看详细信息和状态
[root@node4 yum.repos.d]# gluster volume start rep-vol     ###开启
[root@node4 yum.repos.d]# gluster volume info rep-vol      ###在查看详细信息和状态  
  • 分布式条带卷
分布式条带卷
兼顾分布式卷和条带卷的功能主要用于大文件访问处理
至少最少需要4台服务器
[root@node4 yum.repos.d]# gluster volume create dis-stripe stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force

[root@node4 yum.repos.d]# gluster volume info dis-stripe    ###查看详细信息和状态
[root@node4 yum.repos.d]# gluster volume start dis-stripe     ###开启
[root@node4 yum.repos.d]# gluster volume info dis-stripe      ###在查看详细信息和状态  
  • 分布式复制卷
分布式复制卷
兼顾分布式卷和复制卷的功能
用于需要冗余的情况下

[root@node4 yum.repos.d]# gluster volume create dis-rep replica 2 node1:/data/sde1 node2:/data/sde1 node3:/data/sde1 node4:/data/sde1 force

[root@node4 yum.repos.d]# gluster volume info  dis-rep    ###查看详细信息和状态
[root@node4 yum.repos.d]# gluster volume start  dis-rep     ###开启
[root@node4 yum.repos.d]# gluster volume info  dis-rep      ###在查看详细信息和状态  


[root@node4 yum.repos.d]# gluster volume  list  ###查看一下有几个卷
dis-rep
dis-stripe
dis-vol
rep-vol
stripe-vol
  • 客户端的配置
#########开局必配操作,不然一定会出问题##########
[root@node1 ~]# systemctl stop firewalld         ###关闭防火墙
[root@node1 ~]# systemctl disable firewalld    ###关闭自启动
[root@node1 ~]# vim /etc/selinux/config         ###关闭核心防护
  • 挂载宿主机的yum源
[root@node1 ~]# smbclient -L //192.168.10.2       ###查看一下宿主机的共享目录
---然后不用输入密码直接回车---
[root@node1 ~]# mkdir /abc                                   ###在node1创建一个abc目录
[root@node1 ~]# mount.cifs //192.168.10.2/gfsrepo  /abc     ###然后把刚刚的yum源挂载进去

  • 配置yum仓库,四台都要做相同的配置!!!
[root@node1 abc]# cd /etc/yum.repos.d/                     ###进入到etc/yum.repos.d/ 目录里
[root@node1 yum.repos.d]# mkdir  backup                 ###创建一个backup目录
[root@node1 yum.repos.d]# mv CentOs-*   backup/   ###把CentOs放到backup目录里
[root@node1 yum.repos.d]# vim GLFS.repo
[GLFS]
name=glfs
baseurl=file:///abc         ###这个目录要注意
gpgcheck=0
enabled=1
[root@node1 yum.repos.d]# yum clean all         ###清除缓存
[root@node1 yum.repos.d]# yum list                 ###重新加载


[root@client yum.repos.d]# yum -y install glusterfs glusterfs-fuse    
  • 设置hosts映射
[root@client yum.repos.d]#  vim /etc/hosts
20.0.0.3 node1
20.0.0.5 node2
20.0.0.6 node3
20.0.0.7 node4
  • 临时挂载
[root@client yum.repos.d]# mkdir -p /test/dis         ### 挂载分布式卷
[root@client yum.repos.d]# mount.glusterfs node1:dis-vol /test/dis/

[root@client yum.repos.d]# mkdir -p /test/stripe
[root@client yum.repos.d]# mount.glusterfs node1:stripe-vol /test/stripe/    ### 挂载条带卷

[root@client yum.repos.d]# mkdir -p /test/rep
[root@client yum.repos.d]# mount.glusterfs node1:rep-vol /test/rep/    ### 挂载复制卷

[root@client yum.repos.d]# mkdir -p /test/dis-stripe
[root@client yum.repos.d]# mount.glusterfs node1:dis-stripe /test/dis-stripe/   ### 挂载分布条带卷

[root@client yum.repos.d]# mkdir -p /test/dis-rep
[root@client yum.repos.d]# mount.glusterfs node1:dis-rep /test/dis-rep/    ### 挂载分布复制卷

[root@client yum.repos.d]# df -Th      ####查看一下对不对
node1:dis-vol           fuse.glusterfs   40G   65M   40G   1% /test/dis
node1:stripe-vol        fuse.glusterfs   40G   65M   40G   1% /test/stripe
node1:rep-vol           fuse.glusterfs   20G   33M   20G   1% /test/rep
node1:dis-stripe        fuse.glusterfs   80G  130M   80G   1% /test/dis-stripe
node1:dis-rep           fuse.glusterfs   40G   65M   40G   1% /test/dis-rep
  • 测试
###创建5个40M的文件
[root@client yum.repos.d]# dd if=/dev/zero of=/demo1.log bs=1M count=40
[root@client yum.repos.d]# dd if=/dev/zero of=/demo2.log bs=1M count=40
[root@client yum.repos.d]# dd if=/dev/zero of=/demo3.log bs=1M count=40
[root@client yum.repos.d]# dd if=/dev/zero of=/demo4.log bs=1M count=40
[root@client yum.repos.d]# dd if=/dev/zero of=/demo5.log bs=1M count=40


###复制5个文件到不同的卷上
[root@client yum.repos.d]# cp /demo* /test/dis
[root@client yum.repos.d]# cp /demo* /test/stripe/
[root@client yum.repos.d]# cp /demo* /test/rep/
[root@client yum.repos.d]# cp /demo* /test/dis-stripe/
[root@client yum.repos.d]# cp /demo* /test/dis-rep/

###查看分布式卷
[root@node1 yum.repos.d]# ls -h /data/sdb1/
demo1.log  demo2.log  demo3.log  demo4.log

[root@node2 ~]# ls -h /data/sdb1/
demo5.log

###查看条带卷
[root@node1 yum.repos.d]# ls -lh /data/sdc1
total 100M
-rw-r--r-- 2 root root 20M Oct 27 06:29 demo1.log
-rw-r--r-- 2 root root 20M Oct 27 06:29 demo2.log
-rw-r--r-- 2 root root 20M Oct 27 06:29 demo3.log
-rw-r--r-- 2 root root 20M Oct 27 06:29 demo4.log
-rw-r--r-- 2 root root 20M Oct 27 06:29 demo5.log

[root@node2 ~]# ls -lh /data/sdc1
total 100M
-rw-r--r-- 2 root root 20M Oct 27 18:29 demo1.log
-rw-r--r-- 2 root root 20M Oct 27 18:29 demo2.log
-rw-r--r-- 2 root root 20M Oct 27 18:29 demo3.log
-rw-r--r-- 2 root root 20M Oct 27 18:29 demo4.log
-rw-r--r-- 2 root root 20M Oct 27 18:29 demo5.log

###查看复制卷
[root@node3 yum.repos.d]# ll -lh /data/sdb1
total 200M
-rw-r--r-- 2 root root 40M Oct 27 06:30 demo1.log
-rw-r--r-- 2 root root 40M Oct 27 06:30 demo2.log
-rw-r--r-- 2 root root 40M Oct 27 06:30 demo3.log
-rw-r--r-- 2 root root 40M Oct 27 06:30 demo4.log
-rw-r--r-- 2 root root 40M Oct 27 06:30 demo5.log

[root@node4 yum.repos.d]# ll -lh /data/sdb1
总用量 200M
-rw-r--r--. 2 root root 40M 10月 27 06:30 demo1.log
-rw-r--r--. 2 root root 40M 10月 27 06:30 demo2.log
-rw-r--r--. 2 root root 40M 10月 27 06:30 demo3.log
-rw-r--r--. 2 root root 40M 10月 27 06:30 demo4.log
-rw-r--r--. 2 root root 40M 10月 27 06:30 demo5.log

###查看分布式复制卷
[root@node1 yum.repos.d]# ls -lh /data/sde1
total 160M
-rw-r--r-- 2 root root 40M Oct 27 06:30 demo1.log
-rw-r--r-- 2 root root 40M Oct 27 06:30 demo2.log
-rw-r--r-- 2 root root 40M Oct 27 06:30 demo3.log
-rw-r--r-- 2 root root 40M Oct 27 06:30 demo4.log

[root@node2 ~]# ls -lh /data/sde1
total 160M
-rw-r--r-- 2 root root 40M Oct 27 18:30 demo1.log
-rw-r--r-- 2 root root 40M Oct 27 18:30 demo2.log
-rw-r--r-- 2 root root 40M Oct 27 18:30 demo3.log
-rw-r--r-- 2 root root 40M Oct 27 18:30 demo4.log
 

###查看分布式条带卷
[root@node1 yum.repos.d]# ls -lh /data/sdd1
total 80M
-rw-r--r-- 2 root root 20M Oct 27 06:30 demo1.log
-rw-r--r-- 2 root root 20M Oct 27 06:30 demo2.log
-rw-r--r-- 2 root root 20M Oct 27 06:30 demo3.log
-rw-r--r-- 2 root root 20M Oct 27 06:30 demo4.log

[root@node2 ~]# ls -lh /data/sdd1
total 80M
-rw-r--r-- 2 root root 20M Oct 27 18:30 demo1.log
-rw-r--r-- 2 root root 20M Oct 27 18:30 demo2.log
-rw-r--r-- 2 root root 20M Oct 27 18:30 demo3.log
-rw-r--r-- 2 root root 20M Oct 27 18:30 demo4.log
  • 破坏测试
关闭node1服务器观察结果
[root@node1 yum.repos.d]# init 0

-------在客户端---------
[root@client ~]# cd /test/
[root@client test]# ls           
dis  dis-rep  dis-stripe  rep  stripe

[root@client test]# ls dis    ###查看一下分布式卷,只有demo5了
demo5.log

[root@client test]# ls stripe  ###查看条带卷,不能查看了
ls: cannot access stripe: Transport endpoint is not connected


[root@client test]# ls dis-stripe/  ###查看分布式条带卷,只能看demo5了
demo5.log

[root@client test]# ls dis-rep/   ###查看分布式复制卷,完整
demo1.log  demo2.log  demo3.log  demo4.log  demo5.log





-----------------------------------------删除卷----------------------------------------
[root@node3 yum.repos.d]# gluster volume stop rep-vol      ###要先stop
Stopping volume will make its data inaccessible. Do you want to continue? (y/n)y
volume stop: rep-vol: success

[rootnode3 yum.repos.d]# gluster volume list
dis-rep
dis-stripe
dis-vol
rep-vol
stripe-vol

//注意:删除卷时,信任池中不能有主机处于拓机状态,否则删除不成功(只有开启状态才能删除)
[root@node3 yum.repos.d]# gluster volume delete rep-vol
Deleting volume will erase all information about the volume. Do you want to continue?(y/n)y
volume delete: rep-vol: success

[root@node3 yum.repos.d]# gluster volume list
dis-rep
dis-stripe
dis-vol
stripe-vol




-----------------------------------------访问控制----------------------------------------
//仅拒绝
[root@node1 yum.repos.d]# gluster volume set dis-vol auth.reject 192.168.10.20
volume set: success

//仅允许
[root@node1 yum.repos.d]# gluster volume set dis-vol auth.allow 192.168.10.3
volume set: success

以上实验遇到的问题:

yum -y install glusterfs-server glusterfs glusterfs-fuse glusterfs-rdma
安装上面的环境工具的时候,出现报错
导致glusterfd无法启动!
在这里插入图片描述
解决办法:
用了线网源解决了

[root@node1 yum.repos.d]# vim GLFS.repo
[GLFS]
name=glfs
baseurl=http://mirror.centos.org/centos/ r e l e a s e v e r / s t o r a g e / releasever/storage/ releasever/storage/basearch/gluster-3.12/ ###把这里改成了线网源地址
gpgcheck=0
enabled=1

原创不易,请点个赞吧!

你可能感兴趣的:(分布式文件系统与企业级应用,1024程序员节,linux,分布式)