• 案例部署——GlusterFS分布式文件系统群集


            前言:大部分分布式解决方案都是通过元服务器存放目录结构等元数据,元数据服务器提供了整个分布式存储的索引工作。但是一单元数据服务器损坏,整个分布式存储页将无法工作。本次将介绍一款无元服务器的分布式存储解决方案——GlusterFS。

    目录

     🍒GlusterFS概述

     🍒GlusterFS的卷类型

     🍇分布式卷

     🍇条带卷

     🍇复制卷

     🍇分布式条带卷

     🍇分布式复制卷

     🍒GlusterFS部署

     🍇案例环境配置

     🍇配置hosts文件

     🍇安装软件

     🍇添加节点

     🍇查看群集状态

     🍒创建卷

     🍇创建分布式卷

     🍇创建条带卷

     🍇创建复制卷

     🍇创建分布式条带卷

     🍇创建分布式复制卷

     🍒部署Gluster客户端

     🍒测试Gluster文件系统

     🍒Gluster维护命令

     🍇查看GlusterFS卷

     🍇停止/删除卷

     🍇设置卷的访问控制


            🍤:博客主页

            🍤:选择大于努力

            🍤:如果文章恰好对您有帮助,先点个收藏再走哦。3Q❤️

    GlusterFS概述

            开源的分布式文件系统,由存储服务器、客户端以及NFS/Samba 存储网关组成。GlusterFS分布式文件系统是基于无源服务器的设计。

    🍤GlusterFS的特点

    1. 扩展性和高性能:GlusterFs利用双重特性来提供高容量存储解决方案。

    2. 高可用性:GlusterFS通过配置某些类型的存储卷,可以对文件进行自动复制,即便某个节点出现故障,也不

      影响数据的访问。

    3. 全局统一命名空间:全局统一命名空间将所有的存储资源聚集成一个单一的虚拟存储池,对用户和应用屏蔽了物理存储信息。

    4. 弹性卷管理:GlusterFS通过将数据存储在逻辑卷中,逻辑卷从逻辑存储池进行独立逻辑划分。

    5. 基于标准协议:GlusterFS存储服务支持NFS、CIFS、HTTP、FTP、SMB及Gluster原生协议,完全与POSIX标准兼容。

    🍤GlusterFS术语

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

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

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

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

            Gluster:在存储群集中的每个节点上都要运行。

    🍤模块化堆栈式架构

            模块化、堆栈式的架构

            通过对模块的组合,实现复杂的功能

    🍤GlusterFS工作原理

    1. 客户端或应用程序通过GlusterFS的挂载点访问数据。

    2. linux系统内核通过VFS API收到请求并处理。

    3. VFS将数据递交给FUSE内核文件系统, fuse文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS client端。

    4. GlusterFS client 收到数据后,client根据配置文件的配置对数据进行处理。

    5. 通过网络将数据传递至远端的GlusterFS Server,并且将数据写入到服务器存储设备上。

    🍤弹性HASH算法

            通过HASH算法得到一个32位的整数,划分为N个连续的子空间,每个空间对应一个Brick。

    🍤弹性HASH算法的优点

            保证数据平均分布在每一个Brick中。

            解决了对元数据服务器的依赖,进而解决了单点故障以及访问瓶颈。

    GlusterFS的卷类型

            GlusterFS支持七种卷,即分布式卷、条带卷、复制卷、分布式条带卷、分布式复制卷、条带复制卷和分布式条带复制卷,这七种卷可以满足不同应用对高性能、高可用的需求。

    分布式卷

            没有对文件进行分块处理

            通过扩展文件属性保存HASH值

            支持的底层文件系统有ext3、ext4、ZFS、XFS等

    🍤特点:

            文件分布在不同的服务器,不具备冗余性

            更容易和廉价地扩展卷的大小

            单点故障会造成数据丢失

    下图中,没有分块处理,文件只能存在一个server中,效率不提升。

     

    🍤创建分布式卷:

            创建一个名为dis-volume的分布式卷,文件将根据HASH分布在server1:/dir1、server2:/dir2和server3:/dir3中。

    gluster volume create dis-volume server1:/dir1 server2:/dir2

    条带卷

            根据偏移量将文件分成N块(N个条带节点),轮询的存储在每个Brick Server节点

            存储大文件时,性能尤为突出

            不具备冗余性,类似Raid0

    🍤特点:

            数据被分割成更小块分布到块服务器群中的不同条带区

            分布减少了负载且更小的文件加速了存取的速度

            没有数据冗余

    下图中,从多个server中同时读取文件,效率提升

     

    🍤创建条带卷

            创建了一个名为Stripe-volume的条带卷,文件将被分块轮询的存储在Server1:/dir1和Server2:/dir2两个Brick中。

    gluster volume create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2

    复制卷

            同一文件保存一份或多分副本

            复制模式因为要保存副本,所以磁盘利用率较低

            多个节点上的存储空间不一致,那么将按照木桶效应取最低节点的容量作为该卷的总容量

    🍤特点:

            卷中所有的服务器均保存一个完整的副本

            卷的副本数量可由客户创建的时候决定

            至少由两个块服务器或更多服务器

    具备冗余性

    🍤创建复制卷

            创建名为rep-volume的复制卷,文件将同时存储两个副本,分别在Server1:/dir1和Server2:/dir2两个Brick中。

    gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2

    分布式条带卷

            兼顾分布式卷和条带卷的功能

            主要用于大文件访问处理

            至少最少需要 4 台服务器

     

    🍤创建分布式条带卷

            创建了一个名为dis-stripe的分布式条带卷,配置分布式的条带卷时,卷中Brick所包含的存储服务器数必须是条带数的倍数(>=2倍)

    gluster volume create dis-stripe stripe 2 transport tcp server1:/dir1 server2:/dir2 

    分布式复制卷

            兼顾分布式卷和复制卷的功能

            用于需要冗余的情况下

     

    🍤创建分布式复制卷

            创建了一个名为dis-rep的分布式条带卷,配置分布式的复制卷时,卷中Brick所包含的存储服务器数必须是条带数的倍数(>=2倍)。

    gluster volume create dis-rep replica 2 transport tcp server1:/dir1 server2:/dir2

    GlusterFS部署

    🍤部署群集环境

     

    🍤根据下表中配置服务器卷内容。

    卷名称卷类型空间大小Brick
    dis-volume分布式卷12Gnode1(/e6)、node2(/e6)
    stripe-volume条带卷10Gnode1(/d5)、node2(/d5)
    rep-volume复制卷5Gnode3(/d5)、node4(/d5)
    dis-stripe分布式条带卷12Gnode1(/b3)、node2(/b3)、node3(/b3)、node4(/b3)
    dis-rep分布式复制卷8Gnode1(/c4)、node2(/c4)、node3(/c4)、node4(/c4)

    🍤根据下表中配置IP地址、关闭防火墙、selinux、创建挂载目录及本地hosts节点解析。

    操作系统系统IP主机名挂载磁盘挂载目录
    Centos 7.3192.168.8.134node1/dev/sdb(3G)/dev/sdc(4G)/dev/sdd(5G)/dev/sde(6G)/b3/c4/d5/e6
    Centos 7.3192.168.8.136node2/dev/sdb(3G)/dev/sdc(4G)/dev/sdd(5G)/dev/sde(6G)/b3/c4/d5/e6
    Centos 7.3192.168.8.139node3/dev/sdb(3G)/dev/sdc(4G)/dev/sdd(5G)/b3/c4/d5
    Centos 7.3192.168.8.141node4/dev/sdb(3G)/dev/sdc(4G)/dev/sdd(5G)/b3/c4/d5

    案例环境配置

    🍤分区并格式化,创建相应的挂载目录并挂载,最后修改配置文件使其永久生效。

    🍤以下命令node1和node2分别分区b、c、d、e,node3和node4分别分区b、c、d。

    1. fdisk /dev/sdb/
    2. n→p→按三次回车→w保存退出

    🍤node1和node2执行以下命令格式化、创建目录、挂载目录并查看(复制粘贴即可)。

    1. mkfs   -t xfs /dev/sdb1
    2. mkfs   -t xfs /dev/sdc1
    3. mkfs   -t xfs /dev/sdd1
    4. mkfs   -t xfs /dev/sde1
    5. mkdir -p /b3 /c4   /d5 /e6
    6. mount /dev/sdb1   /b3
    7. mount /dev/sdc1   /c4
    8. mount /dev/sdd1   /d5
    9. mount /dev/sde1   /e6
    10. df -hT

    🍤node1和node2执行以下命令永久挂载。

    1. [root@localhost ~]# vim /etc/fstab
    2. /dev/sdb1   /b3   xfs   defaults 0 0
    3. /dev/sdc1   /c4   xfs   defaults 0 0
    4. /dev/sdd1   /d5   xfs   defaults 0 0
    5. /dev/sde1   /e6   xfs   defaults 0 0

    🍤node3和node4执行以下命令格式化、创建目录、挂载目录并查看(复制粘贴即可)。

    1. mkfs   -t xfs /dev/sdb1
    2. mkfs   -t xfs /dev/sdc1
    3. mkfs   -t xfs /dev/sdd1
    4. mkdir -p /b3 /c4   /d5  
    5. mount /dev/sdb1   /b3
    6. mount /dev/sdc1   /c4
    7. mount /dev/sdd1   /d5
    8. df -hT

    🍤node3和node4执行以下命令永久挂载。

    1. [root@localhost ~]# vim /etc/fstab
    2. /dev/sdb1   /b3   xfs   defaults 0 0
    3. /dev/sdc1   /c4   xfs   defaults 0 0
    4. /dev/sdd1   /d5   xfs   defaults 0 0

    配置hosts文件

            以下操作在4个节点上修改/etc/hosts文件,添加4个节点的解析。下面以node1为例,为例区分4个节点先进行改名。(其他三台可以使用scp命令复制hosts文件)

    1. [root@localhost ~]# hostnamectl set-hostname node1
    2. [root@localhost ~]# bash
    3. [root@node1 ~]# vim /etc/hosts
    4. 192.168.1.10 node1
    5. 192.168.1.20 node2
    6. 192.168.1.30 node3
    7. 192.168.1.40 node4

    安装软件

            在4个节点上操作,挂载光盘后,执行以下命令。搭建yum仓库、安装glusterfs软件并启动。如果是互联网环境中,可以指向互联网仓库(下面命令复制粘贴即可)。链接查看配置网络源仓库

    1. rm -rf /etc/yum.repos.d/*
    2. cat >> /etc/yum.repos.d/a.repo << END
    3. [a]
    4. name=a
    5. baseurl=file:///media
    6. gpgcheck=0
    7. END
    8. mount /dev/cdrom /media
    9. yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
    10. systemctl start glusterd
    11. systemctl enable glusterd

    添加节点

    🍤下面操作在node1上执行,添加node1~node4节点。删除节点命令可以使用"gluster peer detach 节点名或ip"。

    1. [root@node1 ~]# gluster peer probe node1
    2. peer probe: success. Probe on localhost not needed //node1也可以不执行
    3. [root@node1 ~]# gluster peer probe node2
    4. peer probe: success.
    5. [root@node1 ~]# gluster peer probe node3
    6. peer probe: success.
    7. [root@node1 ~]# gluster peer probe node4
    8. peer probe: success.

    查看群集状态

    🍤通过以下命令在每个节点上查看群集状态,正常情况下,每个节点的输出结果为,State: Peer in Cluster (Connected)。如果显示Disconnected,请检查hosts配置文件。

    1. [root@node1 ~]# gluster peer status
    2. Number of Peers: 3
    3. Hostname: node2
    4. Uuid: 0c98de8d-b471-4444-a69c-41055f34981d
    5. State: Peer in Cluster (Connected)
    6. Hostname: node3
    7. Uuid: 0032a845-6f63-4824-9226-e8fba260bdf7
    8. State: Peer in Cluster (Connected)
    9. Hostname: node4
    10. Uuid: 5f0d0fb5-91bf-4690-9c29-081aea11b774
    11. State: Peer in Cluster (Connected)

    创建卷

    创建分布式卷

    🍤没有指定类型,默认创建的是分布式类型。

    1. [root@node1 ~]# gluster volume create dis-volume node1:/e6 node2:/e6 force
    2. volume create: dis-volume: success: please start the volume to access data
    3. [root@node1 ~]# gluster volume info dis-volume
    4. Volume Name: dis-volume
    5. Type: Distribute
    6. Volume ID: 2428b9ff-6b40-4b4e-a757-c24e9cb05261
    7. Status: Created
    8. Snapshot Count: 0
    9. Number of Bricks: 2
    10. Transport-type: tcp
    11. Bricks:
    12. Brick1: node1:/e6
    13. Brick2: node2:/e6
    14. Options Reconfigured:
    15. transport.address-family: inet
    16. nfs.disable: on
    17. [root@node1 ~]# gluster volume start dis-volume
    18. volume start: dis-volume: success

    创建条带卷

     🍤指定类型为stripe,数值为2,而且后面跟了2个Brick server,所以创建的是条带卷。

    1. [root@node1 ~]# gluster volume create stripe-volume stripe 2 node1:/d5 node2:/d5 force
    2. volume create: stripe-volume: success: please start the volume to access data
    3. [root@node1 ~]# gluster volume info stripe-volume
    4. Volume Name: stripe-volume
    5. Type: Stripe
    6. Volume ID: d94a5890-5af1-4103-b3b8-13b6c93ef9fd
    7. Status: Created
    8. Snapshot Count: 0
    9. Number of Bricks: 1 x 2 = 2
    10. Transport-type: tcp
    11. Bricks:
    12. Brick1: node1:/d5
    13. Brick2: node2:/d5
    14. Options Reconfigured:
    15. transport.address-family: inet
    16. nfs.disable: on
    17. [root@node1 ~]# gluster volume start stripe-volume
    18. volume start: stripe-volume: success

    创建复制卷

     🍤指定类型为reqlica,数值为2,而且后面跟了2个Brick Server,所以创建的是复制卷。

    1. [root@node1 ~]# gluster volume create rep-volume replica 2 node3:/d5 node4:/d5 force
    2. volume create: rep-volume: success: please start the volume to access data
    3. [root@node1 ~]# gluster volume info rep-volume
    4. Volume Name: rep-volume
    5. Type: Replicate
    6. Volume ID: 9f16e913-0fab-4770-8d06-77a15cd3204c
    7. Status: Created
    8. Snapshot Count: 0
    9. Number of Bricks: 1 x 2 = 2
    10. Transport-type: tcp
    11. Bricks:
    12. Brick1: node3:/d5
    13. Brick2: node4:/d5
    14. Options Reconfigured:
    15. transport.address-family: inet
    16. nfs.disable: on
    17. [root@node1 ~]# gluster volume start rep-volume
    18. volume start: rep-volume: success

    创建分布式条带卷

    🍤指定类型为stripe,数值为2,而且后面跟了4个Brick Server,是2的2倍,所以创建的是分布式条带卷。

    1. [root@node1 ~]# gluster volume create dis-stripe stripe 2 node1:/b3 node2:/b3 node3:/b3 node4:/b3 force
    2. volume create: dis-stripe: success: please start the volume to access data
    3. [root@node1 ~]# gluster volume info dis-stripe
    4. Volume Name: dis-stripe
    5. Type: Distributed-Stripe
    6. Volume ID: 96778ae5-c04d-41c4-bf91-a2e595c0d105
    7. Status: Created
    8. Snapshot Count: 0
    9. Number of Bricks: 2 x 2 = 4
    10. Transport-type: tcp
    11. Bricks:
    12. Brick1: node1:/b3
    13. Brick2: node2:/b3
    14. Brick3: node3:/b3
    15. Brick4: node4:/b3
    16. Options Reconfigured:
    17. transport.address-family: inet
    18. nfs.disable: on
    19. [root@node1 ~]# gluster volume start dis-stripe
    20. volume start: dis-stripe: success

    创建分布式复制卷

    🍤指定类型为replica,数值为2,而且后面跟了4个Brick Server,是2的两倍,所以创建的是分布式复制卷。

    部署Gluster客户端

    🍤安装客户端软件

    1. [root@localhost ~]# hostnamectl set-hostname client
    2. [root@localhost ~]# bash
    3. [root@client ~]# rm -rf /etc/yum.repos.d/*
    4. [root@client ~]# cat >> /etc/yum.repos.d/a.repo << END
    5. [a]
    6. name=a
    7. baseurl=file:///media
    8. gpgcheck=0
    9. END
    10. [root@client ~]# mount /dev/cdrom /media
    11. mount: /dev/sr0 写保护,将以只读方式挂载
    12. [root@client ~]# yum -y install glusterfs glusterfs-fuse

    🍤挂载目录

    1. [root@client ~]# mkdir -p /test/{dis,stripe,rep,dis_and_stripe,dis_and_rep}
    2. [root@client ~]# ls /test
    3. dis dis_and_rep dis_and_stripe rep stripe

    🍤修改hosts文件

    sed -i '$a192.168.1.10 node1\n192.168.1.20 node2\n192.168.1.30 node3\n192.168.1.40 node4' /etc/hosts

    🍤挂载Gluster文件系统

    如果安装不成功,检查hosts解析文件。

    1. [root@client ~]# mount -t glusterfs node1:dis-volume /test/dis/
    2. [root@client ~]# mount -t glusterfs node1:stripe-volume /test/stripe/
    3. [root@client ~]# mount -t glusterfs node1:rep-volume /test/rep
    4. [root@client ~]# mount -t glusterfs node1:dis-stripe /test/dis_and_stripe/
    5. [root@client ~]# mount -t glusterfs node1:dis-rep /test/dis_and_rep/
    6. [root@client ~]# df -hT
    7. 文件系统           类型           容量 已用 可用 已用% 挂载点
    8. /dev/mapper/cl-root xfs             17G 3.8G   14G   23% /
    9. devtmpfs           devtmpfs       473M     0 473M   0% /dev
    10. tmpfs               tmpfs           489M   88K 489M   1% /dev/shm
    11. tmpfs               tmpfs           489M 7.1M 482M   2% /run
    12. tmpfs               tmpfs           489M     0 489M   0% /sys/fs/cgroup
    13. /dev/sda1           xfs           1014M 173M 842M   18% /boot
    14. tmpfs               tmpfs           98M   12K   98M   1% /run/user/0
    15. /dev/sr0           iso9660         53M   53M     0 100% /media
    16. node1:dis-volume   fuse.glusterfs   89G 7.5G   81G   9% /test/dis
    17. node1:stripe-volume fuse.glusterfs   89G 7.5G   81G   9% /test/stripe
    18. node1:rep-volume   fuse.glusterfs   39G 3.9G   35G   10% /test/rep
    19. node1:dis-stripe   fuse.glusterfs 165G   16G 150G   10% /test/dis_and_stripe
    20. node1:dis-rep       fuse.glusterfs   77G 7.6G   69G   10% /test/dis_and_rep

    🍤修改fstab配置文件

    1. [root@client ~]# sed -i '$anode1:dis-volume       /test/dis       glusterfs       defaults,_netdev 0 0' /etc/fstab
    2. [root@client ~]# sed -i '$anode1:stripe-volume     /test/stripe   glusterfs       defaults,_netdev 0 0' /etc/fstab
    3. [root@client ~]# sed -i '$anode1:rep-volume       /test/rep       glusterfs       defaults,_netdev 0 0' /etc/fstab
    4. [root@client ~]# sed -i '$anode1:dis-stripe /test/dis_and_stripe   glusterfs       defaults,_netdev 0 0' /etc/fstab
    5. [root@client ~]# sed -i '$anode1:dis-rep   /test/dis_and_rep       glusterfs       defaults,_netdev 0 0' /etc/fstab

    测试Gluster文件系统

    🍤在Client服务器操执行以下命令,卷中写入文件(漏斗命令直接复制粘贴即可)。

    1. dd if=/dev/zero of=/root/demo1.log bs=43M count=1
    2. dd if=/dev/zero of=/root/demo2.log bs=43M count=1
    3. dd if=/dev/zero of=/root/demo3.log bs=43M count=1
    4. dd if=/dev/zero of=/root/demo4.log bs=43M count=1
    5. dd if=/dev/zero of=/root/demo5.log bs=43M count=1
    6. cp demo* /test/dis/
    7. cp demo* /test/stripe/
    8. cp demo* /test/rep/
    9. cp demo* /test/dis_and_stripe/
    10. cp demo* /test/dis_and_rep/
    11. [root@client ~]# ll -h demo*
    12. -rw-r--r-- 1 root root 43M 8月   8 23:45 demo1.log
    13. -rw-r--r-- 1 root root 43M 8月   8 23:45 demo2.log
    14. -rw-r--r-- 1 root root 43M 8月   8 23:45 demo3.log
    15. -rw-r--r-- 1 root root 43M 8月   8 23:45 demo4.log
    16. -rw-r--r-- 1 root root 43M 8月   8 23:45 demo5.log

    🍤各节点服务器中查看文件分布(注意看节点名称)。

    1. ......//查看分布式卷文件分布
    2. [root@node1 ~]# ll -h /e6
    3. total 172M
    4. -rw-r--r-- 2 root root 43M Aug 8 17:10 demo1.log //没有分片,原始大小43M
    5. -rw-r--r-- 2 root root 43M Aug 8 17:10 demo2.log //没有分片,原始大小43M
    6. -rw-r--r-- 2 root root 43M Aug 8 17:10 demo3.log //没有分片,原始大小43M
    7. -rw-r--r-- 2 root root 43M Aug 8 17:10 demo4.log //没有分片,原始大小43M
    8. [root@node2 ~]# ll -h /e6
    9. 总用量 43M
    10. -rw-r--r-- 2 root root 43M 8月   8 17:10 demo5.log //没有分片,原始大小43M
    11. ......//查看条带卷文件分布
    12. [root@node1 ~]# ll -h /d5
    13. total 108M
    14. -rw-r--r-- 2 root root 22M Aug 8 17:10 demo1.log //大小被分片22M
    15. -rw-r--r-- 2 root root 22M Aug 8 17:10 demo2.log //大小被分片22M
    16. -rw-r--r-- 2 root root 22M Aug 8 17:10 demo3.log //大小被分片22M
    17. -rw-r--r-- 2 root root 22M Aug 8 17:10 demo4.log //大小被分片22M
    18. -rw-r--r-- 2 root root 22M Aug 8 17:10 demo5.log //大小被分片22M
    19. [root@node2 ~]# ll -h /d5
    20. 总用量 108M
    21. -rw-r--r-- 2 root root 22M 8月   8 17:10 demo1.log //大小被分片22M
    22. -rw-r--r-- 2 root root 22M 8月   8 17:10 demo2.log //大小被分片22M
    23. -rw-r--r-- 2 root root 22M 8月   8 17:10 demo3.log //大小被分片22M
    24. -rw-r--r-- 2 root root 22M 8月   8 17:10 demo4.log //大小被分片22M
    25. -rw-r--r-- 2 root root 22M 8月   8 17:10 demo5.log //大小被分片22M
    26. ......//查看复制卷文件分布
    27. [root@node3 ~]# ll -h /d5
    28. total 215M
    29. -rw-r--r-- 2 root root 43M Aug 8 17:10 demo1.log //没有分片,原始大小43M
    30. -rw-r--r-- 2 root root 43M Aug 8 17:10 demo2.log //没有分片,原始大小43M
    31. -rw-r--r-- 2 root root 43M Aug 8 17:10 demo3.log //没有分片,原始大小43M
    32. -rw-r--r-- 2 root root 43M Aug 8 17:11 demo4.log //没有分片,原始大小43M
    33. -rw-r--r-- 2 root root 43M Aug 8 17:11 demo5.log //没有分片,原始大小43M
    34. [root@node4 ~]# ll -h /d5
    35. total 215M
    36. -rw-r--r-- 2 root root 43M Aug 8 17:10 demo1.log //没有分片,原始大小43M
    37. -rw-r--r-- 2 root root 43M Aug 8 17:10 demo2.log //没有分片,原始大小43M
    38. -rw-r--r-- 2 root root 43M Aug 8 17:10 demo3.log //没有分片,原始大小43M
    39. -rw-r--r-- 2 root root 43M Aug 8 17:11 demo4.log //没有分片,原始大小43M
    40. -rw-r--r-- 2 root root 43M Aug 8 17:11 demo5.log //没有分片,原始大小43M
    41. ......//查看分布式条带卷文件分布
    42. [root@node1 ~]# ll -h /b3
    43. total 86M
    44. -rw-r--r-- 2 root root 22M Aug 8 17:11 demo1.log //大小被分片成22M
    45. -rw-r--r-- 2 root root 22M Aug 8 17:11 demo2.log //大小被分片成22M
    46. -rw-r--r-- 2 root root 22M Aug 8 17:11 demo3.log //大小被分片成22M
    47. -rw-r--r-- 2 root root 22M Aug 8 17:11 demo4.log //大小被分片成22M
    48. [root@node2 ~]# ll -h /b3
    49. 总用量 86M
    50. -rw-r--r-- 2 root root 22M 8月   8 17:11 demo1.log //大小被分片成22M
    51. -rw-r--r-- 2 root root 22M 8月   8 17:11 demo2.log //大小被分片成22M
    52. -rw-r--r-- 2 root root 22M 8月   8 17:11 demo3.log //大小被分片成22M
    53. -rw-r--r-- 2 root root 22M 8月   8 17:11 demo4.log //大小被分片成22M
    54. [root@node3 ~]# ll -h /b3
    55. total 22M
    56. -rw-r--r-- 2 root root 22M Aug 8 17:11 demo5.log //大小被分片成22M
    57. [root@node4 ~]# ll -h /b3
    58. total 22M
    59. -rw-r--r-- 2 root root 22M Aug 8 17:11 demo5.log //大小被分片成22M
    60. ......//查看分布式复制卷文件分布
    61. [root@node1 ~]# ll -h /c4
    62. total 172M
    63. -rw-r--r-- 2 root root 43M Aug 8 17:11 demo1.log //没有分片,原始大小43M
    64. -rw-r--r-- 2 root root 43M Aug 8 17:11 demo2.log //没有分片,原始大小43M
    65. -rw-r--r-- 2 root root 43M Aug 8 17:11 demo3.log //没有分片,原始大小43M
    66. -rw-r--r-- 2 root root 43M Aug 8 17:11 demo4.log //没有分片,原始大小43M
    67. [root@node2 ~]# ll -h /c4
    68. 总用量 172M
    69. -rw-r--r-- 2 root root 43M 8月   8 17:11 demo1.log //没有分片,原始大小43M
    70. -rw-r--r-- 2 root root 43M 8月   8 17:11 demo2.log //没有分片,原始大小43M
    71. -rw-r--r-- 2 root root 43M 8月   8 17:11 demo3.log //没有分片,原始大小43M
    72. -rw-r--r-- 2 root root 43M 8月   8 17:11 demo4.log //没有分片,原始大小43M
    73. [root@node3 ~]# ll -h /c4
    74. total 43M
    75. -rw-r--r-- 2 root root 43M Aug 8 17:11 demo5.log //没有分片,原始大小43M
    76. [root@node4 ~]# ll -h /c4
    77. total 43M
    78. -rw-r--r-- 2 root root 43M Aug 8 17:11 demo5.log //没有分片,原始大小43M

    Gluster维护命令

    查看GlusterFS卷

    🍤查看卷的列表

    1. [root@node1 ~]# gluster volume list
    2. dis-rep
    3. dis-stripe
    4. dis-volume
    5. rep-volume
    6. stripe-volume

    🍤查看所有卷的信息

    1. [root@node1 ~]#gluster volume info
    2. Volume Name: dis-rep
    3. Type: Distributed-Replicate
    4. Volume ID: 545d2438-5e07-4437-8943-eeda7a56c6bf
    5. Status: Started
    6. Snapshot Count: 0
    7. Number of Bricks: 2 x 2 = 4
    8. Transport-type: tcp
    9. Bricks:
    10. Brick1: node1:/c4
    11. Brick2: node2:/c4
    12. Brick3: node3:/c4
    13. Brick4: node4:/c4
    14. Options Reconfigured:
    15. transport.address-family: inet
    16. nfs.disable: on
    17. ......//省略部分内容

    🍤查看卷的状态

    1. [root@node1 ~]# gluster volume status
    2. Status of volume: dis-rep
    3. Gluster process                             TCP Port RDMA Port Online Pid
    4. ------------------------------------------------------------------------------
    5. Brick node1:/c4                             49155     0         Y       5147
    6. Brick node2:/c4                             49155     0         Y       5003
    7. Brick node3:/c4                             49154     0         Y       4796
    8. Brick node4:/c4                             49154     0         Y       4796
    9. Self-heal Daemon on localhost               N/A       N/A       Y       5167
    10. Self-heal Daemon on node2                   N/A       N/A       Y       5023
    11. Self-heal Daemon on node4                   N/A       N/A       Y       4816
    12. Self-heal Daemon on node3                   N/A       N/A       Y       4816
    13. Task Status of Volume dis-rep
    14. ------------------------------------------------------------------------------
    15. There are no active volume tasks
    16. Status of volume: dis-stripe
    17. Gluster process                             TCP Port RDMA Port Online Pid
    18. ------------------------------------------------------------------------------
    19. Brick node1:/b3                             49154     0         Y       5086
    20. Brick node2:/b3                             49154     0         Y       4969
    21. Brick node3:/b3                             49153     0         Y       4762
    22. Brick node4:/b3                             49153     0         Y       4762
    23. Task Status of Volume dis-stripe
    24. ------------------------------------------------------------------------------
    25. There are no active volume tasks
    26. Status of volume: dis-volume
    27. Gluster process                             TCP Port RDMA Port Online Pid
    28. ------------------------------------------------------------------------------
    29. Brick node1:/e6                             49152     0         Y       4913
    30. Brick node2:/e6                             49152     0         Y       4876
    31. Task Status of Volume dis-volume
    32. ------------------------------------------------------------------------------
    33. There are no active volume tasks
    34. Status of volume: rep-volume
    35. Gluster process                             TCP Port RDMA Port Online Pid
    36. ------------------------------------------------------------------------------
    37. Brick node3:/d5                             49152     0         Y       4719
    38. Brick node4:/d5                             49152     0         Y       4714
    39. Self-heal Daemon on localhost               N/A       N/A       Y       5167
    40. Self-heal Daemon on node2                   N/A       N/A       Y       5023
    41. Self-heal Daemon on node3                   N/A       N/A       Y       4816
    42. Self-heal Daemon on node4                   N/A       N/A       Y       4816
    43. Task Status of Volume rep-volume
    44. ------------------------------------------------------------------------------
    45. There are no active volume tasks
    46. Status of volume: stripe-volume
    47. Gluster process                             TCP Port RDMA Port Online Pid
    48. ------------------------------------------------------------------------------
    49. Brick node1:/d5                             49153     0         Y       4974
    50. Brick node2:/d5                             49153     0         Y       4910
    51. Task Status of Volume stripe-volume
    52. ------------------------------------------------------------------------------
    53. There are no active volume tasks

    停止/删除卷

    1. [root@node1 ~]# gluster volume stop dis-stripe //停止卷
    2. Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y
    3. volume stop: dis-stripe: success
    4. [root@node1 ~]# gluster volume delete dis-stripe //删除卷
    5. Deleting volume will erase all information about the volume. Do you want to continue? (y/n) y
    6. volume delete: dis-stripe: success

    设置卷的访问控制

    🍤下面设置只允许192.168.1.0和10.1.1.0网段的客户端访问dis-rep卷。

    1. [root@node1 ~]# gluster volume set dis-rep auth.allow 192.168.1.*,10.1.1.*
    2. volume set: success
    看都看完了,点点关注不迷路哦!
  • 相关阅读:
    清明作业 c++
    Scrapy案例(一)
    我试图通过这篇文章告诉你,这行源码有多牛逼。
    Linux shell编程学习笔记7:只读变量
    Linux使用一个脚本启用、停用springboot项目(本文带脚本)
    python基础 | 类与继承
    推进农业水价综合改革的意见解读
    最新Sora人工智能视频资源网址分享
    SendKeys.SendWait 函数模拟键盘输入
    nacos流程总结
  • 原文地址:https://blog.csdn.net/qq_61116007/article/details/126284945