GlusterFS安装配置

 

公司业务变化需要文件服务器,之前使用的nfs在服务器多的情况下,对用户要求太高导致好多用户不能写入。之后测试了sambanfs用户体验不好,rsync多主机之间配置比较复杂。

 

1.GlusterFS文件系统和架构介绍

         1)、GlusterFS文件系统简介及优点

                                     GlusterFSScale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。

         2)GlusterFS借助TCP/IPInfiniBandRDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。

         3)、GlusterFS基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能。

         4)、GlusterFS支持运行在任何标准IP网络上标准应用程序的标准客户端,用户可以在全局统一的命名空间中使用NFS/CIFS等标准协议来访问应用数据。

         5)、GlusterFS使用用户可摆脱原有的独立、高成本的封闭存储系统,能够利用普通廉价的存储来部署集中管理、横向扩展、虚拟化的存储池,存储容量可扩展至TB/PB级。

        

 

2.安装配置

以下是两台主机配置复制模式:

 

192.168.1.10 server1

192.168.1.20 server2

 

每台主机必须准备一台没有格式化的硬盘,GlusterFS需要独立使用一块硬盘。

 

格式化硬盘

mkfs.xfs -i size=512  /dev/sdb1 mkdir -p /data/test echo '/dev/sdb1/data/logs  xfs defaults 1 2' >>/etc/fstab mount -a && mount

 

启动、停止服务

启动glusterfs

service glusterd start service glusterdstatus

service glusterd stop

 

创建集群

gluster peer probe server2

gluster peer probe server1

 

创建共享盘

mkdir -p /data/brick1/gv0

gluster volume create gv0 replica 2server1:/data/logs/gv0 server2:/data/logs/gv0 gluster volume start gv0

 

查看卷信息状态

gluster volume info

 

启动、停止卷

gluster volume start gv0

gluster volume stop gv0

 

客户端安装

wget -P /etc/yum.repos.dhttp://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo

yum install -y glusterfs-3.4.2-1.el6glusterfs-fuse-3.4.2-1.el6

 

客户端挂载磁盘

mount -t glusterfs server1:/gv0 /mnt

 

测试创建文件   for i in `seq -w 1 100`; docp -rp /var/log/messages /mnt/copy-test-$i; done

 

ls -lA /mnt | wc -l

ls -lA /data/logs/gv0

 

删除卷

volume delete gv0

 

移除集群

gluster peer detach server1  server2

 

 

收缩卷

1.      glustervolume remove-brick gv0 server1:/data/logs/gv0 server2:/data/logs/gv0 start # 开始迁移  

2.      glustervolume remove-brick gv0 server1:/data/logs/gv0 server2:/data/logs/gv0 status # 查看迁移状态  

3.      glustervolume remove-brick gv0 server1:/data/logs/gv0 server2:/data/logs/gv0 commit # 迁移完成后提交

 

 

 

系统运维篇

1、系统配额

# gluster volume quota VOLNAMEenable/disable

//在使用系统配额功能时,需要使用enable将其开启;disable为关闭配额功能命令。

2.设置(重置)目录配额

# gluster volume quota VOLNAME limit-usage/directorylimit-value

#gluster volume quota vg0 limit-usage/quota 10GB

//如上,设置dht_vol卷下的quota子目录的限额为10GB

PS:这个目录是以系统挂载目录为根目录”/,所以/quota即客户端挂载目录下的子目录quota

3.配额查看

# gluster volume quota VOLNAME list

# gluster volume quota VOLNAME list/directory name

//可以使用如上两个命令进行系统卷的配额查看,第一个命令查看目的卷的所有配额设置,第二个命令则是执行目录进行查看。

//可以显示配额大小及当前使用容量,若无使用容量(最小0KB)则说明设置的目录可能是错误的(不存在)

4.地域复制、灾备(geo-replication)

# gluster volume geo-replication MASTERSLAVE start/status/stop

地域复制是系统提供的灾备功能,能够将系统的全部数据进行异步的增量备份到另外的磁盘中。

#gluster volume geo-replicationdht_vol192.168.2.104:/mnt/sdb1 start

//如上,开始执行将dht_vol卷的所有内容备份到2.104下的/mnt/sdb1中的task,需要注意的是,这个备份目标不能是系统中的Brick

5. I/O信息查看

 Profile Command 提供接口查看一个卷中的每一个 brick IO 信息。

#gluster volume profile VOLNAME start

//启动profiling,之后则可以进行IO信息查看

 

#gluster volume profile VOLNAME info

//查看IO信息,可以查看到每一个BrickIO信息

 

# gluster volume profile VOLNAME stop

//查看结束之后关闭profiling功能

6. Top监控

Top command 允许你查看bricks 的性能例如:read,write, file opencalls, file read calls, file write calls, directory open calls,and directoryreal calls

所有的查看都可以设置top 数,默认100

 

# gluster volume top VOLNAME open[brickBRICK-NAME] [list-cnt cnt]

//查看打开的fd

 

#gluster volume top VOLNAME read [brickBRICK-NAME][list-cnt cnt]

//查看调用次数最多的读调用

 

#gluster volume top VOLNAME write [brickBRICK-NAME][list-cnt cnt]

//查看调用次数最多的写调用

 

# gluster volume top VOLNAME opendir[brickBRICK-NAME] [list-cnt cnt]

# gluster volume top VOLNAME readdir[brickBRICK-NAME] [list-cnt cnt]

//查看次数最多的目录调用

 

# gluster volume top VOLNAME read-perf[bsblk-size count count] [brick BRICK-NAME] [list-cnt cnt]

//查看每个Brick的读性能

 

# gluster volume top VOLNAME write-perf[bsblk-size count count] [brick BRICK-NAME] [list-cnt cnt]

//查看每个Brick的写性能

 

性能调优示例:

gluster volume start file-backup

gluster volume quota file-backup enable

gluster volume quota file-backuplimit-usage /800TB

gluster volume set file-backupauth.allow192.168.10.31,192.168.12.27

gluster volume setfile-backupperformance.cache-size 4GB

gluster volume setfile-backupperformance.flush-behind on

gluster volume info file-backup

 

 

 

 

gluster 性能优化、报错解决:

peer 节点从一个集群,加入到另外一个集群的时候,节点不能启动 glusterd 报错解决方法:

 

[root@server114 glusterfs]#vi/usr/local/glusterfs/etc/glusterfs/glusterd.vol

volume management

   typemgmt/glusterd

   option working-directory /var/lib/glusterd

   optiontransport-type socket,rdma

   optiontransport.socket.keepalive-time 10

   optiontransport.socket.keepalive-interval 2

   optiontransport.socket.read-fail-log off

#  optionbase-port 49152

 

/var/lib/glusterd  里面有记录信息,删除下面的所有信息,清空历史记录配置文件,服务即可启动

 

 

扩容server1硬盘,server1之前100G 扩容后200G

fdisk /dev/xvdb 重新分配硬盘空间

mkfs.xfs -i size=512  /dev/xvdb1 格式化硬盘

gluster volume start vol force 卷修复 数据自动同步


参考内容 

https://www.tecmint.com/perform-self-heal-and-re-balance-operations-in-gluster-file-system/磁盘格式化修复

 

测试删除其中一个节点内容,删除后几分钟后会自动同步回来。

关闭集群或机器大概两、三分钟不能访问挂载文件夹,之后一切正常启动后机器会自动复制内容。