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
相关推荐
hzulwy1 小时前
Kafka基础理论
分布式·kafka
明达智控技术2 小时前
MR30分布式IO在全自动中药煎药机中的应用
分布式·物联网·自动化
jakeswang3 小时前
细说分布式ID
分布式
失散134 小时前
分布式专题——1.2 Redis7核心数据结构
java·数据结构·redis·分布式·架构
王中阳Go5 小时前
头一次见问这么多kafka的问题
分布式·kafka
boonya6 小时前
Kafka核心原理与常见面试问题解析
分布式·面试·kafka
KIDAKN7 小时前
RabbitMQ 重试机制 和 TTL
分布式·rabbitmq
JAVA学习通8 小时前
【RabbitMQ】----初识 RabbitMQ
分布式·rabbitmq
项目題供诗12 小时前
Hadoop(八)
大数据·hadoop·分布式
在未来等你12 小时前
Kafka面试精讲 Day 7:消息序列化与压缩策略
大数据·分布式·面试·kafka·消息队列