GlusterFS部署

Stella981
• 阅读 822

@TOGlusterFS

一.GlusterFS概述

1.1简介

Glusterfs是一个开源的分布式文件系统,是Scale存储的核心,能够处理千数量级的客户端.在传统的解决 方案中Glusterfs能够灵活的结合物理的,虚拟的和云资源去体现高可用和企业级的性能存储. 

Glusterfs由存储服务器、客户端以及NFS/Samba存储网关组成,通过TCP/IP或InfiniBand RDMA网络链接将客户端的存储资块源聚集在一起,使用单一的全局命名空间来管理数据,磁盘和内存资源. 

Glusterfs基于堆叠的用户空间设计,可以为不同的工作负载提供高优的性能

1.2特点

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

1.3GlusterFS术语

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

1.4模块化堆栈式架构

###GlusterFS部署

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

二.GlusterFS工作原理

2.1弹性HASH算法

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

2.1GlusterFS工作模式

GlusterFS部署

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

三、GlusterFS的卷类型

分布式卷

条形卷

复制卷

分布式条带卷

分布式复制卷

条带复制卷

分布式条带复制卷

3.1、分布式卷

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

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

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

3.2、条形卷

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

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

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

3.3复制卷

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

创建复制卷

创建名为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分布式条带卷

1、兼顾分布式卷和条带卷的功能
2、主要用于大文件访问处理
3、最少需要4台服务器


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

3.5分布式复制卷

1、兼顾分布式卷和复制卷的功能
2、用于需要冗余的情况
3、创建分布式复制卷


[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

每台设备上添加好磁盘

[root@node4 ~]# vi fdisk.sh
[root@node4 ~]# chmod +x fdisk.sh 
[root@node4 ~]# ./fdisk.sh 
#!/bin/bash
for i in {b,c,d,e}
do
   echo "n
         p
         1


         w" | fdisk /dev/sd$i
   mkdir -p /tat/sd$i
         mkfs.xfs /dev/sd${i}1
         cat>>/etc/fstab<<EOF
          /dev/sd${i}1 /tat/sd$i xfs defaults 0 0
EOF

done
mount -a
df -Th

4.2 部署node节点

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

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

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

[root@localhost ~]# hostnamectl set-hostname node1
[root@localhost ~]# bash
[root@node1 ~]# vim /etc/hosts
192.168.106.170 node1
192.168.106.180 node2
192.168.106.190 node3
192.168.106.200 node4

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

[root@node1 ~]# vi /etc/yum.repos.d/GLFS.repo
[GLFS]
name=glfs
baseurl=file:///root/gfsrepo
gpgcheck=0
enabled=1

[root@node1 ~]# yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
[root@node1 ~]# systemctl start glusterd
[root@node1 ~]# systemctl enable glusterd
[root@node1 ~]# systemctl status glusterd

4.时间同步

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

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

[root@node1 ~]# gluster peer probe node2
peer probe: success. 
[root@node1 ~]# gluster peer probe node3
peer probe: success. 
[root@node1 ~]# gluster peer probe node4
peer probe: success.

#查看所有节点
[root@node1 ~]#  gluster peer status
Number of Peers: 3

Hostname: node2
Uuid: 8aeae184-28a8-445b-aabf-fb392197bd9d
State: Peer in Cluster (Connected)

Hostname: node3
Uuid: 92b2f6e3-c623-410d-abde-9ba401b463db
State: Peer in Cluster (Connected)

Hostname: node4
Uuid: 7936a4d9-4c38-49da-a253-8a49d10f2465
State: 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

客户端配置

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

4.3.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
[root@node1 ~]# gluster volume info dis-vol      #查看dis-vol卷信息
 
Volume Name: dis-vol
Type: Distribute
Volume ID: 7c949fae-2431-4b43-9831-fabff95b7949
Status: Created
Snapshot Count: 0
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: node1:/tat/sdb
Brick2: node2:/tat/sdb
Options Reconfigured:
transport.address-family: inet
nfs.disable: on

[root@node1 ~]# gluster volume start dis-vol     #启用dis-vol卷
volume start: dis-vol: success
[root@node1 ~]# gluster volume status dis-vol   #查看dis-vol卷状态

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

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

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

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

[root@node1 ~]# ll -h /tat/sdb/
总用量 10M
-rw-r--r--. 2 root root 5.0M 11月 24 19:25 test1.txt
-rw-r--r--. 2 root root 5.0M 11月 24 19:29 test3.txt

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

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

4.3.2、创建复制卷

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

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

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

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

node3下/tat/sdb/被分布到了5个文件
[root@node3 ~]# ll -h /tat/sdb
总用量 25M
-rw-r--r--. 2 root root 5.0M 11月 24 20:02 test1.txt
-rw-r--r--. 2 root root 5.0M 11月 24 20:02 test2.txt
-rw-r--r--. 2 root root 5.0M 11月 24 20:02 test3.txt
-rw-r--r--. 2 root root 5.0M 11月 24 20:02 test4.txt
-rw-r--r--. 2 root root 5.0M 11月 24 20:02 test5.txt

node4下/tat/sdb/被分布到了5个文件
[root@node4 ~]# ll -h /tat/sdb/
总用量 25M
-rw-r--r--. 2 root root 5.0M 11月 24 20:02 test1.txt
-rw-r--r--. 2 root root 5.0M 11月 24 20:02 test2.txt
-rw-r--r--. 2 root root 5.0M 11月 24 20:02 test3.txt
-rw-r--r--. 2 root root 5.0M 11月 24 20:02 test4.txt
-rw-r--r--. 2 root root 5.0M 11月 24 20:02 test5.txt

4.3.3、创建分布式复制卷

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

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

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

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

[root@node1 ~]# ll -h /tat/sde/
总用量 15M
-rw-r--r--. 2 root root 5.0M 11月 24 20:08 test1.txt
-rw-r--r--. 2 root root 5.0M 11月 24 20:08 test3.txt
-rw-r--r--. 2 root root 5.0M 11月 24 20:08 test4.txt

[root@node2 ~]# ll -h /tat/sde/
总用量 15M
-rw-r--r--. 2 root root 5.0M 11月 24 20:08 test1.txt
-rw-r--r--. 2 root root 5.0M 11月 24 20:08 test3.txt
-rw-r--r--. 2 root root 5.0M 11月 24 20:08 test4.txt

[root@node3 ~]# ll -h /tat/sde
总用量 10M
-rw-r--r--. 2 root root 5.0M 11月 24 20:08 test2.txt
-rw-r--r--. 2 root root 5.0M 11月 24 20:08 test5.txt

[root@node4 ~]# ll -h /tat/sde
总用量 10M
-rw-r--r--. 2 root root 5.0M 11月 24 20:08 test2.txt
-rw-r--r--. 2 root root 5.0M 11月 24 20:08 test5.txt

4.3.4、创建条带卷

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

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

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

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

[root@node1 ~]# ll -h /tat/sdc
总用量 13M
-rw-r--r--. 2 root root 2.5M 11月 24 20:20 test1.txt
-rw-r--r--. 2 root root 2.5M 11月 24 20:20 test2.txt
-rw-r--r--. 2 root root 2.5M 11月 24 20:20 test3.txt
-rw-r--r--. 2 root root 2.5M 11月 24 20:20 test4.txt
-rw-r--r--. 2 root root 2.5M 11月 24 20:20 test5.txt
[root@node2 ~]# ll -h /tat/sdc/
总用量 13M
-rw-r--r--. 2 root root 2.5M 11月 24 20:20 test1.txt
-rw-r--r--. 2 root root 2.5M 11月 24 20:20 test2.txt
-rw-r--r--. 2 root root 2.5M 11月 24 20:20 test3.txt
-rw-r--r--. 2 root root 2.5M 11月 24 20:20 test4.txt
-rw-r--r--. 2 root root 2.5M 11月 24 20:20 test5.txt

4.3.5、创建分布式条带卷

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

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

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

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

[root@node1 ~]# ll -h /tat/sdd/
总用量 7.5M
-rw-r--r--. 2 root root 2.5M 11月 24 20:31 test1.txt
-rw-r--r--. 2 root root 2.5M 11月 24 20:31 test3.txt
-rw-r--r--. 2 root root 2.5M 11月 24 20:31 test4.txt

[root@node2 ~]# ll -h /tat/sdd
总用量 7.5M
-rw-r--r--. 2 root root 2.5M 11月 24 20:31 test1.txt
-rw-r--r--. 2 root root 2.5M 11月 24 20:31 test3.txt
-rw-r--r--. 2 root root 2.5M 11月 24 20:31 test4.txt

[root@node3 ~]# ll -h /tat/sdd
总用量 5.0M
-rw-r--r--. 2 root root 2.5M 11月 24 20:31 test2.txt
-rw-r--r--. 2 root root 2.5M 11月 24 20:31 test5.txt

[root@node4 ~]# ll -h /tat/sdd
总用量 5.0M
-rw-r--r--. 2 root root 2.5M 11月 24 20:31 test2.txt
-rw-r--r--. 2 root root 2.5M 11月 24 20:31 test5.txt

4.4、破坏测试

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

[root@clint test]# ll -h dis-rep/
总用量 25M
-rw-r--r--. 1 root root 5.0M 11月 25 14:28 test1.txt
-rw-r--r--. 1 root root 5.0M 11月 25 14:28 test2.txt
-rw-r--r--. 1 root root 5.0M 11月 25 14:28 test3.txt
-rw-r--r--. 1 root root 5.0M 11月 25 14:28 test4.txt
-rw-r--r--. 1 root root 5.0M 11月 25 14:28 test5.txt
[root@clint test]# ll -h dis-stripe/
总用量 10M
-rw-r--r--. 1 root root 5.0M 11月 25 14:28 test2.txt
-rw-r--r--. 1 root root 5.0M 11月 25 14:28 test5.txt
[root@clint test]# ll -h dis-vol/
总用量 10M
-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 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

4.5、访问控制

#仅拒绝某个用户
[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

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

## 4.5、访问控制

#仅拒绝某个用户
[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

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
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
Easter79 Easter79
3年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这