lusterFS 概述

GlusterFS简介

GlusterFS是一个开源的散布式文件体系。

由存储服务器、客户端以及NFS/Samba存储网关(可选,依据需求挑选运用)组成。

没有元数据服务器组件,这有助于提高整个体系的功用、可靠性和稳定性。

MFS(传统的散布式文件体系技能)

  • 传统的散布式文件体系大多经过元服务器来存储元数据,元数据包括存储节点上的目录信息、目录结构等。这样的规划在浏览目录时功率高,可是也存在一些缺点,例如单点毛病。一旦元数据服务器呈现毛病,即便节点具有再高的冗余性,整个存储体系也将崩溃。

GlusterFS:

  • 而Glusteres散布式文件体系是依据无元服务器的规划,数据横向扩展才能强,具有较高的可靠性及存储功率。(不存在元服务器单点毛病的问题)
  • GlusterFS一起也是Scale-Out(横向扩展)存储解决方案Gluster的核心,在存储数据方面具有强大的横向扩展才能,经过扩展能够支撑数PB存储容量和处理数千客户端。
  • GlusterFS支撑借助 TCP/IP 或 InfiniBandRDMA 网络(一种支撑多并发链接的技能,具有高带宽、低时延、高扩展性的特色)将物理涣散散布的存储资源会聚在一起,共同供给存储服务,并运用共同大局命名空间来办理数据。

命名空间:能够理解为目录,一个目录就是一个命名空间。同一个命名空间内不能存在2个相同称号的文件。

GlusterFS特色

●扩展性和高功用

GlusterFS利用两层特性来供给高容量存储解决方案。

(1)Scale-Out架构答应经过简略地增加存储节点的方法来提高存储容量和功用(磁盘、核算和I/O资源都能够独立增加),支撑10GbE和 InfiniBand等高速网络互联。

(2)Gluster弹性哈希(ElasticHash)解决了GlusterFS对元数据服务器的依靠,改善了单点毛病和功用瓶颈,真实完成了并行化数据拜访。GlusterFS选用弹性哈希算法在存储池中能够智能地定位任意数据分片(将数据分片存储在不同节点上),不需求检查索引或许向元数据服务器查询。

●高可用性

GlusterFS能够对文件进行自动仿制,如镜像或屡次仿制,然后确保数据总是能够拜访,乃至是在硬件毛病的情况下也能正常拜访。

当数据呈现不共同时,自我修正功用能够把数据恢复到正确的状况,数据的修正是以增量的方法在后台履行,简直不会产生功用负载。

GlusterFS能够支撑一切的存储,由于它没有规划自己的私有数据文件格局,而是选用操作体系中干流规范的磁盘文件体系(如EXT3、XFS等)来存储文件,因此数据能够运用传统拜访磁盘的方法被拜访。

●大局共同命名空间

散布式存储中,将一切节点的命名空间整合为共同命名空间,将整个体系的一切节点的存储容量组成一个大的虚拟存储池,供前端主机拜访这些节点完成数据读写操作。

●弹性卷办理

GlusterFS经过将数据储存在逻辑卷中,逻辑卷从逻辑存储池进行独立逻辑区分而得到。 逻辑存储池能够在线进行增加和移除,不会导致事务中断。逻辑卷能够依据需求在线增加和减缩,并能够在多个节点中完成负载均衡。

文件体系装备也能够实时在线进行更改并应用,然后能够适应工作负载条件变化或在线功用调优。

●依据规范协议

Gluster 存储服务支撑 NFS、CIFS、HTTP、FTP、SMB 及 Gluster原生协议,彻底与 POSIX 规范(可移植操作体系接口)兼容。

现有应用程序不需求做任何修正就能够对Gluster 中的数据进行拜访,也能够运用专用 API 进行拜访。

GlusterFS 术语

●Brick(存储块):

指可信主机池中由主机供给的用于物理存储的专用分区,是GlusterFS中的根本存储单元,一起也是可信存储池中服务器上对外供给的存储目录。

存储目录的格局由服务器和目录的绝对路径构成,表示方法为 SERVER:EXPORT,如 192.168.41.46:/data/mydir/。

●Volume(逻辑卷):

一个逻辑卷是一组 Brick 的集合。卷是数据存储的逻辑设备,类似于 LVM 中的逻辑卷。大部分 Gluster 办理操作是在卷上进行的。

●FUSE:

是一个内核模块,答应用户创立自己的文件体系,无须修正内核代码。

●VFS:

内核空间对用户空间供给的拜访磁盘的接口。

●Glusterd(后台办理进程):

在存储群会集的每个节点上都要运行。

模块化仓库式架构

GlusterFS 选用模块化、仓库式的架构。

经过对模块进行各种组合,即可完成复杂的功用。例如 Replicate 模块可完成 RAID1,Stripe 模块可完成 RAID0, 经过两者的组合可完成 RAID10 和 RAID01,一起获得更高的功用及可靠性。

GlusterFS 的工作流程

(1)客户端或应用程序经过 GlusterFS 的挂载点拜访数据。

(2)linux体系内核经过 VFS API 收到请求并处理。

(3)VFS 将数据递交给 FUSE 内核文件体系,并向体系注册一个实践的文件体系 FUSE,而 FUSE 文件体系则是将数据经过 /dev/fuse 设备文件递交给了 GlusterFS client 端。能够将 FUSE 文件体系理解为一个代理。

(4)GlusterFS client 收到数据后,client 依据装备文件的装备对数据进行处理。

(5)经过 GlusterFS client 处理后,经过网络将数据传递至远端的 GlusterFS Server,并且将数据写入到服务器存储设备上。

弹性 HASH 算法

弹性 HASH 算法是 Davies-Meyer 算法的详细完成,经过 HASH 算法能够得到一个 32 位的整数规模的 hash 值,假定逻辑卷中有 N 个存储单位 Brick,则 32 位的整数规模将被区分为 N 个连续的子空间,每个空间对应一个 Brick。

当用户或应用程序拜访某一个命名空间时,经过对该命名空间核算 HASH 值,依据该 HASH 值所对应的 32 位整数空间定位数据地点的 Brick。

弹性 HASH 算法的优点:

  • 确保数据均匀散布在每一个 Brick 中。
  • 解决了对元数据服务器的依靠,进而解决了单点毛病以及拜访瓶颈。

GlusterFS的卷类型

GlusterFS 支撑七种卷,即散布式卷、条带卷、仿制卷、散布式条带卷、散布式仿制卷、条带仿制卷和散布式条带仿制卷。

散布式卷 对文件进行存储

  • 文件经过HASH 算法散布到一切Brick Server上, 这种卷是GlusterFS 的默许卷;以文件为单位依据HASH 算法散列到不同的Brick,其实仅仅扩大了磁盘空间,如果有一块磁盘损坏,数据也将丢掉,归于文件级的RAID0,不具有容错才能。
  • 在该形式下,并没有对文件进行分块处理,文件直接存储在某个Server 节点上。
  • 由于直接运用本地文件体系进行文件存储,所以存取功率并没有提高,反而会由于网络通信的原因而有所降低。

只能提高存储容量,不具有容错才能,存储功率并没有提高。

散布式卷具有如下特色:

GFS分布式文件系统

原理:

File1 和 File2 寄存在Server1, 而File3寄存在Server2, 文件都是随机存储,一 个文件(如File1) 要么在Serverl 上,要么在Server2上,不能分块一起寄存在Server1和 Server2上

  • 文件散布在不同的服务器,不具有冗余性。
  • 更简单和廉价地扩展卷的大小。
  • 单点毛病会造成数据丢掉。
  • 依靠底层的数据维护。

创立散布式卷:

#创立一个名为dis-volume的散布式卷,文件将依据HASH散布在serverl:/dir1、server2:/dir2 和 server3:/dir3中。
gluster volume create dis-volume server1:/dir1 server2:/dir2 server3:/dir3
仿制代码

条带卷

类似 RAID0,文件被分成数据块并以轮询的方法散布到多个 Brick Server 上,文件存储以数据块为单位,支撑大文件存储, 文件越大,读取功率越高,可是不具有冗余性。

GFS分布式文件系统

原理:

File 被分割为 6 段,1、3、5 放在 Server1,2、4、6 放在 Server2。

条带卷特色:

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

创立条带卷:

#创立了一个名为stripe-volume的条带卷,文件将被分块轮询的存储在Server1:/dir1和Server2:/dir2两个Brick中。
gluster volume create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2
​
#注意:分片数量需求是brick的倍数。
仿制代码

仿制卷

将文件同步到多个 Brick 上,使其具有多个文件副本,归于文件级 RAID 1,具有容错才能。由于数据涣散在多个 Brick 中,所以读功用得到很大提高,但写功用下降。

仿制卷具有冗余性,即便一个节点损坏,也不影响数据的正常运用。但由于要保存副本,所以磁盘利用率较低。

GFS分布式文件系统

原理:

File1 一起存在 Server1 和 Server2,File2 也是如此,相当于 Server2 中的文件是 Server1 中文件的副本。

仿制卷特色:

  • 卷中一切的服务器均保存一个完好的副本。
  • 卷的副本数量可由客户创立的时分决议,但仿制数有必要等于卷中 Brick 所包括的存储服务器数。
  • 至少由两个块服务器或更多服务器。
  • 具有冗余性。

创立仿制卷:

#创立名为rep-volume的仿制卷,文件将一起存储两个副本,别离在Server1:/dir1和Server2:/dir2两个Brick中。
gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
​
#replica 2 :仿制数,一般要等于brick的数量。
#transport tcp :经过tcp协议进行传输。
仿制代码

散布式条带卷

Brick Server 数量是条带数(数据块散布的 Brick 数量)的倍数,兼具散布式卷和条带卷的特色。 首要用于大文件拜访处理,创立一个散布式条带卷最少需求 4 台服务器。brick数量需求是条带的倍数。

GFS分布式文件系统

原理:

  • File1 和 File2 经过散布式卷的功用别离定位到Server1和 Server2。
  • 在 Server1 中,File1 被分割成 4 段,其间 1、3 在 Server1 中的 exp1 目录中,2、4 在 Server1 中的 exp2 目录中。
  • 在 Server2 中,File2 也被分割成 4 段,其间 1、3 在 Server2 中的 exp3 目录中,2、4 在 Server2 中的 exp4 目录中。

创立散布式条带卷:

创立一个名为dis-stripe的散布式条带卷,装备散布式的条带卷时,卷中Brick所包括的存储服务器数有必要是条带数的倍数(>=2倍)。 Brick 的数量是 4(Server1:/dir1、Server2:/dir2、Server3:/dir3 和 Server4:/dir4),条带数为 2(stripe 2)。

gluster volume create dis-stripe stripe 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4
​
#文件先散布存储,之后再分块存储。
仿制代码
  • 如果brick数量和条带数共同,那就是一般的条带卷。
  • 如果brick数量是条带的2倍以上,就是散布式条带卷。

创立卷时,存储服务器的数量如果等于条带或仿制数,那么创立的是条带卷或许仿制卷;

如果存储服务器的数量是条带或仿制数的 2 倍乃至更多,那么将创立的是散布式条带卷或散布式仿制卷。

散布式仿制卷

Brick Server 数量是镜像数(数据副本数量)的倍数,兼具散布式卷和仿制卷的特色。首要用于需求冗余的情况下。

brick数量需求是仿制卷的n倍。

文件先做散布式存储(hash散列),之后做镜像。

GFS分布式文件系统

原理:

  • File1 和 File2 经过散布式卷的功用别离定位到 Server1 和 Server2。
  • 在寄存 File1 时,File1 依据仿制卷的特性,将存在两个相同的副本,别离是 Server1 中的exp1 目录和 Server2 中的 exp2 目录。
  • 在寄存 File2 时,File2 依据仿制卷的特性,也将存在两个相同的副本,别离是 Server3 中的 exp3 目录和 Server4 中的 exp4 目录。

创立散布式仿制卷:

创立一个名为dis-rep的散布式仿制卷,装备散布式的仿制卷时,卷中Brick所包括的存储服务器数有必要是仿制数的倍数(>=2倍)。Brick 的数量是 4(Server1:/dir1、Server2:/dir2、Server3:/dir3 和 Server4:/dir4),仿制数为 2(replica 2)。

gluster volume create dis-rep replica 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4
仿制代码

条带仿制卷

类似 RAID 10,一起具有条带卷和仿制卷的特色。

散布式条带仿制卷

三种根本卷的复合卷,通常用于类 Map Reduce 应用。

布置 GlusterFS 群集

试验环境:

​
Node1节点:node1/192.168.20.10   磁盘:/dev/sdb1           挂载点:/data/sdb1
                                        /dev/sdc1                 /data/sdc1
                                        /dev/sdd1                 /data/sdd1
                                        /dev/sde1                 /data/sde1
 
Node2节点:node2/192.168.20.20       磁盘:/dev/sdb1          挂载点:/data/sdb1
                                         /dev/sdc1                /data/sdc1
                                         /dev/sdd1                /data/sdd1
                                         /dev/sde1                /data/sde1
 
Node3节点:node3/192.168.20.30       磁盘:/dev/sdb1          挂载点:/data/sdb1
                                         /dev/sdc1                /data/sdc1
                                         /dev/sdd1                /data/sdd1
                                         /dev/sde1                /data/sde1
 
Node4节点:node4/192.168.20.40     磁盘:/dev/sdb1          挂载点:/data/sdb1
                                         /dev/sdc1                /data/sdc1
                                         /dev/sdd1                /data/sdd1
                                         /dev/sde1                /data/sde1
客户端节点:192.168.20.50
仿制代码

试验规划:

node1-node4  /dev/sdb1  散布式卷
​
node1-node2  /dev/sdc1  条带卷
​
node3-node4  /dev/sdc1  仿制卷
​
node1-node4  /dev/sdd1  散布式条带卷
​
node1-node4  /dev/sde1  散布式仿制卷
仿制代码

试验准备:

四台机器1G1C,增加四块硬盘。之后刷新磁盘。

1)封闭防火墙和selinux

systemctl stop firewalld
setenforce 0
仿制代码

2)写一个脚本,批量分区、格局化、挂载

vim /opt/fdisk.sh
#!/bin/bash
NEWDEV=`ls /dev/sd* | grep -o 'sd[b-z]' | uniq`
for VAR in $NEWDEV
do
  echo -e "n\np\n\n\n\nw\n" | fdisk /dev/$VAR &> /dev/null
  mkfs.xfs /dev/${VAR}"1" &> /dev/null
  mkdir -p /data/${VAR}"1" &> /dev/null
  echo "/dev/${VAR}"1" /data/${VAR}"1" xfs defaults 0 0" >> /etc/fstab
done
mount -a &> /dev/null
​
chmod +x /opt/fdisk.sh
cd /opt/
./fdisk.sh
​
#先在一个节点上操作,之后经过scp指令将脚本传给其他主机,共同履行。
仿制代码

GFS分布式文件系统

3)修正主机名,装备/etc/hosts文件

#修正每台主机的主机名,便于办理
#以Node1节点为例:
hostnamectl set-hostname node1
su
​
#装备/etc/hosts文件,增加一切主机的映射联系
echo "192.168.20.10 node1" >> /etc/hosts
echo "192.168.20.20 node2" >> /etc/hosts
echo "192.168.20.30 node3" >> /etc/hosts
echo "192.168.20.40 node4" >> /etc/hosts
仿制代码

GFS分布式文件系统

4)装置、发动GlusterFS

#将gfsrepo 软件上传到/opt目录下
cd /etc/yum.repos.d/
mkdir repo.bak
mv *.repo repo.bak
​
vim glfs.repo
[glfs]
name=glfs
baseurl=file:///opt/gfsrepo
gpgcheck=0
enabled=1
​
yum clean all && yum makecache
​
#yum -y install centos-release-gluster   #如选用官方 YUM 源装置,能够直接指向互联网仓库
yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
​
systemctl start glusterd.service 
systemctl enable glusterd.service
systemctl status glusterd.service
仿制代码

GFS分布式文件系统

5)增加节点到存储信赖池中(在 node1 节点上操作)

增加集群信赖池,node1-node4 之间增加互信联系。将其他节点加入到我的存储池中。只要在一台Node节点上增加其它节点即可。

#只要在一台Node节点上增加其它节点即可
gluster peer probe node1
gluster peer probe node2
gluster peer probe node3
gluster peer probe node4
​
#在每个Node节点上检查群集状况
gluster peer status
仿制代码

创立卷

依据规划创立如下卷:

卷称号 卷类型 Brick
dis-volume 散布式卷 node1(/data/sdb1)、node2(/data/sdb1)、node3(/data/sdb1)、node4(/data/sdb1)
stripe-volum 条带卷 node1(/data/sdc1)、node2(/data/sdc1)
rep-volume 仿制卷 node3(/data/sdb1)、node4(/data/sdb1)
dis-stripe 散布式条带卷 node1(/data/sdd1)、node2(/data/sdd1)、node3(/data/sdd1)、node4(/data/sdd1)
dis-rep 散布式仿制卷 node1(/data/sde1)、node2(/data/sde1)、node3(/data/sde1)、node4(/data/sde1)

1)node1 – node4,/dev/sdb1,散布式卷

#创立散布式卷
gluster volume create dis-volume node1:/data/sdb1 node2:/data/sdb1 node3:/data/sdb1  node4:/data/sdb1 force
​
#检查卷列表
gluster volume list
​
#发动新建的散布式卷
gluster volume start dis-volume
​
#检查卷信息
gluster volume info dis-volume
仿制代码

2)node1 – node2,/dev/sdc1,条带卷

条带数要等于brick数量。

#指定类型为 stripe,数值为 2,且后边跟了 2Brick Server,所以创立的是条带卷
gluster volume create stripe-volume stripe 2 node1:/data/sdc1 node2:/data/sdc1 force
​
gluster volume start stripe-volume
gluster volume info stripe-volume
仿制代码

3)node3 – node4,/dev/sdc1,仿制卷

仿制数等于brick数量。

#指定类型为 replica,数值为 2,且后边跟了 2Brick Server,所以创立的是仿制卷
gluster volume create rep-volume replica 2 node3:/data/sdb1 node4:/data/sdb1 force
​
gluster volume start rep-volume
gluster volume info rep-volume
仿制代码

4)node1 – node4,/dev/sdd1,散布式条带卷

brick数量有必要是条带的2倍及以上。

#指定类型为 stripe,数值为 2,并且后边跟了 4Brick Server,是 2 的两倍,所以创立的是散布式条带卷
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)node1 – node4,/dev/sde1 散布式仿制卷

brick数量有必要是仿制数的2倍及以上。

#指定类型为 replica,数值为 2,并且后边跟了 4Brick Server,是 2 的两倍,所以创立的是散布式仿制卷
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 
​
#检查当前一切卷的列表
gluster volume list
仿制代码

布置 Gluster 客户端

1)装置客户端软件

#将gfsrepo 软件上传到/opt目下 
cd /etc/yum.repos.d/
mkdir repo.bak
mv *.repo repo.bak
​
vim glfs.repo
[glfs]
name=glfs
baseurl=file:///opt/gfsrepo
gpgcheck=0
enabled=1
​
yum clean all && yum makecache
​
yum -y install glusterfs glusterfs-fuse
仿制代码
仿制代码

2)装备 /etc/hosts 文件

echo "192.168.41.41 node1" >> /etc/hosts
echo "192.168.41.42 node2" >> /etc/hosts
echo "192.168.41.43 node3" >> /etc/hosts
echo "192.168.41.44 node4" >> /etc/hosts
仿制代码
仿制代码

3)创立挂载目录

mkdir -p /test/{dis,stripe,rep,dis_stripe,dis_rep}
ls /test
仿制代码

4)挂载 Gluster 文件体系

#临时挂载
mount.glusterfs node1:dis-volume /test/dis
mount.glusterfs node1:stripe-volume /test/stripe
mount.glusterfs node1:rep-volume /test/rep
mount.glusterfs node1:dis-stripe /test/dis_stripe
mount.glusterfs node1:dis-rep /test/dis_rep
​
df -Th
​
#永久挂载
vim /etc/fstab
node1:dis-volume        /test/dis               glusterfs       defaults,_netdev        0 0
node1:stripe-volume     /test/stripe            glusterfs       defaults,_netdev        0 0
node1:rep-volume        /test/rep               glusterfs       defaults,_netdev        0 0
node1:dis-stripe        /test/dis_stripe        glusterfs       defaults,_netdev        0 0
node1:dis-rep           /test/dis_rep           glusterfs       defaults,_netdev        0 0
仿制代码

测验 Gluster 文件体系

1)客户端操作,卷中写入文件

cd /opt
dd if=/dev/zero of=/opt/demo1.log bs=1M count=40
dd if=/dev/zero of=/opt/demo2.log bs=1M count=40
dd if=/dev/zero of=/opt/demo3.log bs=1M count=40
dd if=/dev/zero of=/opt/demo4.log bs=1M count=40
dd if=/dev/zero of=/opt/demo5.log bs=1M count=40
​
ls -lh /opt
​
cp /opt/demo* /test/dis
cp /opt/demo* /test/stripe/
cp /opt/demo* /test/rep/
cp /opt/demo* /test/dis_stripe/
cp /opt/demo* /test/dis_rep/
仿制代码

2)检查文件散布

#1、检查散布式文件散布
[root@node1 ~]# ls -lh /data/sdb1                   #数据没有被分片
总用量 160M
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo1.log
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo2.log
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo3.log
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo4.log
[root@node2 ~]# ll -h /data/sdb1
总用量 40M
-rw-r--r-- 2 root root 40M 11月 15 11:5811:58 demo5.log
​
#2、检查条带卷文件散布
[root@node1 ~]# ls -lh /data/sdc1                   #数据被分片50%,没副本,没冗余
总用量 101M
-rw-r--r-- 2 root root 20M 11月 15 11:58 demo1.log
-rw-r--r-- 2 root root 20M 11月 15 11:58 demo2.log
-rw-r--r-- 2 root root 20M 11月 15 11:58 demo3.log
-rw-r--r-- 2 root root 20M 11月 15 11:58 demo4.log
-rw-r--r-- 2 root root 20M 11月 15 11:58 demo5.log
​
[root@node2 ~]# ll -h /data/sdc1                    #数据被分片50%,没副本,没冗余
总用量 101M
-rw-r--r-- 2 root root 20M 11月 15 11:58 demo1.log
-rw-r--r-- 2 root root 20M 11月 15 11:58 demo2.log
-rw-r--r-- 2 root root 20M 11月 15 11:58 demo3.log
-rw-r--r-- 2 root root 20M 11月 15 11:58 demo4.log
-rw-r--r-- 2 root root 20M 11月 15 11:58 demo5.log
​
#3、检查仿制卷散布
[root@node3 ~]# ll -h /data/sdb1                    #数据没有被分片,有副本,有冗余   
总用量 201M
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo1.log
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo2.log
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo3.log
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo4.log
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo5.log
​
[root@node4 ~]# ll -h /data/sdb1                    #数据没有被分片,有副本,有冗余
总用量 201M
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo1.log
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo2.log
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo3.log
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo4.log
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo5.log
​
#4、检查散布式条带卷散布
[root@node1 ~]# ll -h /data/sdd1                    #数据被分片50%,没副本,没冗余
总用量 81M
-rw-r--r-- 2 root root 20M 11月 15 11:58 demo1.log
-rw-r--r-- 2 root root 20M 11月 15 11:58 demo2.log
-rw-r--r-- 2 root root 20M 11月 15 11:58 demo3.log
-rw-r--r-- 2 root root 20M 11月 15 11:58 demo4.log
​
[root@node2 ~]# ll -h /data/sdd1
总用量 81M
-rw-r--r-- 2 root root 20M 11月 15 11:58 demo1.log
-rw-r--r-- 2 root root 20M 11月 15 11:58 demo2.log
-rw-r--r-- 2 root root 20M 11月 15 11:58 demo3.log
-rw-r--r-- 2 root root 20M 11月 15 11:58 demo4.log
​
[root@node3 ~]# ll -h /data/sdd1
总用量 21M
-rw-r--r-- 2 root root 20M 11月 15 11:58 demo5.log
​
[root@node4 ~]# ll -h /data/sdd1
总用量 21M
-rw-r--r-- 2 root root 20M 11月 15 11:58 demo5.log
​
#5、检查散布式仿制卷散布                               #数据没有被分片,有副本,有冗余
[root@node1 ~]# ll -h /data/sde1
总用量 161M
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo1.log
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo2.log
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo3.log
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo4.log
​
[root@node2 ~]# ll -h /data/sde1
总用量 161M
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo1.log
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo2.log
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo3.log
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo4.log
​
[root@node3 ~]# ll -h /data/sde1
总用量 41M
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo5.log
​
[root@node4 ~]# ll -h /data/sde1
总用量 41M
-rw-r--r-- 2 root root 40M 11月 15 11:58 demo5.log
仿制代码

破坏性测验

#1、挂起 node2 节点或许封闭glusterd服务来模仿毛病
[root@node2 ~]# systemctl stop glusterd.service
​
#2、在客户端上检查文件是否正常
#散布式卷数据检查
[root@localhost test]# ll /test/dis/        #在客户机上发现少了demo5.log文件,这个是在node2上的
总用量 163840
-rw-r--r-- 1 root root 41943040 11月 15 11:58 demo1.log
-rw-r--r-- 1 root root 41943040 11月 15 11:58 demo2.log
-rw-r--r-- 1 root root 41943040 11月 15 11:58 demo3.log
-rw-r--r-- 1 root root 41943040 11月 15 11:58 demo4.log
​
#条带卷
[root@localhost test]# cd /test/stripe/        #无法拜访,条带卷不具有冗余性
[root@localhost stripe]# ll
总用量 0
​
#散布式条带卷
[root@localhost test]# ll /test/dis_stripe/    #无法拜访,散布条带卷不具有冗余性
总用量 40960
-rw-r--r-- 1 root root 41943040 11月 15 11:58 demo5.log
​
#散布式仿制卷
[root@localhost test]# ll /test/dis_rep/       #能够拜访,散布式仿制卷具有冗余性
总用量 204800
-rw-r--r-- 1 root root 41943040 11月 15 11:58 demo1.log
-rw-r--r-- 1 root root 41943040 11月 15 11:58 demo2.log
-rw-r--r-- 1 root root 41943040 11月 15 11:58 demo3.log
-rw-r--r-- 1 root root 41943040 11月 15 11:58 demo4.log
-rw-r--r-- 1 root root 41943040 11月 15 11:58 demo5.log
​
​
#挂起 node2 和 node4 节点,在客户端上检查文件是否正常
#测验仿制卷是否正常
[root@localhost rep]# ls -l /test/rep/        #在客户机上测验正常,数据有
总用量 204800
-rw-r--r-- 1 root root 41943040 11月 15 11:58 demo1.log
-rw-r--r-- 1 root root 41943040 11月 15 11:58 demo2.log
-rw-r--r-- 1 root root 41943040 11月 15 11:58 demo3.log
-rw-r--r-- 1 root root 41943040 11月 15 11:58 demo4.log
-rw-r--r-- 1 root root 41943040 11月 15 11:58 demo5.log
​
#测验散布式条卷是否正常
[root@localhost dis_stripe]# ll /test/dis_stripe/       #在客户机上测验没有数据 
总用量 0
​
#测验散布式仿制卷是否正常
[root@localhost dis_rep]# ll /test/dis_rep/     #在客户机上测验正常,有数据
总用量 204800
-rw-r--r-- 1 root root 41943040 11月 15 11:59 demo1.log
-rw-r--r-- 1 root root 41943040 11月 15 11:59 demo2.log
-rw-r--r-- 1 root root 41943040 11月 15 11:59 demo3.log
-rw-r--r-- 1 root root 41943040 11月 15 11:59 demo4.log
-rw-r--r-- 1 root root 41943040 11月 15 11:59 demo5.log
仿制代码

上述试验测验,凡是带仿制数据,比较而言,数据比较安全。

其他的维护指令

1.检查GlusterFs卷
gluster volume list
​
2.检查一切卷的信息
gluster volume info
​
3.检查一切卷的状况
gluster volume status
​
4.中止一个卷
gluster volume stop dis-stripe
​
5.删去一个卷,注意:删去卷时,需求先中止卷,且信赖池中不能有主机处于宕机状况,否则删去不成功
gluster volume delete dis-stripe
​
6.设置卷的拜访操控
#仅回绝
gluster volume set dis-rep auth.deny 192.168.20.40
​
#仅答应
gluster volume set dis-rep auth.allow 192.168.20.*  
#设置192.168.20.0网段的一切IP地址都能拜访dis-rep卷(散布式仿制卷)