文章目录

  • 一、 GlusterFS 概述
    • 1.1 GlusterFS 简介
      • 与传统分布式相比的优点
    • 1.2 GlusterFS 的特点
      • 扩展性和高性能
      • 高可用性
      • 全局统一命名空间
      • 弹性卷管理
      • 基于标准协议
    • 1.3 GlusterFS 术语
    • 1.4 模块化堆栈式架构
  • 二、 GlusterFS 工作原理
    • 2.1 GlusterFS 工作流程
    • 2.2 弹性 HASH 算法
    • 2.3 GlusterFS 的卷类型
      • 2.3.1 分布式卷
      • 2.3.2 条带卷
      • 2.3.3 复制卷
      • 2.3.4 分布式条带卷
      • 2.3.5 分布式复制卷
  • 三、 部署 GlusterFS 群集
    • 实验目的
    • 实验环境
    • 实验参数
    • 实验过程
      • 1. 环境准备
      • 2. 修改主机名,做hosts文件解析
      • 3. 编辑脚本进行磁盘分区,并挂载
      • 4. 配置yum本地源,安装环境包
      • 5. 同步时间,添加到存储信任池
      • 6. 分布式卷的建立与查看
      • 7. 客户机的环境搭建,并挂载分布式卷
      • 8. 创建测试性文件
      • 9. 分布式卷的文件存储测试
      • 10. 条带卷的创建与测试
      • 11. 复制卷的创建与测试
      • 12. 分布式条带卷的创建与测试
      • 13. 分布式复制卷

一、 GlusterFS 概述

1.1 GlusterFS 简介

GlusterFS 是一个开源的分布式文件系统,主要由存储服务器(BrickServer)、客户端及 NFS/Samba 存储网关(可选, 根据需要选择使用)组成。在存储数据方面具有强大的横向扩展能力,通过扩展不同的节点可以支持数 PB 级别的存储容量。

GlusterFS 借助 TCP/IP 或 InfiniBandRDMA 网络将分散的存储资源汇聚在 一起,统一提供存储服务,并使用单一全局命名空间来管理数据。

与传统分布式相比的优点

传统的分布式文件系统大多通过元服务器来存储元数据,元数据包含存储节点上的目录信息、目录结构等。这样的设计在浏览目录时效率非常高,但是也存在一些缺陷,例如单点故障。一旦元数据服务器出现故障,即使节点具备再高的冗余性,整个存储系统也将崩溃。

GlusterFS 分布式文件系统是基于无元服务器的设计,数据横向扩展能力强,具备较高的可靠性及存储效率。GlusterFS 支持 TCP/IP 和 InfiniBandRDMA 高速网络互联,客户端可通过原生 GlusterFS 协议访问数据,其他没有运行 GlusterFS 客户端 的终端可利用 NFS/CIFS 标准协议通过存储网关访问数据。

1.2 GlusterFS 的特点

扩展性和高性能

  • Scale-Out 架构通过增加存储节点的方式来提高存储容量和性能(磁盘、计算和 I/O 资源都可以独立增加)。
  • Gluster 弹性哈希(Elastic Hash)解决了 GlusterFS 对元数据服务器的依赖, GlusterFS 采用弹性哈希算法在存储池中定位数据。GlusterFS 中可以智能地定位任意数据分片(将数据分片存储在不同节点上),不需要查看索引或者向元数据服务器查询。这种设计机制实现了存储的横向扩展, 改善了单点故障及性能瓶颈,真正实现了并行化数据访问。

高可用性

GlusterFS 通过配置某些类型的存储卷,可以对文件进行自动复制(类似于 RAID1) ,即使某个节点出现故障,也不影响数据的访问。当数据出现不一致时,自动修复功能能够把数据恢复到正确的状态,数据的修复是以增量的方式在后台执行, 不会占用太多系统资源。

全局统一命名空间

全局统一命名空间将所有的存储资源聚集成一个单一的虚拟存储池,对用户和应用屏蔽了物理存储信息。存储资源(类似于 LVM)可以根据生产环
境中的需要进行弹性扩展或收缩。在多节点场景中,全局统一命名空间还可以基于不同节点做负载均衡,大大提高了存取效率。

弹性卷管理

GlusterFS 通过将数据储存在逻辑卷中,逻辑卷从逻辑存储池进行独立
逻辑划分。逻辑存储池可以在线进行增加和移除,不会导致业务中断

基于标准协议

Gluster 存储服务支持 NFS、CIFS、HTTP、FTP、SMB 及 Gluster 原生协议,完全与 POSIX 标准兼容。现有应用程序不需要做任何修改就可以对 Gluster 中的数据进行访问,也可以使用专用 API 进行访问(效率更高),这在公有云环境中部署 Gluster 时非常有用。

1.3 GlusterFS 术语

  • Brick(存储块):指可信主机池中由主机提供的用于物理存储的专用分区,是 GlusterFS 中的基本存储单元,同时也是可信存储池中服务器上对外提供的存储目录。
  • Volume(逻辑卷):一个逻辑卷是一组 Brick 的集合。卷是数据存储的逻辑设备,类 似于 LVM 中的逻辑卷。大部分 Gluster 管理操作是在卷上进行的。
  • FUSE(FilesysteminUserspace):是一个内核模块,允许用户创建自己的文件系统,无须修改内核代码。
    VFS:内核空间对用户空间提供的访问磁盘的接口。
    Glusterd(后台管理进程):在存储群集中的每个节点上都要运行。

1.4 模块化堆栈式架构

GlusterFS 采用模块化、堆栈式的架构,可以根据需求配置定制化的应用环境,通过对模块进行各种组合,即可实现复杂的功能。

例如 Replicate 模块可实现 RAID1,Stripe 模块可实现 RAID0,通过两者的组合可实现 RAID10 和 RAID01,同时获得更高的性能及可靠性。


GlusterFS 是模块化堆栈式的架构设计,模块称为 Translator,是 GlusterFS 提供的一种强大机制,借助这种良好定义的接口可以高效简便地扩展文件系统的功能

  • 服务端与客户端的设计高度模块化的同时模块接口是兼容的,同一个 translator 可同时在客户端和服务器加载。
  • GlusterFS 中所有的功能都是通过 translator 实现的,其中客户端要比服务端更复杂,所以功能的重点主要集中在客户端上。

二、 GlusterFS 工作原理

2.1 GlusterFS 工作流程


GlusterFS 的工作流程如下:

  1. 客户端或应用程序通过 GlusterFS 的挂载点访问数据。
  2. Linux 系统内核通过 VFSAPI 收到请求并处理。
  3. VFS将数据递交给FUSE内核文件系统,并向系统注册一个实际的文件系统FUSE, 而 FUSE 文件系统则是将数据通过/dev/fuse 设备文件递交给了 GlusterFS client 端。可以 将 FUSE 文件系统理解为一个代理。
  4. GlusterFS client 收到数据后,client 根据配置文件对数据进行处理。
  5. 经过 GlusterFS client 处理后,通过网络将数据传递至远端的 GlusterFS Server,并且将数据写入服务器存储设备。

2.2 弹性 HASH 算法

弹性 HASH 算法是 Davies-Meyer 算法的具体实现,通过 HASH 算法可以得到一个 32 位的整数范围的 hash 值,假设逻辑卷中有 N 个存储单位 Brick,则 32 位的整数范围将被划分为 N 个连续的子空间,每个空间对应一个 Brick。当用户或应用程序访问某一个命名空间时,通过对该命名空间计算 HASH 值,根据该 HASH 值所对应的 32 位整数空间定位数据所在的 Brick。

2.3 GlusterFS 的卷类型

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

  • 分布式卷(Distribute volume):文件通过 HASH 算法分布到所有 Brick Server 上, 这种卷是 Glusterf 的基础;以文件为单位根据 HASH 算法散列到不同的 Brick,其实只是扩大了磁盘空间,如果有一块磁盘损坏,数据也将丢失,属于文件级的 RAID0,不具有容错能力。
  • 条带卷(Stripevolume):类似 RAID0,文件被分成数据块并以轮询的方式分布到多 个 BrickServer 上,文件存储以数据块为单位,支持大文件存储,文件越大,读取效率越高。
  • 复制卷(Replica volume):将文件同步到多个 Brick 上,使其具备多个文件副本, 属于文件级 RAID 1,具有容错能力。因为数据分散在多个 Brick 中,所以读性能得到很大提升,但写性能下降。
  • 分布式条带卷(DistributeStripevolume):BrickServer 数量是条带数(数据块分布 的 Brick 数量)的倍数,兼具分布式卷和条带卷的特点。
  • 分布式复制卷(Distribute Replica volume):Brick Server 数量是镜像数(数据副本数量)的倍数,兼具分布式卷和复制卷的特点。
  • 条带复制卷(Stripe Replica volume):类似 RAID 10,同时具有条带卷和复制卷的特点。
  • 分布式条带复制卷(Distribute Stripe Replicavolume):三种基本卷的复合卷,通常 用于类 Map Reduce 应用。

2.3.1 分布式卷

分布式卷是 GlusterFS 的默认卷,在创建卷时,默认选项是创建分布式卷。在该模式下, 文件直接存储在某个 Server 节点上。直接使用本地文件系统进行文件存储。

  • 没有对文件进行分块处理
  • 通过扩展文件属性保存HASH值
  • 支持的底层文件系统有EXT3、EXT4、ZFS、XFS等

特点:

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

2.3.2 条带卷

Stripe 模式相当于 RAID0,在该模式下,根据偏移量将文件分成 N 块(N 个条带节点), 轮询地存储在每个 BrickServer 节点。节点把每个数据块都作为普通文件存入本地文件系统 中,通过扩展属性记录总块数(Stripe-count)和每块的序号(Stripe-index)。

特点:

  • 数据被分割成更小块分布到块服务器群中的不同条带区。
  • 分布减少了负载且更小的文件加速了存取的速度。
  • 没有数据冗余。

2.3.3 复制卷

复制模式,也称为 AFR(AutoFileReplication),相当于 RAID1,即同一文件保存一份或多份副本,每个节点上保存相同的内容和目录结构。。如果多个节点上的存储空间不一致,那么将按照木桶效应取最低节点的容量作为该卷的总容量。

特点:

  • 卷中所有的服务器均保存一个完整的副本。
  • 卷的副本数量可由客户创建的时候决定。
  • 至少有两个块服务器或更多服务器。
  • 具备冗余性。

2.3.4 分布式条带卷

分布式条带卷兼顾分布式卷和条带卷的功能,主要用于大文件访问处理,创建一个分布式条带卷最少需要 4 台服务器。

创建卷时,存储服务器的数量如果等于条带或复制数,那么创建的是条带卷或者复 制卷;如果存储服务器的数量是条带或复制数的 2 倍甚至更多,那么将创建的是分布式条带卷或分布式复制卷。

2.3.5 分布式复制卷

分布式复制卷兼顾分布式卷和复制卷的功能,主要用于需要冗余的情况下。一般适用于存储安全性要求较高的场合,比如银行等。

三、 部署 GlusterFS 群集

实验目的

通过将测试文件存储在部署的 GlusterFS 群集中,查看各种卷类型的存储方式。

实验环境

需要准备五台虚拟机,关闭防火墙和 Selinux。其中 Node1 到 Node4 节点分配 4GB 内存,客户端节点分配 4GB 内存。各节点通过 VMware 虚拟网络 Vmnet8 连接。

实验参数

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,当做测试机使用

实验过程

1. 环境准备

为四台虚拟机添加都添加四块大小为20G的硬盘

对所有的五台虚拟机进行操作,一定要关闭防火墙,清空防火墙规则也不行,会导致实验失败

[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0

分别使用"fdisk -l"命令查看应按添加是否成功,以其中一台为例子

2. 修改主机名,做hosts文件解析

按照之前的实验参数对应的主机名,分别对四台节点服务器进行以下相同操作

[root@localhost ~]# hostnamectl set-hostname node1
[root@localhost ~]# su
[root@node1 ~]# vim /etc/hosts    ##将以下内容追加到文件的末尾
14.0.0.7 node1
14.0.0.110 node2
14.0.0.111 node3
14.0.0.112 node4

3. 编辑脚本进行磁盘分区,并挂载

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

[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 }'`
doecho "npw"| fdisk /dev/$disk
mkfs.xfs -i size=512 /dev/${disk}"1" &> /dev/nullmkdir -p /data/${disk}"1" &> /dev/null
echo -e "/dev/${disk}"1" /data/${disk}"1" xfs defaults 0 0\n" >> /etc/fstabmount -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

将脚本文件用scp命令传输到另外三台node服务器上执行(以传输到14.0.0.110为例)

[root@node1 opt]# scp fdisk.sh root@14.0.0.110:/opt   ##将本地的fdisk.sh文件传输到节点服务器的/opt目录下
The authenticity of host '14.0.0.110 (14.0.0.110)' can't be established.
ECDSA key fingerprint is SHA256:sWKQiGLxIkZB0eRDa5cJpygOXtCmJKqdaa99GVj6viI.
ECDSA key fingerprint is MD5:36:ae:96:cf:f6:56:40:ee:42:37:12:73:73:6a:53:81.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '14.0.0.110' (ECDSA) to the list of known hosts.
root@14.0.0.110's password:
fdisk.sh                                     100%  395    73.4KB/s   00:00
[root@node1 opt]# scp fdisk.sh root@14.0.0.111:/opt
[root@node1 opt]# scp fdisk.sh root@14.0.0.112:/opt

分别对各个节点进行操作

[root@node2 ~]# cd /opt
[root@node2 opt]# ls
fdisk.sh  rh
[root@node2 opt]# sh fdisk.sh

4. 配置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 serverLoaded: loaded (/usr/lib/systemd/system/glusterd.service; enabled; vendor preset: disabled)Active: active (running) since 一 2020-09-14 12:17:11 CST; 40s agoMain 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.

5. 同步时间,添加到存储信任池

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

[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: 3Hostname: 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)

6. 分布式卷的建立与查看

这里使用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 删除分布式卷

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

[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

8. 创建测试性文件

创建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/秒

9. 分布式卷的文件存储测试

将测试文件直接拷贝到挂载目录下,查看两个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

10. 条带卷的创建与测试

[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
[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

11. 复制卷的创建与测试

[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

12. 分布式条带卷的创建与测试

[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

13. 分布式复制卷

[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

企业级别应用--GFS分布式文件系统(GlusterFS工作原理、弹性 HASH 算法 、GlusterFS卷的类型、 部署GlusterFS)相关推荐

  1. GlusterFS/GFS 分布式文件系统--理论详解

    文章目录 一.文件系统简介 1.组成 2.作用 3.文件系统的挂载使用 二.GFS分布式文件系统概述 1.GFS简介 2.GFS的特点 3.GFS专业术语 4. 模块化堆栈式架构 5. GFS 工作流 ...

  2. GFS 分布式文件系统从入门到实践

    文章目录 一.GlusterFS 概述 1.1 GlusterFS简介 1.2 GlusterFS的特点 (一)扩展性和高性能 (二)高可用性 (三)弹性卷管理 (四)基于标准协议 二.Gluster ...

  3. GFS分布式文件系统简介及部署——让存储变得更高级

    GFS分布式文件系统简介及部署 一.GFS概述 1.文件系统 ①.文件系统组成 ②.文件系统的作用 ③.专业术语 二.GFS特点 三.GFS工作原理 四.GFS卷 1.GFS卷类型 2.三大基本卷的特 ...

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

    文章目录 一.GlusterFS(GFS)介绍 1.GlusterFS 2.GlusterFS特点 3.常用术语 4.GFS的结构 5.弹性HASH算法 6.GlusterFS工作原理 二.Glust ...

  5. 浅识一下GFS分布式文件系统

    GFS分布式文件系统 什么是GFS分布式文件系统 GFS(GlusterFS) 是一个开源的分布式文件系统. 由存储服务器.客户端以及NFS/Samba 存储网关(可选,根据需要选择使用)组成. 没有 ...

  6. GFS分布式文件系统

    GFS分布式文件系统 前言 GFS是一个可扩展的分布式文件系统,用于大型的.分布式的.对大量数据进行访问的应用.它运行于廉价的普通硬件上,并提供容错功能.它可以给大量的用户提供总体性能较高的服务. G ...

  7. 分布式应用之GFS分布式文件系统

    内容预知 前言 1. GlusterFS的相关知识 1.1 GlusterFS简介 1.2 GlusterFS特点 1.3 GlusterFS 术语 1.4 模块化堆栈式架构 1.5 GlusterF ...

  8. GFS 分布式文件系统

    目录 1.什么是GFS文件系统 2.分布式文件系统的特点 3.GFS术语 4.gfs卷的分类 4.1分布式卷 4.2条带卷 4.2复制卷 4.4分布式条带卷 4.5分布式复制卷 4.6条带式复制卷 4 ...

  9. 如何搭建GFS分布式文件系统

    如何搭建GFS分布式文件系统 什么是文件系统 文件系统的组成部分 文件系统作用 文件系统的使用 分布式文件系统GFS GFS简介 GFS组成 GFS的特点 GFS专业术语 GFS模块化和堆栈式架构 G ...

最新文章

  1. 在Linux里使用dosbox运行debug.exe
  2. 有了这个运维方案,让IT信息化人员头疼的系统宕机再也没出现
  3. 一种推理优化新思路,对特征图进行[随机采样-插值]
  4. 中国服务业发展的轨迹、逻辑与战略转变——改革开放40年来的经验分析
  5. lu分解 百度百科
  6. iostate知识要点
  7. 内置函数(内嵌函数或内联函数)
  8. 新中大连接服务器文件,新中大服务器数据库未能连接
  9. GoAhead的asp过程与goform过程浅析
  10. 小白Nvidia TK1 Jetpack安装/重装系统详细步骤(小车第一步)
  11. 代码阅读工具强大的代码阅读工具Understand
  12. 最全量子计算硬件概述(建议收藏)
  13. 他一年开发19款!款款口碑爆棚
  14. 如何用一个IPad屏幕适配各尺寸的IPhone
  15. Xcode 错误整理
  16. 00 OpenCV环境搭建(Win10+Opencv3.1+VS2015企业版)
  17. 碳酸氢锂溶液除钙镁技术
  18. 多方合作!上海交大成立两个人工智能相关研究机构
  19. 点击次数、访问次数、访问者人数、综合浏览量和唯一浏览量有何区别?(转)...
  20. 2020春大连理工概率统计 上机作业

热门文章

  1. 关于HMM(隐马尔可夫模型)
  2. html 获取下一个兄弟节点,JS/JQuery获取当前元素的上一个/下一个兄弟级元素等元素的方法...
  3. 思维导图 · B端业务的难点
  4. Excel-VBA-数组-01-定义数组
  5. Django項目部署到Ubuntu服務器
  6. sklearn 中的Ridge函数
  7. C++ini文件操作
  8. 惠普计算机怎样添加程序,小编教你惠普电脑如何进入bios设置
  9. LoadRunner 回放出错
  10. 【小王的安卓之路】Android原生网络请求