大点干!早点散----------深入剖析GFS分布式文件系统

文章目录

  • 一、GlusterFS(GFS)介绍
    • 1、GlusterFS
    • 2、GlusterFS特点
    • 3、常用术语
    • 4、GFS的结构
    • 5、弹性HASH算法
    • 6、GlusterFS工作原理
  • 二、GlusterFS的卷类型
    • 1、分布式卷
    • 2、条带卷
    • 3、复制卷
    • 4、分布式条带卷
    • 5、分布式复制卷
    • 6、条带复制卷
    • 7、分布式条带复制卷
  • 三、GFS平台部署
    • 1、实验环境
    • 2、磁盘分区、挂载
    • 3、配置yum本地源,安装环境包
    • 4、同步时间,添加到存储信任池
    • 5、分布式卷的建立与查看
    • 6、客户机的环境搭建,并挂载分布式卷
    • 7、分布式卷的文件存储测试
    • 8、 条带卷的创建与测试
    • 9、复制卷的创建与测试
    • 10、 分布式条带卷的创建与测试
    • 11、分布式复制卷

一、GlusterFS(GFS)介绍

1、GlusterFS

Gluster File System,开源的分布式文件系统,是Scale存储的核心,能够处理千数量级的客户端.在传统的解决 方案中Glusterfs能够灵活的结合物理的,虚拟的和云资源去体现高可用和企业级的性能存储
由存储服务器(Brick Server)、客户端以及NFS/Samba 存储网关组成
无元数据服务器
大点干!早点散----------深入剖析GFS分布式文件系统_第1张图片
RDMA 的介绍
RDMA 是通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响

普通网卡的工作过程如下:先把收到的数据包缓存到系统上,数据包经过处理后,相应数据被分配到一个TCP 连接;然后,接收系统再把主动提供的TCP 数据同相应的应用程序联系起来,并将数据从系统缓冲区拷贝到目标存储地址.这样,制约网络速率的因素就出现了

2、GlusterFS特点

扩展性和高性能
高可用性
全局统一命名空间
弹性卷管理
基于标准协议

3、常用术语

Brick:GFS中的存储单元,通过是一个受信存储池中的服务器的一个导出目录。可以通过主机名和目录名来标识,如’SERVER:EXPORT’
Volume:卷
FUSE:内核文件系统,Filesystem Userspace是一个可加载的内核模块,其支持非特权用户创建自己的文件系统而不需要修改内核代码。通过在用户空间运行文件系统的代码通过FUSE代码与内核进行桥接。
VFS:虚拟文件系统
Glusterd:Gluster management daemon,要在trusted storage pool中所有的服务器上运行。

4、GFS的结构

  • 模块化堆栈式架构
  • 模块化、堆栈式的架构
  • 通过对模块的组合,实现复杂的功能

5、弹性HASH算法

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

6、GlusterFS工作原理

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

大点干!早点散----------深入剖析GFS分布式文件系统_第2张图片

二、GlusterFS的卷类型

1、分布式卷

分布式卷是 GlusterFS 的默认卷,在创建卷时,默认选项是创建分布式卷。在该模式下, 并没有对文件进行分块处理,文件直接存储在某个 Server 节点上。直接使用本地文件系统 进行文件存储,大部分 Linux 命令和工具可以继续正常使用。需要通过扩展文件属性保存 HASH 值,目前支持的底层文件系统有 EXT3、EXT4、ZFS、XFS 等。 由于使用的是本地文件系统,所以存取效率并没有提高,反而会因为网络通信的原因而 有所降低;另外支持超大型文件也会有一定的难度,因为分布式卷不会对文件进行分块处理。 虽然 EXT4 已经可以支持最大 16TB 的单个文件,但是本地存储设备的容量实在有限。File1 和 File2 存放在 Server1,而 File3 存放在 Server2,文件都是随机存储,一 个文件(如 File1)要么在 Server1 上,要么在 Server2 上,不能分块同时存放在 Server1 和 Server2 上。
大点干!早点散----------深入剖析GFS分布式文件系统_第3张图片
分布式卷具有如下特点:

  • 文件分布在不同的服务器,不具备冗余性。
  • 更容易且廉价地扩展卷的大小。
  • 存在单点故障会造成数据丢失。
  • 依赖底层的数据保护

2、条带卷

根据偏移量将文件分成N块(N个条带节点),轮询的存储在每个Brick Server节点
存储大文件时,性能尤为突出
不具备冗余性,类似Raid0
大点干!早点散----------深入剖析GFS分布式文件系统_第4张图片

3、复制卷

相当于 RAID1,即同一文件保存一份 或多份副本,每个节点上保存相同的内容和目录结构。复制模式因为要保存副本,所以磁盘 利用率较低。如果多个节点上的存储空间不一致,那么将按照木桶效应取最低节点的容量作为该卷的总容量。在配置复制卷时,复制数必须等于卷中 Brick 所包含的存储服务器数,复 制卷具备冗余性,即使一个节点损坏,也不影响数据的正常使用
大点干!早点散----------深入剖析GFS分布式文件系统_第5张图片

4、分布式条带卷

File1和File2通过分布式卷的功能分别定位到Server1 和 Server2。在 Server1 中,File1 被分割成 4 段,其中 1、3 在 Server1 中的 exp1 目录中, 2、4 在 Server1 中的 exp2 目录中。在 Server2 中,File2 也被分割成 4 段,其中 1、3 在 Server2 中的 exp3 目录中,2、4 在 Server2 中的 exp4 目录中。
大点干!早点散----------深入剖析GFS分布式文件系统_第6张图片

5、分布式复制卷

分布式复制卷兼顾分布式卷和复制卷的功能,主要用于需要冗余的情况下。File1 和 File2 通过分布式卷的功能分别定位到 Server1 和 Server2。 在存放 File1 时,File1 根据复制卷的特性,将存在两个相同的副本,分别是 Server1 中的 exp1 目录和 Server2 中的 exp2 目录。在存放 File2 时,File2 根据复制卷的特性,也将存 在两个相同的副本,分别是 Server3 中的 exp3 目录和 Server4 中的 exp4 目录。
大点干!早点散----------深入剖析GFS分布式文件系统_第7张图片

6、条带复制卷

首先触发条带卷的功能,将数据等分成4份,轮询存放 ,然后轮询后再进行触发复制卷的作用,进行复制
大点干!早点散----------深入剖析GFS分布式文件系统_第8张图片

7、分布式条带复制卷

联想一下上面的条带复制卷,懒得画了

三、GFS平台部署

1、实验环境

实验参数
VMware软件
一台centos7虚拟机,IP地址为:14.0.0.7,主机名为:node1,添加4块磁盘,分别都为20G

一台centos7虚拟机,IP地址为:14.0.0.110,主机名为:node2,添加4块磁盘,分别都为20G

一台centos7虚拟机,IP地址为:14.0.0.111,主机名为:node3,添加4块磁盘,分别都为20G

一台centos7虚拟机,IP地址为:14.0.0.112,主机名为:node4,添加4块磁盘,分别都为20G

一台centos7虚拟机,IP地址为:14.0.0.177,主机名为:client,当做测试机使用

2、磁盘分区、挂载

在四台node节点服务器上,编辑脚本自动进行分区,以node1界定啊服务器为例子。

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
[root@node1 ~]# cd /opt
[root@node1 opt]# vim fdisk.sh
#!bin/bash
for disk in `fdisk -l |grep -o 'sd[b-z]'| uniq |awk 'BEGIN{ORS=" "} {print $0 }'`
do
     echo "n
           p
                
                
           
           w"| fdisk /dev/$disk
mkfs.xfs -i size=512 /dev/${disk}"1" &> /dev/null
 mkdir -p /data/${
     disk}"1" &> /dev/null
echo -e "/dev/${disk}"1" /data/${disk}"1" xfs defaults 0 0\n" >> /etc/fstab
  mount -a &> /dev/null
done
[root@node1 opt]# chmod +x fdisk.sh 
[root@node1 opt]# sh fdisk.sh
[root@node1 opt]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        15G  3.8G   12G   26% /
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G   13M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1               xfs       2.0G  179M  1.9G    9% /boot
/dev/mapper/centos-home xfs        25G   33M   25G    1% /home
tmpfs                   tmpfs     378M   12K  378M    1% /run/user/42
tmpfs                   tmpfs     378M     0  378M    0% /run/user/0
/dev/sdb1               xfs        20G   33M   20G    1% /data/sdb1
/dev/sdc1               xfs        20G   33M   20G    1% /data/sdc1
/dev/sdd1               xfs        20G   33M   20G    1% /data/sdd1
/dev/sde1               xfs        20G   33M   20G    1% /data/sde1

其余三个几点配置一样,这里就不一一介绍了

3、配置yum本地源,安装环境包

在所有的节点服务器上操作(以node1服务器为例,其他三台一样的操作),将gluster的rpm环境包拷贝进当前目录下

[root@node1 opt]# cd ~
[root@node1 ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  模板  图片  下载  桌面
gfsrepo          公共                  视频  文档  音乐
[root@node1 ~]# mkdir /opt/gfs
[root@node1 ~]# mv gfsrepo/ /opt/gfs/
[root@node1 ~]# cd /etc/yum.repos.d/
[root@node1 yum.repos.d]# mkdir bak
[root@node1 yum.repos.d]# mv C* bak/
[root@node1 yum.repos.d]# ls
bak
[root@node1 yum.repos.d]# vim GLFS.repo
[GLFS]
name=glfs
baseurl=file:///opt/gfs/gfsrepo
gpgcheck=0
enabled=1
[root@node1 yum.repos.d]# yum list    ##加载一下
[root@node1 yum.repos.d]# yum remove glusterfs-client-xlators.x86_64 glusterfs glusterfs-libs -y   ##因为centos7中默认已经安装了部分依赖包,版本比yum源的版本高,所以先将这些软件包卸载,再进行安装,否则报错。
[root@node1 yum.repos.d]# yum install glusterfs-server glusterfs-fuse glusterfs-rdma -y    ##安装gluster环境依赖包
[root@node1 yum.repos.d]# systemctl start glusterd.service    ##开启glusterd服务
[root@node1 yum.repos.d]# systemctl enable glusterd.service    ##设置开机自启动
Created symlink from /etc/systemd/system/multi-user.target.wants/glusterd.service to /usr/lib/systemd/system/glusterd.service.
[root@node1 yum.repos.d]# systemctl status glusterd.service    ##查看服务状态
 glusterd.service - GlusterFS, a clustered file-system server
   Loaded: loaded (/usr/lib/systemd/system/glusterd.service; enabled; vendor preset: disabled)
   Active: active (running) since  2020-09-14 12:17:11 CST; 40s ago
 Main PID: 13030 (glusterd)
   CGroup: /system.slice/glusterd.service
           └─13030 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level I...

9 14 12:17:11 node1 systemd[1]: Starting GlusterFS, a clustered file-sy.....
9 14 12:17:11 node1 systemd[1]: Started GlusterFS, a clustered file-sys...r.
Hint: Some lines were ellipsized, use -l to show in full.

4、同步时间,添加到存储信任池

将时间同步与阿里云时间一样

[root@node1 yum.repos.d]# ntpdate ntp1.aliyun.com
14 Sep 18:33:31 ntpdate[17167]: adjust time server 120.25.115.20 offset 0.003253 sec

[root@node2 ~]# ntpdate ntp1.aliyun.com
14 Sep 18:33:38 ntpdate[16974]: adjust time server 120.25.115.20 offset 0.001146 sec

[root@node3 ~]# ntpdate ntp1.aliyun.com
14 Sep 18:33:45 ntpdate[69222]: adjust time server 120.25.115.20 offset 0.001511 sec

[root@node4 gfs]# ntpdate ntp1.aliyun.com
14 Sep 18:33:04 ntpdate[13964]: adjust time server 120.25.115.20 offset 0.006495 sec

将node服务器添加到存储信任池,在任何一个节点上添加就可以了,可以在任何一个节点上查看存储信任池的状态

[root@node1 yum.repos.d]# gluster peer probe node2
peer probe: success. 
[root@node1 yum.repos.d]# gluster peer probe node3
peer probe: success. 
[root@node1 yum.repos.d]# gluster peer probe node4
peer probe: success. 

[root@node1 yum.repos.d]# gluster peer status    ##查看gluster的地址池状态
Number of Peers: 3

Hostname: node2
Uuid: 4abc4d2b-5e27-4dfc-b846-900b6d1860ad
State: Peer in Cluster (Connected)

Hostname: node3
Uuid: 2ae7b76b-aa30-43e9-ac47-5ef41c0ccf78
State: Peer in Cluster (Connected)

Hostname: node4
Uuid: dc4c1a0b-6b60-442a-a0ab-c4fff72677f3
State: Peer in Cluster (Connected)

5、分布式卷的建立与查看

这里使用node1和node2的sdb1硬盘来建立分布式卷,在任何一个节点服务器上都可以进行创建,在node3服务器上演示

[root@node3 ~]# gluster volume create dis-vol node1:/data/sdb1 node2:/data/sdb1 force
volume create: dis-vol: success: please start the volume to access data

查看分布式卷的详细信息

[root@node3 ~]#  gluster volume list    ##查看卷列表
dis-vol
[root@node3 ~]#  gluster volume info dis-vol    ##查看分布式卷的详细信息
 
Volume Name: dis-vol
Type: Distribute
Volume ID: 1d3977d0-7b39-4455-ab3f-1c4d579934ff
Status: Created
Snapshot Count: 0
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: node1:/data/sdb1
Brick2: node2:/data/sdb1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
[root@node3 ~]#  gluster volume start dis-vol   ##开启分布式卷
volume start: dis-vol: success

gluster volume stop dis-vol 关闭分布式卷
gluster volume delete dis-vol 删除分布式卷

6、客户机的环境搭建,并挂载分布式卷

[root@localhost ~]# hostnamectl set-hostname client    ##改主机名
[root@localhost ~]# su
配置yum本地源
[root@client ~]# cd /etc/yum.repos.d/
[root@client yum.repos.d]# mkdir bak
[root@client yum.repos.d]# mv C* bak/
[root@client yum.repos.d]# vim GLFS.repo
[GLFS]
name=glfs
baseurl=file:///opt/gfs/gfsrepo
gpgcheck=0
enabled=1
[root@node3 ~]# yum list
[root@node1 yum.repos.d]# yum remove glusterfs-client-xlators.x86_64 glusterfs glusterfs-libs -y  
[root@node1 yum.repos.d]# yum install glusterfs-server glusterfs-fuse glusterfs-rdma -y 
[root@node1 yum.repos.d]# vim /etc/hosts
14.0.0.7 node1
14.0.0.110 node2
14.0.0.111 node3
14.0.0.112 node4

分布式卷挂载命令在client上进行输入,可以挂载任何一个节点,都可以实现挂载

[root@client yum.repos.d]# mkdir -p /test/dis     ##创建挂载目录
[root@client yum.repos.d]# mount.glusterfs node4:dis-vol /test/dis    ##实现挂载
[root@client yum.repos.d]# df -Th
文件系统       类型            容量  已用  可用 已用% 挂载点
/dev/sda5      xfs              40G  4.9G   36G   13% /
devtmpfs       devtmpfs        895M     0  895M    0% /dev
tmpfs          tmpfs           910M     0  910M    0% /dev/shm
tmpfs          tmpfs           910M   11M  900M    2% /run
tmpfs          tmpfs           910M     0  910M    0% /sys/fs/cgroup
/dev/sda2      xfs              50G   33M   50G    1% /home
/dev/sda1      xfs             2.0G  174M  1.9G    9% /boot
tmpfs          tmpfs           182M  8.0K  182M    1% /run/user/42
tmpfs          tmpfs           182M   40K  182M    1% /run/user/0
/dev/sr0       iso9660         4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
node4:dis-vol  fuse.glusterfs   40G   65M   40G    1% /test/dis

7、分布式卷的文件存储测试

创建5个大小为40M的的文件

[root@client yum.repos.d]# dd if=/dev/zero of=/demo1.log bs=1M count=40
记录了40+0 的读入
记录了40+0 的写出
41943040字节(42 MB)已复制,0.0391551 秒,1.1 GB/
[root@client yum.repos.d]# dd if=/dev/zero of=/demo2.log bs=1M count=40
记录了40+0 的读入
记录了40+0 的写出
41943040字节(42 MB)已复制,0.230143 秒,182 MB/
[root@client yum.repos.d]# dd if=/dev/zero of=/demo3.log bs=1M count=40
记录了40+0 的读入
记录了40+0 的写出
41943040字节(42 MB)已复制,0.66821 秒,62.8 MB/
[root@client yum.repos.d]# dd if=/dev/zero of=/demo4.log bs=1M count=40
记录了40+0 的读入
记录了40+0 的写出
41943040字节(42 MB)已复制,0.867869 秒,48.3 MB/
[root@client yum.repos.d]# dd if=/dev/zero of=/demo5.log bs=1M count=40
记录了40+0 的读入
记录了40+0 的写出
41943040字节(42 MB)已复制,0.737165 秒,56.9 MB/

将测试文件直接拷贝到挂载目录下,查看两个node服务器的存储状况

[root@client /]# cp demo* /test/dis/
[root@client /]# ls /test/dis/
demo1.log  demo2.log  demo3.log  demo4.log  demo5.log

在node服务器上查看

[root@node1 ~]# cd /data/sdb1
[root@node1 sdb1]# ll -h


总用量 160M
-rw-r--r--. 2 root root 40M 9  14 22:19 demo1.log
-rw-r--r--. 2 root root 40M 9  14 22:19 demo2.log
-rw-r--r--. 2 root root 40M 9  14 22:19 demo3.log
-rw-r--r--. 2 root root 40M 9  14 22:19 demo4.log
[root@node2 ~]# cd /data/sdb1
[root@node2 sdb1]# ll -h
总用量 40M
-rw-r--r--. 2 root root 40M 9  14 22:19 demo5.log

8、 条带卷的创建与测试

[root@node3 ~]# gluster volume create stripe-vol stripe 2 node1:/data/sdc1 node2:/data/sdc1 force    ##创建条带卷
volume create: stripe-vol: success: please start the volume to access data
[root@node3 ~]# gluster volume list
dis-vol
stripe-vol
[root@node3 ~]# gluster volume start stripe-vol    ##开启条带卷
volume start: stripe-vol: success

在client服务器上挂载

[root@client /]# mkdir /test/stripe-vol
[root@client /]# mount.glusterfs node4:ss-vol /test/dis
sbin/ srv/  sys/  
[root@client /]# mount.glusterfs node4:stripe-vol /test/stripe-vol/
[root@client /]# df -hT
文件系统         类型            容量  已用  可用 已用% 挂载点
/dev/sda5        xfs              40G  5.1G   35G   13% /
devtmpfs         devtmpfs        895M     0  895M    0% /dev
tmpfs            tmpfs           910M     0  910M    0% /dev/shm
tmpfs            tmpfs           910M   11M  900M    2% /run
tmpfs            tmpfs           910M     0  910M    0% /sys/fs/cgroup
/dev/sda2        xfs              50G   33M   50G    1% /home
/dev/sda1        xfs             2.0G  174M  1.9G    9% /boot
tmpfs            tmpfs           182M  8.0K  182M    1% /run/user/42
tmpfs            tmpfs           182M   40K  182M    1% /run/user/0
/dev/sr0         iso9660         4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
node4:dis-vol    fuse.glusterfs   40G  265M   40G    1% /test/dis
node4:stripe-vol fuse.glusterfs   40G   65M   40G    1% /test/stripe-vol
[root@client /]# cp demo* /test/stripe-vol/

在node服务器上进行查看

[root@node1 sdb1]# cd ../sdc1/
[root@node1 sdc1]# ll -h
总用量 100M
-rw-r--r--. 2 root root 20M 9  14 22:26 demo1.log
-rw-r--r--. 2 root root 20M 9  14 22:26 demo2.log
-rw-r--r--. 2 root root 20M 9  14 22:26 demo3.log
-rw-r--r--. 2 root root 20M 9  14 22:26 demo4.log
-rw-r--r--. 2 root root 20M 9  14 22:26 demo5.log
1
[root@node2 sdb1]# cd ../sdc1/
[root@node2 sdc1]# ll -h
总用量 100M
-rw-r--r--. 2 root root 20M 9  14 22:26 demo1.log
-rw-r--r--. 2 root root 20M 9  14 22:26 demo2.log
-rw-r--r--. 2 root root 20M 9  14 22:26 demo3.log
-rw-r--r--. 2 root root 20M 9  14 22:26 demo4.log
-rw-r--r--. 2 root root 20M 9  14 22:26 demo5.log

9、复制卷的创建与测试

[root@node3 ~]# gluster volume create rep-vol replica 2 node3:/data/sdb1 node4:/data/sdb1 force
volume create: rep-vol: success: please start the volume to access data
[root@node3 ~]# gluster volume list
dis-vol
rep-vol
stripe-vol
[root@node3 ~]# gluster volume start rep-vol 
volume start: rep-vol: success

client服务器上

[root@client /]# mkdir /test/rep-vol
[root@client /]# mount.glusterfs node4:rep-vol /test/rep-vol/
[root@client /]# df -hT
文件系统         类型            容量  已用  可用 已用% 挂载点
/dev/sda5        xfs              40G  5.1G   35G   13% /
devtmpfs         devtmpfs        895M     0  895M    0% /dev
tmpfs            tmpfs           910M     0  910M    0% /dev/shm
tmpfs            tmpfs           910M   11M  900M    2% /run
tmpfs            tmpfs           910M     0  910M    0% /sys/fs/cgroup
/dev/sda2        xfs              50G   33M   50G    1% /home
/dev/sda1        xfs             2.0G  174M  1.9G    9% /boot
tmpfs            tmpfs           182M  8.0K  182M    1% /run/user/42
tmpfs            tmpfs           182M   40K  182M    1% /run/user/0
/dev/sr0         iso9660         4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
node4:dis-vol    fuse.glusterfs   40G  265M   40G    1% /test/dis
node4:stripe-vol fuse.glusterfs   40G  265M   40G    1% /test/stripe-vol
node4:rep-vol    fuse.glusterfs   20G   33M   20G    1% /test/rep-vol
[root@client /]# cp demo* /test/rep-vol/

node服务器上查看

[root@node3 ~]# cd /data/sdb1/
[root@node3 sdb1]# ll -h
总用量 200M
-rw-r--r--. 2 root root 40M 9  14 22:31 demo1.log
-rw-r--r--. 2 root root 40M 9  14 22:31 demo2.log
-rw-r--r--. 2 root root 40M 9  14 22:31 demo3.log
-rw-r--r--. 2 root root 40M 9  14 22:31 demo4.log
-rw-r--r--. 2 root root 40M 9  14 22:31 demo5.log
[root@node4 ~]# cd /data/sdb1/
[root@node4 sdb1]# ll -h
总用量 200M
-rw-r--r--. 2 root root 40M 9  14 22:31 demo1.log
-rw-r--r--. 2 root root 40M 9  14 22:31 demo2.log
-rw-r--r--. 2 root root 40M 9  14 22:31 demo3.log
-rw-r--r--. 2 root root 40M 9  14 22:31 demo4.log
-rw-r--r--. 2 root root 40M 9  14 22:31 demo5.log

10、 分布式条带卷的创建与测试

[root@node3 sdb1]# gluster volume create dis-stripe stripe 2  node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
volume create: dis-stripe: success: please start the volume to access data
[root@node3 sdb1]# gluster volume list
dis-stripe
dis-vol
rep-vol
stripe-vol
[root@node3 sdb1]# gluster volume start dis-stripe 
volume start: dis-stripe: success

client服务器

[root@client /]# mkdir /test/dis-stripe
[root@client /]# mount.glusterfs node4:dis-stripe /test/dis-stripe/
[root@client /]# df -Th
文件系统         类型            容量  已用  可用 已用% 挂载点
/dev/sda5        xfs              40G  5.1G   35G   13% /
devtmpfs         devtmpfs        895M     0  895M    0% /dev
tmpfs            tmpfs           910M     0  910M    0% /dev/shm
tmpfs            tmpfs           910M   11M  900M    2% /run
tmpfs            tmpfs           910M     0  910M    0% /sys/fs/cgroup
/dev/sda2        xfs              50G   33M   50G    1% /home
/dev/sda1        xfs             2.0G  174M  1.9G    9% /boot
tmpfs            tmpfs           182M  8.0K  182M    1% /run/user/42
tmpfs            tmpfs           182M   40K  182M    1% /run/user/0
/dev/sr0         iso9660         4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
node4:dis-vol    fuse.glusterfs   40G  265M   40G    1% /test/dis
node4:stripe-vol fuse.glusterfs   40G  265M   40G    1% /test/stripe-vol
node4:rep-vol    fuse.glusterfs   20G  233M   20G    2% /test/rep-vol
node4:dis-stripe fuse.glusterfs   80G  130M   80G    1% /test/dis-stripe
[root@client /]# cp demo* /test/dis-stripe/

node服务器上查看

[root@node1 sdc1]# cd ../sdd1/
[root@node1 sdd1]# ll -h
总用量 80M
-rw-r--r--. 2 root root 20M 9  14 22:36 demo1.log
-rw-r--r--. 2 root root 20M 9  14 22:36 demo2.log
-rw-r--r--. 2 root root 20M 9  14 22:36 demo3.log
-rw-r--r--. 2 root root 20M 9  14 22:36 demo4.log
[root@node2 sdc1]# cd ../sdd1/
[root@node2 sdd1]# ll -h
总用量 80M
-rw-r--r--. 2 root root 20M 9  14 22:36 demo1.log
-rw-r--r--. 2 root root 20M 9  14 22:36 demo2.log
-rw-r--r--. 2 root root 20M 9  14 22:36 demo3.log
-rw-r--r--. 2 root root 20M 9  14 22:36 demo4.log

[root@node3 sdb1]# cd ../sdd1/
[root@node3 sdd1]# ll -h
总用量 20M
-rw-r--r--. 2 root root 20M 9  14 22:36 demo5.log
-rw-r--r--. 2 root root 40M 9  14 22:31 demo5.log
[root@node4 sdb1]# cd ../sdd1/
[root@node4 sdd1]# ll -h
总用量 20M
-rw-r--r--. 2 root root 20M 9  14 22:36 demo5.log

11、分布式复制卷

[root@node3 sdd1]# gluster volume create dis-rep replica 2  node1:/data/sde1 node2:/data/sde1 node3:/data/sde1 node4:/data/sde1 force
volume create: dis-rep: success: please start the volume to access data
[root@node3 sdd1]# gluster volume list
dis-rep
dis-stripe
dis-vol
rep-vol
stripe-vol
[root@node3 sdd1]# gluster volume start dis-rep 

client服务器

[root@client /]# mkdir /test/dis-rep
[root@client /]# mount.glusterfs node4:dis-rep /test/dis-rep/
[root@client /]# df -Th
文件系统         类型            容量  已用  可用 已用% 挂载点
/dev/sda5        xfs              40G  5.1G   35G   13% /
devtmpfs         devtmpfs        895M     0  895M    0% /dev
tmpfs            tmpfs           910M     0  910M    0% /dev/shm
tmpfs            tmpfs           910M   11M  900M    2% /run
tmpfs            tmpfs           910M     0  910M    0% /sys/fs/cgroup
/dev/sda2        xfs              50G   33M   50G    1% /home
/dev/sda1        xfs             2.0G  174M  1.9G    9% /boot
tmpfs            tmpfs           182M  8.0K  182M    1% /run/user/42
tmpfs            tmpfs           182M   40K  182M    1% /run/user/0
/dev/sr0         iso9660         4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
node4:dis-vol    fuse.glusterfs   40G  265M   40G    1% /test/dis
node4:stripe-vol fuse.glusterfs   40G  265M   40G    1% /test/stripe-vol
node4:rep-vol    fuse.glusterfs   20G  233M   20G    2% /test/rep-vol
node4:dis-stripe fuse.glusterfs   80G  330M   80G    1% /test/dis-stripe
node4:dis-rep    fuse.glusterfs   40G   65M   40G    1% /test/dis-rep
[root@client /]# cp demo* /test/dis-rep/

各个node服务器

[root@node1 sdd1]# cd ../sde1/
[root@node1 sde1]# ll -h
总用量 160M
-rw-r--r--. 2 root root 40M 9  14 22:40 demo1.log
-rw-r--r--. 2 root root 40M 9  14 22:40 demo2.log
-rw-r--r--. 2 root root 40M 9  14 22:40 demo3.log
-rw-r--r--. 2 root root 40M 9  14 22:40 demo4.log

[root@node2 sdd1]# cd ../sde1/
[root@node2 sde1]# ll -h
总用量 160M
-rw-r--r--. 2 root root 40M 9  14 22:40 demo1.log
-rw-r--r--. 2 root root 40M 9  14 22:40 demo2.log
-rw-r--r--. 2 root root 40M 9  14 22:40 demo3.log
-rw-r--r--. 2 root root 40M 9  14 22:40 demo4.log

[root@node3 sdd1]# cd ../sde1/
[root@node3 sde1]# ll -h
总用量 40M
-rw-r--r--. 2 root root 40M 9  14 22:40 demo5.log

[root@node4 sdd1]# cd ../sde1/
[root@node4 sde1]# ll -h
总用量 40M
-rw-r--r--. 2 root root 40M 9  14 22:40 demo5.log

你可能感兴趣的:(网站平台搭建及应用,分布式)