专栏首页用户7721898的专栏大点干!早点散----------深入剖析GFS分布式文件系统

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

文章目录

一、GlusterFS(GFS)介绍

1、GlusterFS

Gluster File System,开源的分布式文件系统,是Scale存储的核心,能够处理千数量级的客户端.在传统的解决 方案中Glusterfs能够灵活的结合物理的,虚拟的和云资源去体现高可用和企业级的性能存储 由存储服务器(Brick Server)、客户端以及NFS/Samba 存储网关组成 无元数据服务器

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,并且将数据写入到服务器存储设备上

二、GlusterFS的卷类型

1、分布式卷

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

分布式卷具有如下特点:

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

2、条带卷

根据偏移量将文件分成N块(N个条带节点),轮询的存储在每个Brick Server节点 存储大文件时,性能尤为突出 不具备冗余性,类似Raid0

3、复制卷

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

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 目录中。

5、分布式复制卷

分布式复制卷兼顾分布式卷和复制卷的功能,主要用于需要冗余的情况下。File1 和 File2 通过分布式卷的功能分别定位到 Server1 和 Server2。 在存放 File1 时,File1 根据复制卷的特性,将存在两个相同的副本,分别是 Server1 中的 exp1 目录和 Server2 中的 exp2 目录。在存放 File2 时,File2 根据复制卷的特性,也将存 在两个相同的副本,分别是 Server3 中的 exp3 目录和 Server4 中的 exp4 目录。

6、条带复制卷

首先触发条带卷的功能,将数据等分成4份,轮询存放 ,然后轮询后再进行触发复制卷的作用,进行复制

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 大点干!早点散----------LVS负载均衡之LVS-NAT部署实战

    VMware软件 一台centos7作为LVS网关,双网卡 两台centos7作为Apache服务器 一台centos7作为NFS存储 一台win10作...

    不吃小白菜
  • 手把手教你,嘴对嘴传达----Apache虚拟主机配置与应用

    在同一台服务器中运行多个web站点,其中每一个站点并不独立占用一台真正的计算机 通过虚拟web主机可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本...

    不吃小白菜
  • 搞它!!!Linux构建远程YUM仓库与NFS共享存储服务

    FTP服务:ftp://… HTTP服务: http://… 本地目录:file://…

    不吃小白菜
  • 利用rbd命令把 ceph pool 中的一个镜像导出

    查看镜像 [root@node1 ~]# rbd ls images a56330e7-79d7-4639-a68f-366ac344bfe2 eccfee07...

    院长技术
  • Root 是谁?为什么会有 Root 账户?

    在 Linux 中为什么会有一个名为 root 的特定账户?该怎么使用 root 账户?它在哪些场景下必须使用,哪些场景下不能使用?对于以上几个问题,如果您感兴...

    前端博客 : alili.tech
  • Golang Leetcode 450. Delete Node in a BST.go

    版权声明:原创勿转 https://blog.csdn.net/anakinsun/article/details/89175007

    anakinsun
  • Linux下ndk编译移植FFmpeg到Android平台简介

    这里我们选择3.2.4版本(注意:这里使用的3.2.4版本,如果用最新的版本,编译可能出现问题,为了想让大家上手,建议版本先保持一致)。直接github上选择下...

    用户2929716
  • 【趣学程序】Linux流的重定向

    趣学程序-shaofeer
  • 在KVM加速的Qemu中运行Android Oreo

    本文你将学习到如何在KVM加速的Qemu中运行Android Oreo (8.1.0) 系统,并通过我们的Linux x86_64主机上运行的Burp Suit...

    FB客服
  • 如何在CDH集群安装Anaconda&搭建Python私有源

    Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本p...

    Fayson

扫码关注云+社区

领取腾讯云代金券