详细记录分布式存储(glusterfs)的安装部署心得

目录

一、gfs简介

二、安装部署gfs server

2.1 通过命令查询gfs可安装的版本

2.2 安装指定gfs版本

2.2.1 下载所要安装版本的yum源 

2.2.2 安装gfs-server服务

2.2.3 加入系统启动项及开启和查看gfs服务

2.2.4 安装后检查服务状况

2.2.5 配置服务器dns

2.2.6 配置信任池

2.2.7 挂载外部数据盘(如果磁盘需求不大的可以跳过该步骤)

2.2.8 创建分布式存储目录

2.2.9 验证副本集群是否起作用

三、部署gfs客户端

3.1 配置如下:

3.2 安装须知


一、gfs简介

Gluster File System 是一款自由软件,主要由ZRESEARCH 公司负责开发,十几名开发者,最近非常活跃。 文档也比较齐全,不难上手。

参考资料:

官方安装资料:

SpecialInterestGroup/Storage/gluster-Quickstart - CentOS Wikihttps://wiki.centos.org/SpecialInterestGroup/Storage/gluster-Quickstart

gfs的安装标准及要求说明

Common Criteria - Gluster Docshttps://docs.gluster.org/en/latest/Install-Guide/Common-criteria/

版本选择,gfs的版本信息,目前最新10.1版本,那么我们选型上一个版本的最后一个更新v9.5,参考资料如下:

Release Schedule | Glusterhttps://www.gluster.org/release-schedule/

二、安装部署gfs server

注释:本次创建的卷名称为gfs,glusterfs的版本为9.5版本,本次部署时间为2022年5月,上海疫情封控在家办公期间

本次部署的操作系统为centos7.6

本次部署server服务器列表,分别用gfserver1、2、3来代表服务器:

  1. 192.168.100.2  gfserver1
  2. 192.168.100.3  gfserver2
  3. 192.168.100.4  gfserver3

2.1 通过命令查询gfs可安装的版本

yum search centos-release-gluster

通过查看目前可直接安装的版本如上

2.2 安装指定gfs版本

首先进入gfserver1服务器,执行2.2.1 至2.2.5 的操作,再分别进入gfserver2和3服务器重复操作

2.2.1 下载所要安装版本的yum源 

yum -y install centos-release-gluster9

安装完后在/etc/yum.repos.d/目录中下载了CentOS-Gluster-9.repo文件

可以通过cat /etc/yum.repos.d/CentOS-Gluster-9.repo 查看yum文件相关信息

# CentOS-Gluster-9.repo
#
# Please see http://wiki.centos.org/SpecialInterestGroup/Storage for more
# information

[centos-gluster9]
name=CentOS-$releasever - Gluster 9
mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=$releasever&repo=storage-gluster-9
#baseurl=http://mirror.centos.org/$contentdir/$releasever/storage/$basearch/gluster-9/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage

[centos-gluster9-test]
name=CentOS-$releasever - Gluster 9 Testing
baseurl=http://buildlogs.centos.org/centos/$releasever/storage/$basearch/gluster-9/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage

2.2.2 安装gfs-server服务

yum -y install glusterfs-server 

如果需要可以修改/etc/glusterfs/glusterd.vol进行选择性设置,这里不作过多介绍

2.2.3 加入系统启动项及开启和查看gfs服务

systemctl enable glusterd
systemctl start glusterd
systemctl status glusterd

 

2.2.4 安装后检查服务状况

glusterfs -V

配置文件检查

md5sum /etc/glusterfs/glusterd.vol 

2.2.5 配置服务器dns

vi /etc/hosts

#把下面内容加入hosts文件中
192.168.100.2 gfserver1
192.168.100.3 gfserver2
192.168.100.4 gfserver3

2.2.6 配置信任池

在gfsserver1服务器上配置信任主机池,其他服务器不用操作,集群配置自动同步,注意不用加gfserver1的节点,执行以下命令:

gluster peer probe gfserver2
gluster peer probe gfserver3

分别在三台服务器上执行一下命令

# 查询集群节点状态 
gluster peer status 

 至此,gfs集群服务算建立成功了,后续需要对集群进行相关配置

ok,后续挂载外接数据盘

2.2.7 挂载外部数据盘(如果磁盘需求不大的可以跳过该步骤)

我是在公有云上面操作的,先购买300G的磁盘6个,每个服务器挂载2个

a.然后登录服务器输入命令查看 fdisk -l,多出来 /dev/vdd和/dev/vde

b.创建主机brick存储节点 

先进入gfserver1服务器操作

#节点主机gfserver1

c.格式化磁盘

mkfs.ext4 /dev/vdd
mkfs.ext4 /dev/vde

d.创建外接磁盘挂载目录

mkdir /gfs/data1 /gfs/data2 -p 

e.挂载外接磁盘

mount /dev/vdd /gfs/data1
mount /dev/vde /gfs/data2

 f.查看外接挂载结果

df -h |grep data

g.获取blkid写入系统启动配置文件/etc/fstab

注意:该文件系统启动时候要加载而且对字符特别敏感,建议直接修改文件,不要通过word进行复制黏贴

blkid /dev/vdd
blkid /dev/vde

vi /etc/fstab
#把下面内容加入fstab文件中
UUID=fbe73f6d-bdbd-4600-aad1-4125ac09e4bb /gfs/data1  ext4 defaults 0 0
UUID=3a524638-801e-488a-97b0-270d6dfd55a9 /gfs/data2  ext4 defaults 0 0

h.最后,执行mount -a命令检验该fstab配置文件是否有问题 

i.gfserver2和3 节点服务器也如上操作

2.2.8 创建分布式存储目录

a.分别在三个节点服务器上执行以下操作

mkdir /gfs/mydata -p

b.创建一个名字为gfsvolume的分布式复制卷(在任意节点上执行)

gluster volume create gfsvolume replica 3 gfserver1:/gfs/data1 gfserver1:/gfs/data2 gfserver2:/gfs/data1 gfserver2:/gfs/data2 gfserver3:/gfs/data1 gfserver3:/gfs/data2 force 

注意,replica 3 代表一个文件会变成三份保存

# 启动这个卷
gluster volume start gfsvolume 
# 查询卷的信息
gluster volume info

# 挂载卷到/gfs/mydata目录,不同主机可以挂成不同存储池名字

c.创建一个负载均衡ip,用来映射到三台服务器的24007端口,用来做vip,我这边使用了公有云提供的负责均衡功能,如果使用nginx也能实现,这里就不罗列了,可以去查看我以前写的nginx相关资料

 

d.分别在三台服务器上执行以下命令,挂载分布式复制卷至mydata目录,注意,如上图,我这个vip的ip为192.168.0.251:


mount -t glusterfs 192.168.0.251:/gfsvolume /gfs/mydata

echo "192.168.0.251:/gfsvolume /gfs/mydata glusterfs  defaults  0 0" >> /etc/fstab

注意,涉及到磁盘挂载一定要执行 mount -a 进行检验,如果报错需要检查配置

查看挂载好的磁盘情况:6个磁盘一共1800G空间,因为设置为复制卷,模式为3,所以显示可用存储600G 

2.2.9 验证副本集群是否起作用

[root@node1 gfs]# cd mydata/
[root@node1 mydata]# ls
lost+found
#批量创建10个文件
[root@node1 mydata]# touch file{001..010}
[root@node1 mydata]# ls
file001  file002  file003  file004  file005  file006  file007  file008  file009  file010  lost+found

分别在三台集群server服务器上查看文件,文件随机分布在三台服务器上,并且每个文件复制成三份存储,保证可靠性 

如果要卸载存储,使用umount命令,比如umount gfserver1:/gfsvolume 

三、部署gfs客户端

3.1 配置如下:

客户端操作系统:centos7.6

ip:192.168.0.69

3.2 安装须知

注意:客户端安装 Gluster Native Client ,版本最好和服务端一致,没有具体查过如果不一致会出什么问题

说明 Gluster Native Client是基于FUSE的,所以需要保证客户端安装了FUSE。这个是官方推荐的客户端,支持高并发和高效的写性能。

客户端安装前, 确保客户机器能够访问 服务器的 TCP、UDP的24007~24008 端口、还要确保 49152 ~49156 端口可以访问

官网文档说明
————————————————
Ensure that TCP and UDP ports 24007 and 24008 are open on all Gluster servers. Apart from these ports, 
you need to open one port for each brick starting from port 49152 (instead of 24009 onwards as with previous releases). 
The brick ports assignment scheme is now compliant with IANA guidelines. For example: if you have five bricks, you need to have ports 49152 to 49156 open.

From Gluster-10 onwards, the brick ports will be randomized. A port is randomly selected within the range of 
base_port to max_port as defined in glusterd.vol file and then assigned to the brick. For example: if you have
 five bricks, you need to have at least 5 ports open within the given range of base_port and max_port. 
 To reduce the number of open ports (for best security practices), one can lower the max_port value 
 in the glusterd.vol file and restart glusterd to get it into effect.

3.3 安装客户端

vim /etc/hosts ,添加以下内容

192.168.100.2 gfserver1

192.168.100.3 gfserver2

192.168.100.4 gfserver3
# 将FUSE可加载内核模块(LKM)添加到Linux内核
modprobe fuse
# 验证是否已加载FUSE模块
dmesg | grep -i fuse

#下载所要安装版本的yum源
yum -y install centos-release-gluster9
#安装客户端
yum -y install glusterfs-client

#查看版本
glusterfs -V
# 创建挂载目录
mkdir -p /data/gfsdata
# 挂载/gv0
[root@i-8uoxabkv ~]# mount -t glusterfs 192.168.0.251:/gfsvolume /data/gfsdata

3.4 问题排查(无问题可跳过) 

注意,挂载的时候报错了,Mount failed. Check the log file  for more details.

报错了,查看gfs日志

tail -f /var/log/glusterfs/data-gfsdata.log 查询发现是dns解析问题

vim /etc/hosts ,添加以下内容

192.168.100.2 gfserver1

192.168.100.3 gfserver2

192.168.100.4 gfserver3

重新挂载成功

启动自动挂载

vim /etc/fstab

192.168.0.251:/gfsvolume /data/gfsdata glusterfs  defaults        0 0

注意,我测试如果gfs server集群关闭,如果不能挂载,会不会客户端服务器重启后会无法正常进入系统

已验证通过,可以在server集群无法连接的情况系统还能正常加载

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值