GFS分布式文件系统

一、GlusterFS概述

1、Glusterfs简介

   GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBandRDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据

2、Glusterfs 特点

序号特性描述
1扩展性和高性能GlusterFS 利用双重特性提供几 TB 至数 PB 高扩展存储方案,Scale - Out 架构支持通过增加资源提升存储容量和性能,磁盘、计算和 I/O 资源可独立增加,支持 10GbE 和 InfiniBand 等高速网络互联;Gluster 弹性哈希(ElasticHash)解除元数据服务器需求,消除单点故障和性能瓶颈,实现并行化数据访问
2高可用性可对文件自动复制(镜像或多次复制)确保数据访问,硬件故障时也能正常访问;自我修复功能增量式后台执行恢复数据,几乎无性能负载;采用主流标准磁盘文件系统(如 EXT3、ZFS)存储文件,数据可用标准工具复制和访问
3弹性卷管理数据存于逻辑卷,逻辑卷从虚拟化物理存储池独立逻辑划分而来;存储服务器可在线增加和移除,不中断应用;逻辑卷可在配置服务器中增长、缩减、迁移均衡容量,增减系统等操作可在线进行;文件系统配置更改可实时在线应用,适应工作负载和性能调优
4全局统一命名空间将存储资源聚成单一虚拟存储池,屏蔽物理存储信息;可弹性扩展或收缩存储;多节点场景中,能给不同节点做负载均衡,提高存取效率
5InfiniBand RDMA无限宽带技术,高性能计算和数据中心网络技术,提供低延迟、高带宽、可靠连接方式,连接服务器、存储设备等;可绕过操作系统内核,创建应用程序间通信直接通道,提供低延迟消息传输服务

3、术语简介

术语解释
GlusterFS是一个开源的分布式文件系统
BrickGFS 中的存储单元,通过是一个受信存储池中的服务器的一个导出目录。可以通过主机名和目录名来标识,如SERVER:EXPORT
Client挂载了 GFS 卷的设备
FUSE(Filesystem Userspace)是一个可加载的内核模块,其支持非特权用户创建自己的文件系统而不需要修改内核代码。通过在用户空间运行文件系统的代码通过 FUSE 代码与内核进行桥接
Node一个拥有若干 brick 的设备
Volume一组 bricks 的逻辑集合
Metadata元数据,关于数据的数据,用于描述文件、目录等的信息
VFS内核空间对用户空间提供的访问磁盘的接口
POSIX指可移植操作系统接口

4、Glusterfs的工作流程

步骤操作内容
(1)客户端 / 应用程序经 GFS 挂载点访问数据
(2)Linux 系统内核借 VFS API 收请求并处理
(3)VFS 把数据交给 FUSE 内核文件系统,FUSE 经 /dev/Fuse 设备文件递交给 GFS client 端(FUSE 为代理 )
(4)GFS client 收数据后依配置文件处理
(5)GFS client 处理后经网络传至远端 GFS Server,写入服务器存储设备

5、卷的类型

灰色的卷glusterfs 6.1及以上的版本已被弃用

        在glusterfs 6.1版本之后,不在支持stripe ,分布式条带卷不再多说,在官方的安装文档卷的介绍中已经把条带卷移除了,因为这个卷的可用性太差,只要一个brick挂掉,整个就挂掉,客户端就不能访问,显然不符合生产环境。

分类卷类型英文名称特点及说明
基本卷分布式卷distribute volume文件通过 hash 算法分布到所有 brick server 上,是 glusterfs 的基础和最大特点;仅扩大磁盘空间,无容错能力,一个磁盘坏对应数据丢失,文件级 RAID 0
基本卷条带卷stripe volume类似 RAID0,文件分成数据块以 Round Robin 方式分布到 brick server 上,并发粒度是数据块,支持超大文件,大文件性能高;6 的版本以后不再支持
基本卷复制卷replica volume文件同步复制到多个 brick 上,文件级 RAID 1,有容错能力,写性能下降,读性能提升
基本卷分散卷-基于 Erasure Codes(纠错码)的新类型 Volume(3.6 版本正式发布该特性 ),类似 RAID5/6,存储大文件时性能突出;通过配置 Redundancy(冗余)级别提高可靠性,提升物理存储空间利用率
复合卷分布式条带卷distribute stripe volumebrickserver 数量是条带数的倍数,兼具 distribute 和 stripe 卷的特点
复合卷分布式复制卷distribute replica volumebrickserver 数量是镜像数的倍数,兼具 distribute 和 replica 卷的特点,可在 2 个或多个节点之间复制数据
复合卷条带复制卷stripe replica volume类似 RAID 10;同时具有条带卷和复制卷的特点
复合卷分布式条带复制卷distribute stripe replicavolume三种基本卷的复合卷;通常用于类 Map Reduce 应用
复合卷分布式分散卷-在分散的子卷上分发文件;等效于分布式复制卷,但使用分散子卷而非复制子卷;结合 distributed 和 dispersed 的优点,HA+LB + 可扩容

二、实验部分

操作系统系统 IP主机名挂载磁盘挂载目录
openEuler 24.03 (LTS-SP1)192.168.10.101node1/dev/nvme0n2(3G)
/dev/nvme0n3(4G)
/dev/nvme0n4(5G)
/dev/nvme0n5(6G)
/dev/nvme0n6(7G)
/n3
/n4
/n5
/n6
/n7
openEuler 24.03 (LTS-SP1)192.168.10.102node2/dev/nvme0n2(3G)
/dev/nvme0n3(4G)
/dev/nvme0n4(5G)
/dev/nvme0n5(6G)
/dev/nvme0n6(7G)
/n3
/n4
/n5
/n6
/n7
openEuler 24.03 (LTS-SP1)192.168.10.103node3/dev/nvme0n2(3G)
/dev/nvme0n3(4G)
/dev/nvme0n4(5G)
/dev/nvme0n5(6G)
/dev/nvme0n6(7G)
/n3
/n4
/n5
/n6
/n7
openEuler 24.03 (LTS-SP1)192.168.10.104node4/dev/nvme0n2(3G)
/dev/nvme0n3(4G)
/dev/nvme0n4(5G)
/dev/nvme0n5(6G)
/dev/nvme0n6(7G)
/n3
/n4
/n5
/n6
/n7
openEuler 24.03 (LTS-SP1)192.168.10.105node5/dev/nvme0n2(3G)
/dev/nvme0n3(4G)
/dev/nvme0n4(5G)
/dev/nvme0n5(6G)
/dev/nvme0n6(7G)
/n3
/n4
/n5
/n6
/n7
openEuler 24.03 (LTS-SP1)192.168.10.106node6/dev/nvme0n2(3G)
/dev/nvme0n3(4G)
/dev/nvme0n4(5G)
/dev/nvme0n5(6G)
/dev/nvme0n6(7G)
/n3
/n4
/n5
/n6
/n7
openEuler 24.03 (LTS-SP1)192.168.10.107client

基础配置

1、关闭防火墙及内核保护

systemctl stop firewalld
setenforce 0

2、改名

hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
hostnamectl set-hostname node4
hostnamectl set-hostname node5
hostnamectl set-hostname node6
bash

3、修改hosts文件

vim /etc/hosts

192.168.10.101 node1
192.168.10.102 node2
192.168.10.103 node3
192.168.10.104 node4
192.168.10.105 node5
192.168.10.106 node6

4、安装软件

dnf -y install glusterfs glusterfs-server glusterfs-fuse

5、磁盘分区

fdisk /dev/nvme0n2
fdisk /dev/nvme0n3
fdisk /dev/nvme0n4
fdisk /dev/nvme0n5
fdisk /dev/nvme0n6

6、格式化文件系统

mkfs.xfs /dev/nvme0n2p1
mkfs.xfs /dev/nvme0n3p1
mkfs.xfs /dev/nvme0n4p1
mkfs.xfs /dev/nvme0n5p1
mkfs.xfs /dev/nvme0n6p1

7、创建挂载点

mkdir /n3
mkdir /n4
mkdir /n5
mkdir /n6
mkdir /n7

8、挂载

vim /etc/fstab

/dev/nvme0n2p1 /n3 xfs defaults 0 0
/dev/nvme0n3p1 /n4 xfs defaults 0 0
/dev/nvme0n4p1 /n5 xfs defaults 0 0
/dev/nvme0n5p1 /n6 xfs defaults 0 0
/dev/nvme0n6p1 /n7 xfs defaults 0 0

reboot

systemctl stop firewalld
setenforce 0

9、启动服务

systemctl start glusterd.service

10、添加节点到集群

gluster peer probe node2
gluster peer probe node3
gluster peer probe node4
gluster peer probe node5
gluster peer probe node6

11、查看状态

二、创建卷

1、创建GFS分布式卷

        默认创建的就是分布式卷

# 创建一个名为 dist-volume 的 GlusterFS 卷,使用 node1 节点的 /n3 目录和 node2 节点的 /n3 目录作为存储 bricks
gluster volume create dist-volume node1:/n3 node2:/n3 force

# 启动名为 dist-volume 的 GlusterFS 卷,让其开始提供分布式存储服务,卷创建后需启动才能被客户端挂载使用
gluster volume start dist-volume

# 查看名为 dist-volume 的 GlusterFS 卷的详细信息,比如卷的类型、包含的 bricks 列表、状态、配置参数等,用于确认卷创建和启动后的情况
gluster volume info dist-volume

2、创建复制卷

        复制卷要求复制的数量和Brick Server的数量(node的数量)相同

gluster volume create rep-volume replica 2 node1:/n4 node2:/n4 force
gluster volume start rep-volume
gluster volume info rep-volume

3、创建分散卷

        用三个分区创建分散卷,允许一个分区失效,分散卷中每三个brick允许有一个失效(3*1或6*2)是基于ErasureCodes(纠错码)的一种新类型的Volume(3.6版本正式发布该特性),类似于RAID5/6。通过配置Redundancy(冗余)级别提高可靠性,在保证较高的可靠性同时,可以提升物理存储空间的利用率。redundancy 必须大于0,并且bricks的总数必须大于2 *redundancy 。 这意味着dispersed卷必须至少包含3个bricks。类似raid5/raid6,防止单点故障(HA),提升IO性能(LB)。

gluster volume create disp-volume disperse 3 redundancy 1 node1:/n5 node2:/n5 node3:/n5 force
gluster volume start disp-volume
gluster volume info disp-volume

4、创建分布式复制卷

        分布式复制卷要求Brick Server的数量必须是复制数的倍数(两倍或更高的倍数)

gluster volume create dist-rep replica 2 node1:/n6 node2:/n6 node3:/n6 n
ode4:/n6 force
gluster volume start dist-rep
gluster volume info dist-rep

5、创建分布式分散卷

        分布式分散卷需要用六个节点,每三个节点做一个分散卷,两组分散卷做成复制卷

gluster volume create dist-disp disperse 3 redundancy 1 node1:/n7 node2:/n7 node3:/n7 node4:/n7 node5:/n7 node6:/n7 force
gluster volume start dist-disp
gluster volume info dist-disp

三、部署客户端

 1、关闭防火墙及内核保护

systemctl stop firewalld
setenforce 0

2、修改hosts文件

vim /etc/hosts

192.168.10.101 node1
192.168.10.102 node2
192.168.10.103 node3
192.168.10.104 node4
192.168.10.105 node5
192.168.10.106 node6

3、安装客户端软件

dnf -y install glusterfs glusterfs-fuse

4、创建挂载目录

mkdir dist
mkdir rep
mkdir disp
mkdir dist_and_rep
mkdir dist_and_disp

5、挂载

mount -t glusterfs node1:dist-volume /root/dist
mount -t glusterfs node1:rep-volume /root/rep
mount -t glusterfs node1:disp-volume /root/disp
mount -t glusterfs node1:dist-rep /root/dist_and_rep
mount -t glusterfs node1:dist-disp /root/dist_and_disp

四、测试

1、创建测试文件

2、写入文件

cp a* /root/dist
cp a* /root/rep
cp a* /root/disp
cp a* /root/dist_and_rep
cp a* /root/dist_and_disp

3、测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值