GlusterFS 安装及使用简介

作者简介:饶冰,现就职于北京海天起点,拥有十余年Oracle产品服务及实施经验,曾供职于Oracle University和Oracle Support Service部门。拥有OCM,Exadata,EM12c,WebLogic12c等多项认证。目前主要负责基于Oracle产品的解决方案研发和实施工作,涉猎行业有电信、政府、金融、能源、制造等等。

GlusterFS是一个分布式文件系统,通过 RDMA 和 TCP/IP 方式将分布到不同服务器上的存储空间汇集成一个大的网络并行文件系统,它的安装配置简单,扩展性和性能也都还不错,从Oracle DBA的角度看,在有些场景下还是可以考虑的,比如存放OGG的trail文件,比如存放归档或逻辑备份什么的。本文简单介绍一下GlusterFS在RedHat 7下的安装和使用。

实验环境:

主机 网络 OS 存储
192.168.0.18 服务器 192.168.0.18 1Gb eth
192.168.1.18 56Gb IB
192.168.2.18 56Gb IB
Redhat 7.4 /dev/sdb
192.168.0.19 服务器 192.168.0.19 1Gb eth
192.168.1.19 56Gb IB
192.168.2.19 56Gb IB
Redhat 7.4 /dev/sdb
192.168.0.97 服务器 192.168.0.97 1Gb eth
192.168.1.97 56Gb IB
192.168.2.97 56Gb IB
Redhat 7.4 /dev/sdb
192.168.0.98 服务器 192.168.0.98 1Gb eth
192.168.1.98 56Gb IB
192.168.2.98 56Gb IB
Redhat 7.4 /dev/sdb
192.168.0.17 客户端 192.168.0.17 1Gb eth
192.168.1.17 56Gb IB
192.168.2.17 56Gb IB
Redhat 7.4

从源码安装

首先是安装依赖的包:

  • Linux发布中自带的包

  • 需要单独下载的包

可以在这个地址找到:https://centos.pkgs.org/7/epel-x86_64/48/

不要安装更新的版本,比如使用源码安装userspace-rcu的1.0版本,会导致glusterfs编译报错。

下载GlusterFS源码地址:https://github.com/gluster/glusterfs/archive/v4.1.3.zip

解压缩,安装:

安装就完成了。

启动glusterd服务:

使用源码安装,server和client的步骤都是一样的,只是在客户端不用启动glusterd服务。

GlusterFS架构

介绍配置方法之前,先介绍一下基本概念

trusted storage pool(TSP)

TSP就是由存储服务器组成的网络,在开始配置GlusterFS之前,需要将所有存储服务器加入到这个网络。

Peer

Peer就是指的每一个存储服务器

Brick

Brick可以理解为GlusterFS管理的存储单元,brick一般表现形式是一个文件系统,brick底层是如何组成的,GlusterFS不管,可以是一个物理磁盘,也可以是做完RAID后的逻辑磁盘,也可以是ZFS卷。

Volume

Volume就是客户端可以使用的存储单元,volume是由多个brick组成的,volume的类型有分布,复制,分布复制等几种,3.7以后条带类型的卷没有了,取而代之的是shard特性。

分布卷是将文件分布到不同的brick上,所有brick组成volume,没有数据冗余,我理解类似RAID0,但是,注意单纯的分布卷并不做条带化,也就是不会切割大文件。

复制卷就是在多个brick上存放文件副本,我理解类似RAID1,复制卷的副本数可以2或者3。

分布复制卷就是既做复制又做分布,brick个数必须是副本数的整数倍。我理解类似RAID10

虽然类似RAID,但是注意上述三种卷都不做条带化,glusterfs 3.7 之前还有一种条带卷,可以做条带化,3.7之后,用shard功能取代了条带卷,上述三种卷都可以启用shard功能,将大文件分片。

配置步骤

将存储服务器加入TSP

在 192.168.0.18上执行:

本机不用加入,直接就在TSP里面:

查看pool情况:

准备bricks

在每台存储服务器执行:

创建卷

创建一个分布复制卷:

其中replica 2,代表副本数是2。

其中transport的取值可以是”rdma” 或 “tcp” 或 “tcp,rdma”,如果使用普通万兆网络,就是tcp,使用带RDMA功能的融合以太或ib,就使用rdma来得到更好的性能。

挂载glusterfs卷

在192.168.0.17挂载卷:

我在这里用了另一个ib链路mount glusterfs卷,对应192.168.2.x的地址,glusterfs内网使用192.168.1.x 链路,也就是private和public网络分开,避免争用。

为了得到更好的大文件操作性能,我们还可以打开shard功能:

系统会自动计算一个合适的块大小来做分片,也可以通过参数设定。

测试

创建一个大文件:

文件在bricks上存储会被分片,如果没启用shard功能,这个100g的大文件只会在两个brick上存在,因为分布复制卷,会分布多个文件,单一文件是不拆散的,我们是4个brick,所以会有一个brick复制这个文件,所以只有两个brick上有这个100g的大文件。如果启用了shard功能,系统会将文件分成若干份,在2个互为复制的brick上只放文件的第一个分片,其他分片会均匀第分布到所有的brick上,存放在brick对应的目录下的隐藏目录.shard下。

我们到192.168.0.18上查看:

可以看到./shard目录下大概是49G的文件,加上文件的第一个分片,2个节点100G,双副本,所以每个节点都会有50G左右的文件。

未经允许不得转载:Oracle一体机用户组 » GlusterFS 安装及使用简介

相关推荐