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 节点上。
- 由于直接运用本地文件体系进行文件存储,所以存取功率并没有提高,反而会由于网络通信的原因而有所降低。
只能提高存储容量,不具有容错才能,存储功率并没有提高。
散布式卷具有如下特色:
原理:
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 上,文件存储以数据块为单位,支撑大文件存储, 文件越大,读取功率越高,可是不具有冗余性。
原理:
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 中,所以读功用得到很大提高,但写功用下降。
仿制卷具有冗余性,即便一个节点损坏,也不影响数据的正常运用。但由于要保存副本,所以磁盘利用率较低。
原理:
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数量需求是条带的倍数。
原理:
- 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散列),之后做镜像。
原理:
- 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指令将脚本传给其他主机,共同履行。
仿制代码
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
仿制代码
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
仿制代码
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,且后边跟了 2 个 Brick 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,且后边跟了 2 个 Brick 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,并且后边跟了 4 个 Brick 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,并且后边跟了 4 个 Brick 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卷(散布式仿制卷)