GFS分布式文件系统

一、GlusterFS概述

1.GlusterFS简介

GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBandRDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。

2.GlusterFS的特点

  • 扩展性和高性能

GlusterFS利用双重特性来提供几TB至数PB的高扩展存储解决方案。Scale-Out架构允许通过简单地增加资源来提高存储容量和性能,磁盘、计算和I/O资源都可以独立增加,支持10GbE和InfiniBand等高速网络互联。Gluster弹性哈希(ElasticHash)解除了GlusterFS对元数据服务器的需求,消除了单点故障和性能瓶颈,真正实现了并行化数据访问

  • 高可用性

全局统一命名空间将所有的存储资源聚集成一个单一的虚拟存储池,对用户和应用屏蔽了物理存储信息。存储可以根据生产环境中的需要进行弹性扩展或收缩,在多节点场景中,全局同意明明还可以给予不同节点做负载均衡,大大提高存取效率。

  • 全局统一命名空间

数据储存在逻辑卷中,逻辑卷可以从虚拟化的物理存储池进行独立逻辑划分而得到。存储服务器可以在线进行增加和移除,不会导致应用中断。逻辑卷可以在所有配置服务器中增长和缩减,可以在不同服务器迁移进行容量均衡,或者增加和移除系统,这些操作都可在线进行。文件系统配置更改也可以实时在线进行并应用,从而可以适应工作负载条件变化或在线性能调优。

  • 弹性卷管理

GlusterFS可以对文件进行自动复制,如镜像或多次复制,从而确保数据总是可以访问,甚至是在硬件故障的情况下也能正常访问。自我修复功能能够把数据恢复到正确的状态,而且修复是以增量的方式在后台执行,几乎不会产生性能负载。GlusterFS没有设计自己的私有数据文件格式,而是采用操作系统中主流标准的磁盘文件系统(如EXT3、ZFS)来存储文件,因此数据可以使用各种标准工具进行复制和访问。

  • 基于标准协议

Gluster存储服务支持 NFS、CIFS、HTTP、FTP、SMB 及 Gluster原生协议,完全与POSKX标准兼容。现有应用程序不需要做任何修改就可以对Gluster 中的数据进行访问,也可以使用专用 API进行访问(效率更高),这在公有云环境中部署 Gluster 时非常有用,Gluster 对云服务提供商专用 API进行抽象,然后提供标准 POSIX 接口。

3.GlusterFS术语

  • Brick(存储块):指可信主机池中由主机提供的用于物理存储的专用分区,是GlusterFS中的基本存储单元,同时也是可信存储池中服务器上对外提供的存储目录,存储目录的格式由服务器和目录的绝对路径构成,表示方法为SERVER:EXPORT,如 192.168.1.4:/ data/mydir/.

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

  • FUSE(Filesystem inUserspace):是一个内核模块,允许用户创建自己的文件系统,无须修改内核代码。

  • VFS:内核空间对用户空间提供的访问磁盘的接口。

  • Glusterd(后台管理进程):在存储群集中的每个节点上都要运行

  • Metadata:元数据,关于数据的数据,用于描述文件、目录等的信息。

  • POSIX:指可移植操作系统接口

4.模块化堆栈式架构

GlusterFS 采用模块化、堆栈式的架构,可以根据需求配置定制化的应用环境,如大文件存储、海量小文件存储、云存储、多传输协议应用等。通过对模块进行各种组合,即可实现复杂的功能。例如 Replicate 模块可实现 RAID1,Stripe模块可实现 RAID0,通过两者的组合可实现 RAID10 和 RAID01,同时获得更高的性能及可靠性。

GlusterFS 是模块化堆栈式的架构设计,模块称为Translator,是 GlusterFS 提供的一种强大机制,借助这种良好定义的接口可以高效简便地扩展文件系统的功能。

  • 服务端与客户端的设计高度模块化的同时模块接口是兼容的,同一个 translator 可同时在客户端和服务器加载。
  • GlusterFS 中所有的功能都是通过 translator 实现的,其中客户端要比服务端更复杂,所以功能的重点主要集中在客户端上。

二、GlusterFs 的工作原理

1.GFS的工作流程

(1)客户端或应用程序通过GFS的挂载点访问数据

(2)Linux系统内核通过VFS API收到请求并处理

(3)VFS将数据递交给FUSE内核文件系统,并向系统注册一个实际的文件系统FUSE,而FUSE文件系统则是将数据通过/dev。Fuse设备文件递交给了GFS的client端。可以将FUSE文件系统理解为一个代理。

(4)GFS client收到数据后,client根据配置文件对数据进行处理

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

2.弹性HASH算法

GlusterFS目前使用Davies-Meyer算法计算文件名hash值,获得一个32位整数。Davies-Meyer算法具有非常好的hash分布性,计算效率很高,假设逻辑卷中的存储单元Brick有N个,则32位整数空间被平均划分为N个连续子空间,每个空间分别映射到一个存储单元Brick,计算得到的32位hash值就会被投射到一个存储单元Brick。

yum -y install attr
setfattr -n user.md5sum -v fda1aa550d3cf82423d1b1ad1ae53a13 anaconda-ks.cfg
getfattr -d anaconda-ks.cfg

三、GlusterFS的卷类型

1.卷的类型

基本卷:
(1) distribute volume:分布式卷

文件通过hash算法分布到所有brick server上,这种卷是glusterfs的基础和最大特点;实只是扩大的磁盘空间,如果有一个磁盘坏了,对应的数据也丢失,文件级RAID 0,不具有容错能力。

(2) stripe volume:条带卷

类似RAID0,文件分成数据块以Round Robin方式分布到brick server上,并发粒度是数据块,支持超大文件,大文件性能高;

条带卷,在6的版本以后不在支持

(3) replica volume:复制卷

文件同步复制到多个brick上,文件级RAID 1,具有容错能力,写性能下降,读性能提升。

(4)分散卷

是基于ErasureCodes(纠错码)的一种新类型的Volume(3.6版本正式发布该特性),类似于RAID5/6----分散卷基于纠错码。存储大文件时,性能尤为突出

通过配置Redundancy(冗余)级别提高可靠性,在保证较高的可靠性同时,可以提升物理存储空间的利用率。

只允许坏一个

复合卷:
(5) distribute stripe volume:分布式条带卷

brickserver数量是条带数的倍数,兼具distribute和stripe卷的特点;

(6) distribute replica volume:分布式复制卷

brickserver数量是镜像数的倍数,兼具distribute和replica卷的特点,可以在2个或多个节点之间复制数据。

(7) stripe replica volume:条带复制卷

类似RAID 10

同时具有条带卷和复制卷的特点

(8) distribute stripe replicavolume:分布式条带复制卷

三种基本卷的复合卷

通常用于类Map Reduce应用

分布式分散卷:

分布式分散卷在分散的子卷上分发文件。

分布式分散卷等效于分布式复制卷,但是使用分散子卷而不是复制子卷

结合distibuted和dispersed的优点,HA+LB+可扩容,HA+LB+可扩容

四、部署GlusterFS群集

4.1部署群集环境

|---------------|--------|------|---------------------------------------------|
| 卷名称 | 卷类型 | 空间大小 | Brick |
| dis-volume | 分布式卷 | 12G | node1(/e6)、node2(/e6) |
| rep-volume | 复制卷 | 5G | node3(/d5)、node4(/d5) |
| stripe-volume | 分散卷 | 10G | node1(/b3)、node2(/b3)、node3(/b3)、node4(/b3) |
| dis-rep | 分布式复制卷 | 8G | node1(/c4)、node2(/c4)、node3(/c4)、node4(/c4) |
| dis-stripe | 分布式分散卷 | 12G | node1(/f7)、node2(/f7)、node3(/f7)、node4(/f7) |

|-----------------------------|---------------------------------|------------------------|------------------------------------------------------------------|---------------------|
| 操作系统 | 系统IP | 主机名 | 挂载磁盘 | 挂载目录 |
| Centos 7. 9 | 192.168. 10.101 | node1 | /dev/sdb(3G) /dev/sdc(4G) /dev/sdd(5G) /dev/sde(6G) /dev/sdf(7G) | /b3 /c4 /d5 /e6 /f7 |
| Centos 7. 9 | 192.168. 10.102 | node2 | /dev/sdb(3G) /dev/sdc(4G) /dev/sdd(5G) /dev/sde(6G) /dev/sdf(7G) | /b3 /c4 /d5 /e6 /f7 |
| Centos 7. 9 | 192.168. 10.103 | node3 | /dev/sdb(3G) /dev/sdc(4G) /dev/sdd(5G) /dev/sde(6G) /dev/sdf(7G) | /b3 /c4 /d5 /e6 /f7 |
| Centos 7. 9 | 192.168. 10.104 | node4 | /dev/sdb(3G) /dev/sdc(4G) /dev/sdd(5G) /dev/sde(6G) /dev/sdf(7G) | /b3 /c4 /d5 /e6 /f7 |
| Centos 7. 9 | 192.168. 10.105 | node 5 | /dev/sdb(3G) /dev/sdc(4G) /dev/sdd(5G) /dev/sde(6G) /dev/sdf(7G) | /b3 /c4 /d5 /e6 /f7 |
| Centos 7. 9 | 192.168. 10.106 | node 6 | /dev/sdb(3G) /dev/sdc(4G) /dev/sdd(5G) /dev/sde(6G) /dev/sdf(7G) | /b3 /c4 /d5 /e6 /f7 |
| Centos 7. 9 | 192.168.10.107 | client | | |

备注:

在glusterfs 6.1版本之后,不在支持stripe ,分布式条带卷不在多说,在官方的安装文档卷的介绍中已经把条带卷移除了,因为这个卷的可用性太差,只要一个brick挂掉,整个就挂掉,客户端就不能访问,显然不符合生产环境。

1.准备环境(以node1为例,其他节点步骤相同,请自行配置)

(1)添加磁盘

按照表中所示,为node节点添加相应数量和大小的磁盘,并重启系统

(2)为所有节点的新磁盘分区
用fdisk命令为每个磁盘分区,分区步骤略
[root@localhost ~]# hostname node1
[root@localhost ~]# bash

[root@localhost ~]# fdisk /dev/sdb
[root@localhost ~]# fdisk /dev/sdc
[root@localhost ~]# fdisk /dev/sdd
[root@localhost ~]# fdisk /dev/sde
[root@localhost ~]# fdisk /dev/sdf
(3)为每个节点的每个磁盘格式化
[root@localhost ~]# mkfs -t ext4 /dev/sdb1
[root@localhost ~]# mkfs -t ext4 /dev/sdc1
[root@localhost ~]# mkfs -t ext4 /dev/sdd1
[root@localhost ~]# mkfs -t ext4 /dev/sde1
[root@localhost ~]# mkfs -t ext4 /dev/sdf1
(4)创建挂载点
[root@localhost ~]# mkdir /b3
[root@localhost ~]# mkdir /c4
[root@localhost ~]# mkdir /d5
[root@localhost ~]# mkdir /e6
[root@localhost ~]# mkdir /f7
(5)挂载磁盘
[root@localhost ~]# mount /dev/sdb1 /b3
[root@localhost ~]# mount /dev/sdc1 /c4
[root@localhost ~]# mount /dev/sdd1 /d5
[root@localhost ~]# mount /dev/sde1 /e6
[root@localhost ~]# mount /dev/sde1 /f7

(6)修改fstab文件,使挂载永久生效

[root@localhost ~]# vi /etc/fstab
在末尾添加
/dev/sdb1       /b3     ext4     defaults  0 0
/dev/sdc1       /c4     ext4     defaults  0 0
/dev/sdd1       /d5     ext4     defaults  0 0
/dev/sde1       /e6     ext4     defaults  0 0
/dev/sdf1       /f7     ext4     defaults  0 0
(7)在所有节点上关闭防火墙和selinux
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
(8)在所有节点上修改hosts文件
[root@localhost ~]# cat <<EOF> /etc/hosts
192.168.10.101  node1
192.168.10.102  node2
192.168.10.103  node3
192.168.10.104  node4
192.168.10.105  node5
192.168.10.106  node6
EOF
(9)配置yum仓库
连接阿里的yum源
yum -y install wget
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

yum install centos-release-gluster

2.创建卷

[root@localhost ~]# yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

注释:

glusterfs:gluster客户端主程序

glusterfs-server:gluster服务端主程序

glusterfs-fuse:Filesystem Userspace是一个可加载的内核模块,其支持非特权用户创建自己的文件系统而不需要修改内核代码。通过在用户空间运行文件系统的代码通过FUSE代码与内核进行桥接。

glusterfs-rdma:为gluster提供远程直接内存访问,支持不通过双方的OS进行直接内存访问。

3.在所有节点上启动GFS

[root@localhost ~]# systemctl start glusterd.service 
[root@localhost ~]# systemctl enable glusterd.service 

4.添加节点(只在node1节点上)

[root@localhost ~]# gluster peer probe node1
peer probe: success. Probe on localhost not needed
[root@localhost ~]# gluster peer probe node2
peer probe: success. 
[root@localhost ~]# gluster peer probe node3
peer probe: success. 
[root@localhost ~]# gluster peer probe node4
peer probe: success. 
[root@localhost ~]# gluster peer probe node5
peer probe: success. 
[root@localhost ~]# gluster peer probe node6
peer probe: success. 

5.在每个节点上查看状态

[root@localhost ~]# gluster peer status
Number of Peers: 3

Hostname: node2
Uuid: 469be571-b52a-4a89-a30a-c3a770753b0e
State: Peer in Cluster (Connected)

Hostname: node3
Uuid: 24742939-afc6-4243-a8a8-1aa57a336128
State: Peer in Cluster (Connected)

Hostname: node4
Uuid: dbc703a3-1e22-42cd-bedf-da3541bce983
State: Peer in Cluster (Connected)

4.2创建卷

1.创建分布式卷(在node1上)

注释:默认创建的就是分布式卷
[root@localhost ~]# gluster volume create dist-volume node1:/e6 node2:/e6 force
[root@localhost ~]# gluster volume info dist-volume
 
Volume Name: dist-volume
Type: Distribute
Volume ID: 40946bd8-cc79-406a-be3c-5c03dd2a207e
Status: Created
Snapshot Count: 0
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: node1:/e6
Brick2: node2:/e6
Options Reconfigured:
transport.address-family: inet
nfs.disable: on

[root@localhost ~]# gluster volume start dist-volume

2.创建复制卷

注释:复制卷要求复制的数量和Brick Server的数量(node的数量)相同
[root@localhost ~]# gluster volume create rep-volume replica 2 node3:/d5 node4:/d5 force
[root@localhost ~]# gluster volume info rep-volume
 
Volume Name: rep-volume
Type: Replicate
Volume ID: b5d1afda-ab03-47a7-82b9-2786648a9b3a
Status: Created
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: node3:/d5
Brick2: node4:/d5
Options Reconfigured:
transport.address-family: inet
nfs.disable: on

[root@localhost ~]# gluster volume start rep-volume

3.分散卷

gluster volume create disp-volume disperse 3 redundancy 1 node1:/b3 node2:/b3 node3:/d3 force

[root@localhost ~]# gluster volume info disp-volume

[root@localhost ~]# gluster volume start disp-volume

备注:

用三个分区创建分散卷,允许一个分区失效

分散卷中每三个brick允许有一个失效(3*1或6*2)

是基于ErasureCodes(纠错码)的一种新类型的Volume(3.6版本正式发布该特性),类似于RAID5/6。通过配置Redundancy(冗余)级别提高可靠性,在保证较高的可靠性同时,可以提升物理存储空间的利用率。redundancy 必须大于0,并且bricks的总数必须大于2 *redundancy 。 这意味着dispersed卷必须至少包含3个bricks。类似raid5/raid6,防止单点故障(HA),提升IO性能(LB)。

disperse 3 redundancy 1:需要3个brick

disperse 4 redundancy 1:需要4个brick

每个分散卷至少3个brick,冗余级别最小为1(一个brick失效)

在创建Dispersed volume时,如若redundancy值设置为0,则Dispersed volume等同于分布式卷,若redundancy设置为#Bricks/2,则Dispersed volume等同于复制卷,因此,在创建Dispersed volume时,redundancy值的设定应遵循以下公式:

0< redundancy<#Bricks /2

(disperse-data)+redundancy=disperse

1)3 bricks,创建Dispersed Type为1*(2+1),存储磁盘空间利用率66.7%;

2)10bricks,创建Dispersed Type为2*(4+1)的卷,存储磁盘空间利用率为80%。

备注:

原来的条带卷,在6的版本以后不在支持

gluster volume create strip-volume stripe 2 node1:/d5 node2:/d5 force

4.创建分布式复制卷

注释:分布式复制卷要求Brick Server的数量必须是复制数的倍数(两倍或更高的倍数)
[root@localhost ~]# gluster volume create dist-rep replica 2 node1:/c4 node2:/c4 node3:/c4 node4:/c4 force
[root@localhost ~]# gluster volume info dist-rep
 
Volume Name: dis-rep
Type: Distributed-Replicate
Volume ID: 197055f7-37d8-419f-bb22-9f05c7e1a032
Status: Created
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: node1:/c4
Brick2: node2:/c4
Brick3: node3:/c4
Brick4: node4:/c4
Options Reconfigured:
transport.address-family: inet
nfs.disable: on

[root@localhost ~]# gluster volume start dist-rep

5.分布式分散卷

gluster volume create dist-disp disperse 3 redundancy 1 node1:/f7 node2:/f7 node3:/f7 node4:/f7 node5:/f7 node6:/f7 force

gluster volume start dist-disp

备注:

分布式分散卷需要用六个节点,每三个节点做一个分散卷,两组分散卷做成复制卷

4.3部署GFS客户端

1.安装客户端软件

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# yum -y install glusterfs glusterfs-fuse

注释:上面两个包centos7系统已经默认安装过了

2.创建挂载目录

[root@localhost ~]# mkdir -p /test/{dist,rep,disp,dist_and_rep,dist_and_disp}
[root@localhost ~]# ls /test

3.修改hosts文件

[root@localhost ~]# cat <<EOF> /etc/hosts
192.168.10.101  node1
192.168.10.102  node2
192.168.10.103  node3
192.168.10.104  node4
192.168.10.105  node5
192.168.10.106  node6
EOF

4.挂载Gluster文件系统

[root@localhost ~]# mount -t glusterfs node1:dist-volume /test/dist
[root@localhost ~]# mount -t glusterfs node1:rep-volume /test/rep
[root@localhost ~]# mount -t glusterfs node1:disp-volume /test/disp

[root@localhost ~]# mount -t glusterfs node1:dist-rep /test/dist_and_rep
[root@localhost ~]# mount -t glusterfs node1:dist-disp /test/dist_and_disp

[root@localhost ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
文件系统                    1K-块    已用      可用 已用% 挂载点
devtmpfs                  1918628       0   1918628    0% /dev
tmpfs                     1930632       0   1930632    0% /dev/shm
tmpfs                     1930632   20224   1910408    2% /run
tmpfs                     1930632       0   1930632    0% /sys/fs/cgroup
/dev/mapper/centos-root 203316228 6181216 197135012    4% /
/dev/loop0                4600876 4600876         0  100% /media/cdrom
/dev/sda2                 2086912  153676   1933236    8% /boot
tmpfs                      386128       0    386128    0% /run/user/0
node1:dist-volume         12121216  172504  11408120    2% /test/dist
node1:rep-volume          5028480   71844   4728444    2% /test/rep
node1:dis-rep             8123776  116168   7636752    2% /test/dis_and_rep
node1:disp-volume     6059552   81176   5691736    2% /test/disp
node1:dis-disp        28370912  416992  26704304    2% /test/dis_and_disp

5.修改fstab配置文件

[root@localhost ~]# vi /etc/fstab
在末尾添加:

node1:dist-volume     /test/dist             glusterfs  defaules,_netdev  0 0
node1:rep-volume     /test/rep             glusterfs  defaules,_netdev  0 0
node1:dist-rep        /test/dist_and_rep     glusterfs  defaules,_netdev  0 0
node1:disp-volume     /test/disp             glusterfs  defaules,_netdev  0 0
node1:disp-rep        /test/disp_and_rep     glusterfs  defaules,_netdev  0 0

四、在客户端测试Gluster文件系统

1.在卷中写入文件

(1)创建测试文件
dd if=/dev/zero of=/root/demo1.log bs=1M count=43
dd if=/dev/zero of=/root/demo2.log bs=1M count=43
dd if=/dev/zero of=/root/demo3.log bs=1M count=43
dd if=/dev/zero of=/root/demo4.log bs=1M count=43
dd if=/dev/zero of=/root/demo5.log bs=1M count=43
(2)卷中写入文件
[root@localhost ~]# cp demo* /test/dist/
[root@localhost ~]# cp demo* /test/rep/
[root@localhost ~]# cp demo* /test/dist_and_rep/

2.查看文件分布

(1)在node1和node2中查看分布式卷文件分布
node1:
[root@localhost ~]# ll -h /e6
总用量 173M
-rw-r--r--. 2 root root 43M 4月  17 22:06 demo1.log
-rw-r--r--. 2 root root 43M 4月  17 22:06 demo2.log
-rw-r--r--. 2 root root 43M 4月  17 22:06 demo3.log
-rw-r--r--. 2 root root 43M 4月  17 22:06 demo4.log

node2:
[root@localhost ~]# ll -h /e6
总用量 44M
-rw-r--r--. 2 root root 43M 4月  17 22:06 demo5.log
(2)在node3和node4中查看复制卷文件分布
node3:
[root@localhost ~]# ll -h /d5
总用量 216M
-rw-r--r--. 2 root root 43M 4月  17 22:06 demo1.log
-rw-r--r--. 2 root root 43M 4月  17 22:06 demo2.log
-rw-r--r--. 2 root root 43M 4月  17 22:06 demo3.log
-rw-r--r--. 2 root root 43M 4月  17 22:06 demo4.log
-rw-r--r--. 2 root root 43M 4月  17 22:06 demo5.log

node4:
[root@localhost ~]# ll -h /d5
总用量 216M
-rw-r--r--. 2 root root 43M 4月  17 22:06 demo1.log
-rw-r--r--. 2 root root 43M 4月  17 22:06 demo2.log
-rw-r--r--. 2 root root 43M 4月  17 22:06 demo3.log
-rw-r--r--. 2 root root 43M 4月  17 22:06 demo4.log
-rw-r--r--. 2 root root 43M 4月  17 22:06 demo5.log
(3)在node1、node2、node3、node4中查看分布式复制卷文件分布
node1:
[root@localhost ~]# ll -h /c4
总用量 173M
-rw-r--r--. 2 root root 43M 4月  17 22:06 demo1.log
-rw-r--r--. 2 root root 43M 4月  17 22:07 demo2.log
-rw-r--r--. 2 root root 43M 4月  17 22:07 demo3.log
-rw-r--r--. 2 root root 43M 4月  17 22:07 demo4.log


node2:
[root@localhost ~]# ll -h /c4
总用量 173M
-rw-r--r--. 2 root root 43M 4月  17 22:07 demo1.log
-rw-r--r--. 2 root root 43M 4月  17 22:07 demo2.log
-rw-r--r--. 2 root root 43M 4月  17 22:07 demo3.log
-rw-r--r--. 2 root root 43M 4月  17 22:07 demo4.log

node3:
[root@localhost ~]# ll -h /c4
总用量 44M
-rw-r--r--. 2 root root 43M 4月  17 22:07 demo5.log

node4:
[root@localhost ~]# ll -h /c4
总用量 44M
-rw-r--r--. 2 root root 43M 4月  17 22:07 demo5.log

五、破坏性测试

(1)挂起node2节点,在客户端上测试各个文件是否可以正常使用

(2)再挂起node4,在客户端继续测试各个文件的读取

六、其他维护命令

1.查看GFS卷

[root@localhost ~]# gluster volume list
dist-rep
dist-disp
dist-volume
rep-volume
disp-volume

[root@localhost ~]# gluster volume info
 
[root@localhost ~]# gluster volume status

2.停止删除卷

[root@localhost ~]# gluster volume stop dist-volume
Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y
volume stop: dis-stripe: success

[root@localhost ~]# gluster volume delete dist
Deleting volume will erase all information about the volume. Do you want to continue? (y/n) y
volume delete: dis-stripe: failed: Some of the peers are down

3.设置卷的访问控制

[root@localhost ~]# gluster volume set dist-rep auth.allow 192.168.1.*,10.1.1.*
volume set: success
相关推荐
运维&陈同学2 小时前
【zookeeper01】消息队列与微服务之zookeeper工作原理
运维·分布式·微服务·zookeeper·云原生·架构·消息队列
时差9532 小时前
Flink Standalone集群模式安装部署
大数据·分布式·flink·部署
菠萝咕噜肉i2 小时前
超详细:Redis分布式锁
数据库·redis·分布式·缓存·分布式锁
只因在人海中多看了你一眼5 小时前
分布式缓存 + 数据存储 + 消息队列知识体系
分布式·缓存
zhixingheyi_tian8 小时前
Spark 之 Aggregate
大数据·分布式·spark
求积分不加C9 小时前
-bash: ./kafka-topics.sh: No such file or directory--解决方案
分布式·kafka
nathan05299 小时前
javaer快速上手kafka
分布式·kafka
谭震鸿13 小时前
Zookeeper集群搭建Centos环境下
分布式·zookeeper·centos
天冬忘忧18 小时前
Kafka 工作流程解析:从 Broker 工作原理、节点的服役、退役、副本的生成到数据存储与读写优化
大数据·分布式·kafka
IT枫斗者1 天前
如何解决Java EasyExcel 导出报内存溢出
java·服务器·开发语言·网络·分布式·物联网