GlusterFS分布式文件存储部署

GlusterFS集群创建

一、简介

GlusterFS概述

Glusterfs是一个开源的分布式文件系统,是Scale存储的核心,能够处理千数量级的客户端.在传统的解决 方案中Glusterfs能够灵活的结合物理的,虚拟的和云资源去体现高可用和企业级的性能存储.
Glusterfs通过TCP/IP或InfiniBand RDMA网络链接将客户端的存储资块源聚集在一起,使用单一的全局命名空间来管理数据,磁盘和内存资源.
Glusterfs基于堆叠的用户空间设计,可以为不同的工作负载提供高优的性能.
Glusterfs支持运行在任何标准IP网络上标准应用程序的标准客户端,如下图1所示,用户可以在全局统一的命名空间中使用NFS/CIFS等标准协议来访问应用数据.
Glusterfs主要特征

扩展性和高性能

高可用
全局统一命名空间
弹性hash算法
弹性卷管理
基于标准协议

工作原理:

1) 首先是在客户端, 用户通过glusterfs的mount point 来读写数据, 对于用户来说,集群系统的存在对用户是完全透明的,用户感觉不到是操作本地系统还是远端的集群系统。
2) 用户的这个操作被递交给 本地linux系统的VFS来处理。
3) VFS 将数据递交给FUSE 内核文件系统:在启动 glusterfs 客户端以前,需要想系统注册一个实际的文件系统FUSE,如上图所示,该文件系统与ext3在同一个层次上面, ext3 是对实际的磁盘进行处理, 而fuse 文件系统则是将数据通过/dev/fuse 这个设备文件递交给了glusterfs client端。所以, 我们可以将 fuse文件系统理解为一个代理。
4) 数据被fuse 递交给Glusterfs client 后, client 对数据进行一些指定的处理(所谓的指定,是按照client 配置文件据来进行的一系列处理, 我们在启动glusterfs client 时需要指定这个文件。
5) 在glusterfs client的处理末端,通过网络将数据递交给 Glusterfs Server,并且将数据写入到服务器所控制的存储设备上。

常用卷类型

分布(distributed)

复制(replicate)

条带(striped)

基本卷:

(1) distribute volume:分布式卷

(2) stripe volume:条带卷

(3) replica volume:复制卷

复合卷:

(4) distribute stripe volume:分布式条带卷

(5) distribute replica volume:分布式复制卷

(6) stripe replica volume:条带复制卷

(7) distribute stripe replicavolume:分布式条带复制卷

二、环境规划

注:web001-web003 为服务端 ,client为客户端。

操作系统 IP 主机名
Centos7.6 192.168.10.200 web001
Centos7.6 192.168.10.201 web002
Centos7.6 192.168.10.202 web003
Centos7.6 192.168.10.203 client

1.环境准备:(web001-web003 同时操作)

#配置hosts文件
cat /etc/hosts
192.168.10.200 web001
192.168.10.201 web002
192.168.10.202 web003
#关闭selinux
sed -i 's/=enforcing/=disabled/' /etc/selinux/config
setenforce 0

二、安装 GlusterFS

1.yum 安装GlusterFS

yum install centos-release-gluster -y
yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
systemctl enable glusterd.service
systemctl start glusterd.service

三、防火墙设置

1.GlusterFS 节点之间的沟通必须运用 TCP 端口 24007-24008,另外每件砖块须要一个由 24009 起分派的 TCP 端口。

firewall-cmd --zone=public --add-port=24007-24008/tcp --permanent
firewall-cmd --reload
#为 Glusterfs/NFS/CIFS 客户端打开防火墙
firewall-cmd --zone=public --add-service=nfs --add-service=samba --add-service=samba-client --permanent
firewall-cmd --zone=public --add-port=111/tcp --add-port=139/tcp --add-port=445/tcp --add-port=965/tcp --add-port=2049/tcp --add-port=38465-38469/tcp --add-port=631/tcp --add-port=111/udp --add-port=963/udp --add-port=49152-49251/tcp  --permanent

四、互联三台服务器

1.在 web001 上执行:

gluster peer probe web002
#返回:peer probe: success.
gluster peer probe web003
#返回:peer probe: success.

2.在 web002 上执行:

gluster peer probe web001
#返回:peer probe: success. Host web001 port 24007 already in peer list
gluster peer probe web003
#返回:peer probe: success. Host web003 port 24007 already in peer list

3.在 web003 上执行:

gluster peer probe web001
#返回:peer probe: success. Host web001 port 24007 already in peer list
gluster peer probe web002
#返回:peer probe: success. Host web002 port 24007 already in peer list

五、创建共享卷

1.在 web001,web002,web003 上创建存储 GlusterFS 管理的文件的目录。

mkdir -p /data/gluster-webdata

2.在 web001 上,创建可复制的 GlusterFS 卷 webdata,执行:

gluster volume create webdata replica 3 transport tcp web001:/data/gluster-webdata web002:/data/gluster-webdata web003:/data/gluster-webdata force
#返回:volume create: webdata: success: please start the volume to access data

3.在 web001 上,启动创建的 GlusterFS 卷:

gluster volume start webdata
#返回:volume start: webdata: success

4.查看创建与启动的 GlusterFS 卷,执行:

gluster volume info
#返回:
Volume Name: webdata
Type: Replicate
Volume ID: ceac8548-c4e4-4901-baf3-0d7df7aa3d0c
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: web001:/data/gluster-webdata
Brick2: web002:/data/gluster-webdata
Brick3: web003:/data/gluster-webdata
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off

6.现在我们有了运行的 GlusterFS 卷,下面可以挂载它,这样我们就可以使用它作为复制的文件系统了。

六、挂载共享存储

1.客户端安装

yum install centos-release-gluster -y
yum install -y glusterfs  glusterfs-fuse

2.添加挂载点

vim /etc/fstab
web001:/webdata       /data/www                 glusterfs defaults,_netdev,backup-volfile-servers=web002:web003 0 0
最后修改日期: 2023年12月14日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。