GlusterFS部署

@TOGlusterFS

一.GlusterFS概述

1.1简介

1Glusterfs是一个开源的分布式文件系统,是Scale存储的核心,能够处理千数量级的客户端.在传统的解决 方案中Glusterfs能够灵活的结合物理的,虚拟的和云资源去体现高可用和企业级的性能存储. 2 3Glusterfs由存储服务器、客户端以及NFS/Samba存储网关组成,通过TCP/IP或InfiniBand RDMA网络链接将客户端的存储资块源聚集在一起,使用单一的全局命名空间来管理数据,磁盘和内存资源. 4 5Glusterfs基于堆叠的用户空间设计,可以为不同的工作负载提供高优的性能 6

1.2特点

11.扩展性和高性能 2 GlusterFS利用双重特性来提供几TB至数PB的高扩展存储解决方案。Scale-Out架构允许通过简单地增加资源来提高存储容量和性能,磁盘、计算和I/O资源都可以独立增加,支持10GbE和InfiniBand等高速网络互联。Gluster弹性哈希(Elastic Hash)解除了GlusterFS对元数据服务器的需求,消除了单点故障和性能瓶颈,真正实现了并行化数据访问 32.高可用性 4 GlusterFS可以对文件进行自动复制,如镜像或多次复制,从而确保数据总是可以访问,甚至是在硬件故障的情况下也能正常访问。自我修复功能能够把数据恢复到正确的状态,而且修复是以增量的方式在后台执行,几乎不会产生性能负载。GlusterFS没有设计自己的私有数据文件格式,而是采用操作系统中主流标准的磁盘文件系统(如EXT3ZFS)来存储文件,因此数据可以使用各种标准工具进行复制和访问。 53.全局统一命名空间 6 全局统一命名空间将磁盘和内存资源聚集成一个单一的虚拟存储池,对上层用户和应用屏蔽了底层的物理硬件。存储资源可以根据需要在虚拟存储池中进行弹性扩展,比如扩容或收缩。当存储虚拟机映像时,存储的虚拟映像文件没有数量限制,成千虚拟机均通过单一挂载点进行数据共享。虚拟机I/O可在命名空间内的所有服务器上自动进行负载均衡,消除了SAN环境中经常发生的访问热点和性能瓶颈问题。 74.弹性卷管理 8 数据储存在逻辑卷中,逻辑卷可以从虚拟化的物理存储池进行独立逻辑划分而得到。存储服务器可以在线进行增加和移除,不会导致应用中断。逻辑卷可以在所有配置服务器中增长和缩减,可以在不同服务器迁移进行容量均衡,或者增加和移除系统,这些操作都可在线进行。文件系统配置更改也可以实时在线进行并应用,从而可以适应工作负载条件变化或在线性能调优。 95.基于标准协议 10 Gluster存储服务支持NFS, CIFS, HTTP, FTP以及Gluster原生协议,完全与POSIX标准兼容。现有应用程序不需要作任何修改或使用专用API,就可以对Gluster中的数据进行访问。这在公有云环境中部署Gluster时非常有用,Gluster对云服务提供商专用API进行抽象,然后提供标准POSIX接口。

1.3GlusterFS术语

13.1Brick(砖) 2 Brick:GFS中的存储单元,通过是一个受信存储池中的服务器的一个导出目录。可以通过主机名和目录名来标识,如’SERVER:EXPORT33.2 Volume(卷) 4 一组bricks的逻辑集合(卷) 53.3 FUSE(内核模块) 6 Filesystem Userspace是一个可加载的内核模块,其支持非特权用户创建自己的文件系统而不需要修改内核代码。通过在用户空间运行文件系统的代码通过FUSE代码与内核进行桥接。 73.4 VFS(虚拟端口) 8 虚拟文件系统 93.5 Glusterd(服务,程序) 10 Gluster management daemon,要在trusted storage pool中所有的服务器上运行。 113.6Node 12 一个拥有若干brick的设备 133.7 Client 14 挂载了GFS卷的设备 153.8 RDMA 16 远程直接内存访问,支持不通过双方的OS进行直接内存访问。 173.9 RRDNS 18 round robin DNS是一种通过DNS轮转返回不同的设备以进行负载均衡的方法 193.10 Self-heal 20 用于后台运行检测复本卷中文件和目录的不一致性并解决这些不一致。 213.11 Split-brain 22 脑裂:就是产生了两个leader,导致集群行为不一致了 233.12Volfile 24 glusterfs进程的配置文件,通常位于/var/lib/glusterd/vols/volname

1.4模块化堆栈式架构

###在这里插入图片描述

11、模块化、堆栈式的架构 22、通过对模块的组合,实现复杂的功能 3GlusterFS采用模块化、堆栈式的架构,可通过灵活的配置支持高度定制化的应用环境,比如大文件存储、海量小文件存储、云存储、多传输协议应用等。每个功能以模块形式实现,然后以积木方式进行简单的组合,即可实现复杂的功能。比如,Replicate模块可实现RAID1,Stripe模块可实现RAID0,通过两者的组合可实现RAID10RAID01,同时获得高性能和高可靠性

二.GlusterFS工作原理

2.1弹性HASH算法

11、通过hash算法得到一个32位的整数 22、划分为N个连续的子空间,每个空间对应一个Brick 33、弹性hash算法的优点 4 保证数据平均分布在每一个Brick中 5 解决了对元数据服务器的依赖,进而解决了单点故障以及访问瓶颈

2.1GlusterFS工作模式

在这里插入图片描述

1 Application:客户端或应用程序通过GlusterFSync的挂载点访问数据 2VFS:linux系统内核通过VFS API收到请求并处理 3FUSEVFS 将数据递交给FUSE内核文件系统,fuse文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS client端 4GlusterFS Client ; 通过网络将数据传递至远端的GlusterFS Server,并且写入到服务器存储设备上

三、GlusterFS的卷类型

分布式卷

条形卷

复制卷

分布式条带卷

分布式复制卷

条带复制卷

分布式条带复制卷

3.1、分布式卷

11、没有对文件进行分块处理 22、通过扩展文件属性保存hash值 33、支持的底层文件系统有ext4、zfs、xfs等 44、分布式券的特点 5文件分布在不同的服务器,不具备冗余性 6可以灵活的扩展卷的大小 7单点故障会造成数据丢失 8依赖底层的数据保护

创建分布式卷
创建一个名为dis-vol的分布式卷,文件将根据hash分布在node1:/tat1/sdb node2:/tat2/sdb中

gluster volume create dis-volume node1:/tat/sdb1 node2:/tat/sdb1 force

3.2、条形卷

11、根据偏移量将文件分成N块(N个条带节点),轮询的存储在每个Brick Server节点 22、存储大文件时,性能尤为突出 33、不具备冗余性,类似Raid0 44、特点 5数据被分割成更小块分布到块服务器中的不同条带区 6分布减少了负载且更小的文件加速了存取的速度 7没有数据冗余 创建条带卷

创建条带卷
创建了一个名为stripe-vol的条带卷,文件将被分块轮询的存储在node1:/tat/sdc node2:/tat/sdc中

1gluster volume create stripe-vol stripe 2 transport tcp node1:/tat/sdc node2:/tat/sdc 2(transport不指明时默认是RDMA3

3.3复制卷

11、同一个文件保存一份或多份副本 22、因为要保存副本,所以磁盘利用率较低 33、若多个节点上的存储空间不一致,将按照木桶效应取最低节点的容量作为该卷的总容量 44、特点 5卷中所有的服务器均保存一个完整的副本 6卷的副本数量可由客户创建的时候决定 7至少有两个块服务器或更多服务器 8具备冗余性

创建复制卷

创建名为rep-vol的复制卷,文件将同时存储两个副本,分别在node3:/tat/sdb node4:/tat/sdb两个Brick中

[root@node1 ~]# gluster volume create rep-vol replica 2 node3:/tat/sdb node4:/tat/sdb force

3.4分布式条带卷

11、兼顾分布式卷和条带卷的功能 22、主要用于大文件访问处理 33、最少需要4台服务器 4 5 6[root@node1 ~]# gluster volume create dis-stripe stripe 2 node1:/tat/sdd node2:/at/sdd node3:/tat/sdd node4:/tat/sdd force

3.5分布式复制卷

11、兼顾分布式卷和复制卷的功能 22、用于需要冗余的情况 33、创建分布式复制卷 4 5 6[root@node1 ~]# gluster volume create dis-rep replica 2 node1:/tat/sde node2:/tat/sde node3:/tat/sde node4:/tat/sde force

四、部署GlusterFS卷

4.1、环境

主机名

系统ip

添加磁盘并格式化

每个磁盘挂载点

node1

192.168.106.170

/dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1

/tat/sdb, /tat/sdc, /tat/sdd, /tat/sde

node2

192.168.106.180

/dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1

/tat/sdb, /tat/sdc, /tat/sdd, /tat/sde

node3

192.168.106.190

/dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1

/tat/sdb, /tat/sdc, /tat/sdd, /tat/sde

node4

192.168.106.200

/dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1

/tat/sdb, /tat/sdc, /tat/sdd, /tat/sde

client

192.168.106.160

每台设备上添加好磁盘

1[root@node4 ~]# vi fdisk.sh 2[root@node4 ~]# chmod +x fdisk.sh 3[root@node4 ~]# ./fdisk.sh 4#!/bin/bash 5for i in {b,c,d,e} 6do 7 echo "n 8 p 9 1 10 11 12 w" | fdisk /dev/sd$i 13 mkdir -p /tat/sd$i 14 mkfs.xfs /dev/sd${i}1 15 cat>>/etc/fstab<<EOF 16 /dev/sd${i}1 /tat/sd$i xfs defaults 0 0 17EOF 18 19done 20mount -a 21df -Th

4.2 部署node节点

1.关闭防火墙,关闭核心防护(每台都需要改)

1[root@server1 ~]# systemctl stop firewalld.service 2[root@server1 ~]# setenforce 0 3[root@server1 ~]# systemctl disable firewalld.service 4[root@server1 ~]# sed -i '/SELINUX/s/SELINUX=enforcing/SELINUX=disable/g' /etc/selinux/config

2.为四台节点修改主机名,添加主机名解析到本地hosts文件中 (每台都需要改,包括客户机)

1[root@localhost ~]# hostnamectl set-hostname node1 2[root@localhost ~]# bash 3[root@node1 ~]# vim /etc/hosts 4192.168.106.170 node1 5192.168.106.180 node2 6192.168.106.190 node3 7192.168.106.200 node4

3.配置本地yum源安装glusterfs相应软件并启动服务

1[root@node1 ~]# vi /etc/yum.repos.d/GLFS.repo 2[GLFS] 3name=glfs 4baseurl=file:///root/gfsrepo 5gpgcheck=0 6enabled=1 7 8[root@node1 ~]# yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma 9[root@node1 ~]# systemctl start glusterd 10[root@node1 ~]# systemctl enable glusterd 11[root@node1 ~]# systemctl status glusterd

4.时间同步

1[root@node1 ~]# ntpdate ntp1.aliyun.com 224 Nov 17:26:56 ntpdate[2428]: adjust time server 120.25.115.20 offset -0.093008 sec

5.构建信任池(在任意节点即可)

1[root@node1 ~]# gluster peer probe node2 2peer probe: success. 3[root@node1 ~]# gluster peer probe node3 4peer probe: success. 5[root@node1 ~]# gluster peer probe node4 6peer probe: success. 7 8#查看所有节点 9[root@node1 ~]# gluster peer status 10Number of Peers: 3 11 12Hostname: node2 13Uuid: 8aeae184-28a8-445b-aabf-fb392197bd9d 14State: Peer in Cluster (Connected) 15 16Hostname: node3 17Uuid: 92b2f6e3-c623-410d-abde-9ba401b463db 18State: Peer in Cluster (Connected) 19 20Hostname: node4 21Uuid: 7936a4d9-4c38-49da-a253-8a49d10f2465 22State: Peer in Cluster (Connected)

4.3、根据规划创建如下卷

卷名称

卷类型

空间大小

Brick

dis-vol

分布式卷

10

node1:/tat/sdb;node2:/tat/sdb

stripe-vol

条带卷

10

node1:/tat/sdc;node2:/tat/sdc

rep-vol

复制卷

5

node3:/tat/sdb;node4:/tat/sdb

dis-stripe

分布式条带卷

20

node1:/tat/sdd;node2:/tat/sdd;node3:/tat/sdd;node4:/tat/sdd

dis-rep

分布式复制卷

10

node1:/tat/sde;node2:/tat/sde;node3:/tat/sde;node4:/tat/sde

客户端配置

11.安装glusterfs软件 2[root@client ~]# yum -y install glusterfs glusterfs-fuse 33.创建5个5M的文件 4[root@client ~]# dd if=/dev/zero of=/opt/test1.txt bs=1M count=5 5[root@client ~]# dd if=/dev/zero of=/opt/test2.txt bs=1M count=5 6[root@client ~]# dd if=/dev/zero of=/opt/test3.txt bs=1M count=5 7[root@client ~]# dd if=/dev/zero of=/opt/test4.txt bs=1M count=5 8[root@client ~]# dd if=/dev/zero of=/opt/test5.txt bs=1M count=5

4.3.1、创建分布式卷

1[root@node1 ~]# gluster volume create dis-vol node1:/tat/sdb node2:/tat/sdb forcevolume create: dis-vol: success: please start the volume to access data 2[root@node1 ~]# gluster volume info dis-vol #查看dis-vol卷信息 3 4Volume Name: dis-vol 5Type: Distribute 6Volume ID: 7c949fae-2431-4b43-9831-fabff95b7949 7Status: Created 8Snapshot Count: 0 9Number of Bricks: 2 10Transport-type: tcp 11Bricks: 12Brick1: node1:/tat/sdb 13Brick2: node2:/tat/sdb 14Options Reconfigured: 15transport.address-family: inet 16nfs.disable: on 17 18[root@node1 ~]# gluster volume start dis-vol #启用dis-vol卷 19volume start: dis-vol: success 20[root@node1 ~]# gluster volume status dis-vol #查看dis-vol卷状态 21

客户端挂载分布式卷到/test/dis目录下,并将拷贝3个测试文件进去

1[root@clint ~]# mkdir -p /test/dis 2[root@clint ~]# mount.glusterfs node1:dis-vol /test/dis-vol/ 3[root@clint ~]# cp /opt/test{1,2,3}.txt /test/dis-vol/ 4[root@client ~]# df -Th 5文件系统 类型 容量 已用 可用 已用% 挂载点 6...省略内容 7node1:dis-vol fuse.glusterfs 10G 80M 10G 1% /test/dis-vol

回到node1和node2节点中查看2个文件分布情况

node1下/tat/sdb/被分布到了1和3两个文件

1[root@node1 ~]# ll -h /tat/sdb/ 2总用量 10M 3-rw-r--r--. 2 root root 5.0M 1124 19:25 test1.txt 4-rw-r--r--. 2 root root 5.0M 1124 19:29 test3.txt 5

node2 下/data/tat/被分布到了2一个文件

1[root@node2 ~]# ll -h /tat/sdb/ 2总用量 5.0M 3-rw-r--r--. 2 root root 5.0M 1124 19:25 test2.txt

4.3.2、创建复制卷

1[root@node1 ~]# gluster volume create rep-vol replica 2 node3:/tat/sdb node4:/tat/sdb force 2volume create: rep-vol: success: please start the volume to access data 3[root@node1 ~]# gluster volume start rep-vol 4volume start: rep-vol: success 5[root@node1 ~]# gluster volume status rep-vol 6Status of volume: rep-vol 7Gluster process TCP Port RDMA Port Online Pid 8------------------------------------------------------------------------------ 9Brick node3:/tat/sdb 49152 0 Y 3805 10Brick node4:/tat/sdb 49152 0 Y 3807 11...省略内容

客户端挂载分布式卷到/test/rep-vol目录下,并将5个测试文件拷贝进去

1[root@clint ~]# mkdir -p /test/rep-vol 2[root@clint ~]# mount.glusterfs node1:rep-vol /test/rep-vol/ 3[root@clint ~]# cp /opt/test* /test/rep-vol/ 4[root@client ~]# df -Th 5文件系统 类型 容量 已用 可用 已用% 挂载点 6...省略内容 7node1:rep-vol fuse.glusterfs 5.0G 58M 5.0G 1% /test/rep-vol

回到node3和node4节点中查看5个文件分布情况

1node3下/tat/sdb/被分布到了5个文件 2[root@node3 ~]# ll -h /tat/sdb 3总用量 25M 4-rw-r--r--. 2 root root 5.0M 1124 20:02 test1.txt 5-rw-r--r--. 2 root root 5.0M 1124 20:02 test2.txt 6-rw-r--r--. 2 root root 5.0M 1124 20:02 test3.txt 7-rw-r--r--. 2 root root 5.0M 1124 20:02 test4.txt 8-rw-r--r--. 2 root root 5.0M 1124 20:02 test5.txt 9 10node4下/tat/sdb/被分布到了5个文件 11[root@node4 ~]# ll -h /tat/sdb/ 12总用量 25M 13-rw-r--r--. 2 root root 5.0M 1124 20:02 test1.txt 14-rw-r--r--. 2 root root 5.0M 1124 20:02 test2.txt 15-rw-r--r--. 2 root root 5.0M 1124 20:02 test3.txt 16-rw-r--r--. 2 root root 5.0M 1124 20:02 test4.txt 17-rw-r--r--. 2 root root 5.0M 1124 20:02 test5.txt

4.3.3、创建分布式复制卷

1[root@node1 ~]# gluster volume create dis-rep replica 2 node1:/tat/sde node2:/tat/sde node3:/tat/sde node4:/tat/sde force 2[root@node1 ~]# gluster volume info dis-rep 3[root@node1 ~]# gluster volume start dis-rep 4[root@node1 ~]# gluster volume status dis-rep

客户端挂载分布式卷到/test/dis-rep目录下,并将5个测试文件拷贝进去

1[root@client ~]# mkdir /test/dis-rep 2[root@client ~]# mount.glusterfs node1:dis-rep /test/dis-rep 3[root@clint ~]# cp /opt/test* /test/dis-rep/ 4[root@client ~]# df -Th 5文件系统 类型 容量 已用 可用 已用% 挂载点 6...node1:dis-rep fuse.glusterfs 10G 51M 9.9G 1% /test/dis-rep

回到node1、node2、node3和node4节点中查看5个文件分布情况

1[root@node1 ~]# ll -h /tat/sde/ 2总用量 15M 3-rw-r--r--. 2 root root 5.0M 1124 20:08 test1.txt 4-rw-r--r--. 2 root root 5.0M 1124 20:08 test3.txt 5-rw-r--r--. 2 root root 5.0M 1124 20:08 test4.txt 6 7[root@node2 ~]# ll -h /tat/sde/ 8总用量 15M 9-rw-r--r--. 2 root root 5.0M 1124 20:08 test1.txt 10-rw-r--r--. 2 root root 5.0M 1124 20:08 test3.txt 11-rw-r--r--. 2 root root 5.0M 1124 20:08 test4.txt 12 13[root@node3 ~]# ll -h /tat/sde 14总用量 10M 15-rw-r--r--. 2 root root 5.0M 1124 20:08 test2.txt 16-rw-r--r--. 2 root root 5.0M 1124 20:08 test5.txt 17 18[root@node4 ~]# ll -h /tat/sde 19总用量 10M 20-rw-r--r--. 2 root root 5.0M 1124 20:08 test2.txt 21-rw-r--r--. 2 root root 5.0M 1124 20:08 test5.txt 22 23

4.3.4、创建条带卷

1[root@node1 ~]# gluster volume create stripe-vol stripe 2 node1:/tat/sdc node2:/tat/sdc force 2[root@node1 ~]# gluster volume info stripe-vol 3[root@node1 ~]# gluster volume start stripe-vol 4[root@node1 ~]# gluster volume status stripe-vol

客户端挂载分布式卷到/test/stripe-vol目录下,并将5个测试文件拷贝进去

1[root@clint ~]# mkdir /test/stripe-vol 2[root@clint ~]# mount.glusterfs node1:stripe-vol /test/stripe-vol/ 3[root@clint ~]# cp /opt/test* /test/stripe-vol/ 4[root@clint ~]# df -Th 5文件系统 类型 容量 已用 可用 已用% 挂载点 6node1:stripe-vol fuse.glusterfs 10G 26M 9.9G 1% /test/stripe-vol

回到node1、node2节点中查看5个文件分布情况

1[root@node1 ~]# ll -h /tat/sdc 2总用量 13M 3-rw-r--r--. 2 root root 2.5M 1124 20:20 test1.txt 4-rw-r--r--. 2 root root 2.5M 1124 20:20 test2.txt 5-rw-r--r--. 2 root root 2.5M 1124 20:20 test3.txt 6-rw-r--r--. 2 root root 2.5M 1124 20:20 test4.txt 7-rw-r--r--. 2 root root 2.5M 1124 20:20 test5.txt 8[root@node2 ~]# ll -h /tat/sdc/ 9总用量 13M 10-rw-r--r--. 2 root root 2.5M 1124 20:20 test1.txt 11-rw-r--r--. 2 root root 2.5M 1124 20:20 test2.txt 12-rw-r--r--. 2 root root 2.5M 1124 20:20 test3.txt 13-rw-r--r--. 2 root root 2.5M 1124 20:20 test4.txt 14-rw-r--r--. 2 root root 2.5M 1124 20:20 test5.txt 15

4.3.5、创建分布式条带卷

1[root@node1 ~]# gluster volume create dis-stripe stripe 2 node1:/tat/sdd node2:/at/sdd node3:/tat/sdd node4:/tat/sdd force 2[root@node1 ~]# gluster volume start dis-stripe 3[root@node1 ~]# gluster volume status dis-stripe

客户端挂载分布式卷到/test/dis-stripe目录下,并将5个测试文件拷贝进去

1[root@clint ~]# mkdir /test/dis-stripe 2[root@clint ~]# mount.glusterfs node1:dis-stripe /test/dis-stripe/ 3[root@clint ~]# cp /opt/test* /test/dis-stripe/ 4[root@clint ~]# df -Th 5文件系统 类型 容量 已用 可用 已用% 挂载点 6node1:dis-stripe fuse.glusterfs 20G 155M 20G 1% /test/dis-stripe

回到node1、node2、node3和node4节点中查看5个文件分布情况

1[root@node1 ~]# ll -h /tat/sdd/ 2总用量 7.5M 3-rw-r--r--. 2 root root 2.5M 1124 20:31 test1.txt 4-rw-r--r--. 2 root root 2.5M 1124 20:31 test3.txt 5-rw-r--r--. 2 root root 2.5M 1124 20:31 test4.txt 6 7[root@node2 ~]# ll -h /tat/sdd 8总用量 7.5M 9-rw-r--r--. 2 root root 2.5M 1124 20:31 test1.txt 10-rw-r--r--. 2 root root 2.5M 1124 20:31 test3.txt 11-rw-r--r--. 2 root root 2.5M 1124 20:31 test4.txt 12 13[root@node3 ~]# ll -h /tat/sdd 14总用量 5.0M 15-rw-r--r--. 2 root root 2.5M 1124 20:31 test2.txt 16-rw-r--r--. 2 root root 2.5M 1124 20:31 test5.txt 17 18[root@node4 ~]# ll -h /tat/sdd 19总用量 5.0M 20-rw-r--r--. 2 root root 2.5M 1124 20:31 test2.txt 21-rw-r--r--. 2 root root 2.5M 1124 20:31 test5.txt 22

4.4、破坏测试

将node2宕机掉模拟故障,查看客户端中挂载点中依然存在的文件:

1[root@clint test]# ll -h dis-rep/ 2总用量 25M 3-rw-r--r--. 1 root root 5.0M 1125 14:28 test1.txt 4-rw-r--r--. 1 root root 5.0M 1125 14:28 test2.txt 5-rw-r--r--. 1 root root 5.0M 1125 14:28 test3.txt 6-rw-r--r--. 1 root root 5.0M 1125 14:28 test4.txt 7-rw-r--r--. 1 root root 5.0M 1125 14:28 test5.txt 8[root@clint test]# ll -h dis-stripe/ 9总用量 10M 10-rw-r--r--. 1 root root 5.0M 1125 14:28 test2.txt 11-rw-r--r--. 1 root root 5.0M 1125 14:28 test5.txt 12[root@clint test]# ll -h dis-vol/ 13总用量 10M 14-rw-r--r--. 1 root root 5.0M 1125 14:27 test1.txt 15-rw-r--r--. 1 root root 5.0M 1125 14:27 test3.txt 16[root@clint test]# ll -h rep-vol/ 17总用量 25M 18-rw-r--r--. 1 root root 5.0M 1125 14:27 test1.txt 19-rw-r--r--. 1 root root 5.0M 1125 14:27 test2.txt 20-rw-r--r--. 1 root root 5.0M 1125 14:27 test3.txt 21-rw-r--r--. 1 root root 5.0M 1125 14:27 test4.txt 22-rw-r--r--. 1 root root 5.0M 1125 14:27 test5.txt 23[root@clint test]# ll -h stripe-vol/ 24总用量 0

4.5、访问控制

1#仅拒绝某个用户 2[root@node1 ~]# gluster volume set dis-rep auth.reject 192.168.106.160 3volume set: success 4#仅允许某个用户 5[root@node1 ~]# gluster volume set dis-rep auth.allow 192.168.106.160 6volume set: success

root 5.0M 11月 25 14:27 test3.txt
[root@clint test]# ll -h rep-vol/
总用量 25M
-rw-r–r--. 1 root root 5.0M 11月 25 14:27 test1.txt
-rw-r–r--. 1 root root 5.0M 11月 25 14:27 test2.txt
-rw-r–r--. 1 root root 5.0M 11月 25 14:27 test3.txt
-rw-r–r--. 1 root root 5.0M 11月 25 14:27 test4.txt
-rw-r–r--. 1 root root 5.0M 11月 25 14:27 test5.txt
[root@clint test]# ll -h stripe-vol/
总用量 0

1## 4.5、访问控制 2

#仅拒绝某个用户
[root@node1 ~]# gluster volume set dis-rep auth.reject 192.168.106.160
volume set: success
#仅允许某个用户
[root@node1 ~]# gluster volume set dis-rep auth.allow 192.168.106.160
volume set: success

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Twitter的分布式自增ID算法snowflake (Java版)

概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移