GFS分布式文件系统

目录

GlusterFS概述

GlusterFS的特点

GlusterFS术语

GlusterFS工作原理

​编辑

GlusterFS的卷类型

分布式卷

条带卷

复制卷

特点:卷中所有的服务器均保存一个完整的副本。

分布式条带卷

分布式复制卷

部署群集环境

1、准备环境(所有node节点上操作)

 2、安装、启动GlusterFS

 3、添加节点到存储信任池中(在一台操作即可)

 4、创建卷

 5、部署 Gluster 客户端


GlusterFS概述

GES三个部分组成

存储服务器

客户端

NES/Samba存储网关组成

无元数据服务器(保存数据的地方)

是一个分布式的文件系统,只在扩展存储容量,提高性能,并通过多个互联网络的存储节点的数据进行冗余,以确保数据的可用性和一致性。

GlusterFS的特点

扩展性和高性能:分布式的特性

高可用性:冗余、容灾的能力

全局统一命名空间

弹性卷管理:raid0,1等

基于标准协议:NFS、HTTP、FTP及 Gluster原生协议

GlusterFS术语

Brick(块)

Volume(逻辑卷)

FUSE(内核文件)

VFS(虚拟接口)

Glusterd

GlusterFS工作原理

(1) 客户端或应用程序通过 GlusterFS 的挂载点访问数据。

(2) linux系统内核通过 VES API 收到请求并处理。

(3) VES 将数据递交给 FUSE 内核文件系统,并向系统注册一个实际的文件系统FUSE,而 FUSE文件系统则是将数据通过 /dev/fuse 设备文件递交给了 GLusterFS client 端。可以将 FUSE文件系统理解为一个代理。

(4) GlusterFS client 收到数据后,client 根据配置文件的配置对数据进行处理。

(5) 经过 GlusterFS client 处理后,通过网络将数据传递至远端的 GlusterFSServer,并且将数据写入到服务器存储设备上。

GFS分布式文件系统_第1张图片

GlusterFS的卷类型

分布式卷

没有对文件进行分块处理。

通过扩展文件属性保存HASH值。

支持底层文件系统有EXT3、EXT4、ZFS、XFS等。

GFS分布式文件系统_第2张图片

特点:文件分布在不同的服务器,不具备冗余性。

更容易和廉价地扩展卷的大小。

单点故障会造成数据丢失。

依赖底层的数据保护。

条带卷

根据偏移量将文件分成N块(N个条带节点),轮询的存储在每个Brick Server节点。

存储大文件时,性能尤为突出。

不具备冗余性,类似Raid0。

GFS分布式文件系统_第3张图片

特点:数据被分割成更小块分布到块服务器群中的不同条带区。

分布减少了负载且更小的文件加速了存取的速度。

没有数据冗余。

复制卷

同一文件保存一份或多份副本

因为要保存副本,所以磁盘利用率较低

若多个节点上的存储空间不一致,将按照木桶效应取最低点的容量作为该卷的总容量。

特点:卷中所有的服务器均保存一个完整的副本。

卷的副本数量可由客户创建的时候决定,但复制数必须等于卷中 Brick 所包含的存储服务器数。

至少由两个块服务器或更多服务器。

具备冗余性。

分布式条带卷

兼顾分布式卷和条带卷的功能,主要用于大文件访问处理。

至少最少需要4台服务器。

GFS分布式文件系统_第4张图片

分布式复制卷

兼顾分布式卷和复制卷的功能,主要用于需要冗余的情况。

部署群集环境

1、准备环境(所有node节点上操作)

磁盘分区,并挂载
vim /opt/fdisk.sh
#!/bin/bash
NEWDEV=`ls /dev/sd* | grep -o 'sd[b-z]' | uniq`
for VAR in $NEWDEV
do
   echo -e "n\np\n\n\n\nw\n" | fdisk /dev/$VAR &> /dev/null
   mkfs.xfs /dev/${VAR}"1" &> /dev/null
   mkdir -p /data/${VAR}"1" &> /dev/null
   echo "/dev/${VAR}"1" /data/${VAR}"1" xfs defaults 0 0" >> /etc/fstab
done
mount -a &> /dev/null

chmod +x /opt/fdisk.sh
cd /opt/
./fdisk.sh

GFS分布式文件系统_第5张图片GFS分布式文件系统_第6张图片

修改主机名,配置/etc/hosts文件
hostnamectl set-hostname node1
echo "192.168.11.77 node1" >> /etc/hosts
echo "192.168.11.66 node2" >> /etc/hosts
echo "192.168.11.55 node3" >> /etc/hosts
echo "192.168.11.44 node4" >> /etc/hosts

 GFS分布式文件系统_第7张图片

 2、安装、启动GlusterFS

将gfsrepo 软件上传到/opt目录下
cd /etc/yum.repos.d/
mkdir repo.bak
mv *.repo repo.bak

vim glfs.repo
[glfs]
name=glfs
baseurl=file:///opt/gfsrepo
gpgcheck=0
enabled=1

yum clean all && yum makecache

GFS分布式文件系统_第8张图片

安装GlusterFS
yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

systemctl start glusterd.service 
systemctl enable glusterd.service
systemctl status glusterd.service

 3、添加节点到存储信任池中(在一台操作即可)

gluster peer probe node1
gluster peer probe node2
gluster peer probe node3
gluster peer probe node4

在每个Node节点上查看群集状态
gluster peer status

GFS分布式文件系统_第9张图片

 4、创建卷

创建分布式卷,没有指定类型,默认创建的是分布式卷
gluster volume create dis-volume node1:/data/sdb1 node2:/data/sdb1 force

启动新建分布式卷
gluster volume start dis-volume

查看创建分布式卷信息
gluster volume info dis-volume

GFS分布式文件系统_第10张图片

创建条带卷
指定类型为 stripe,数值为 2,且后面跟了 2 个 Brick Server,所以创建的是条带卷
gluster volume create stripe-volume stripe 2 node1:/data/sdc1 node2:/data/sdc1 force
gluster volume start stripe-volume
gluster volume info stripe-volume

GFS分布式文件系统_第11张图片

创建复制卷
指定类型为 replica,数值为 2,且后面跟了 2 个 Brick Server,所以创建的是复制卷
gluster volume create rep-volume replica 2 node3:/data/sdb1 node4:/data/sdb1 force
gluster volume start rep-volume
gluster volume info rep-volume

GFS分布式文件系统_第12张图片

创建分布式条带卷
指定类型为 stripe,数值为 2,而且后面跟了 4 个 Brick Server,是 2 的两倍,所以创建的是分布式条带卷
gluster volume create dis-stripe stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
gluster volume start dis-stripe
gluster volume info dis-stripe

GFS分布式文件系统_第13张图片

创建分布式复制卷
指定类型为 replica,数值为 2,而且后面跟了 4 个 Brick Server,是 2 的两倍,所以创建的是分布式复制卷
gluster volume create dis-rep replica 2 node1:/data/sde1 node2:/data/sde1 node3:/data/sde1 node4:/data/sde1 force
gluster volume start dis-rep
gluster volume info dis-rep	

 GFS分布式文件系统_第14张图片

 5、部署 Gluster 客户端

安装客户端软件
cd /etc/yum.repos.d/
mkdir repo.bak
mv *.repo repo.bak

vim glfs.repo
[glfs]
name=glfs
baseurl=file:///opt/gfsrepo
gpgcheck=0
enabled=1

yum clean all && yum makecache
yum -y install glusterfs glusterfs-fuse
创建挂载目录
mkdir -p /test/{dis,stripe,rep,dis_stripe,dis_rep}
ls /test

配置 /etc/hosts 文件
echo "192.168.11.77 node1" >> /etc/hosts
echo "192.168.11.66 node2" >> /etc/hosts
echo "192.168.11.55 node3" >> /etc/hosts
echo "192.168.11.44 node4" >> /etc/hosts	

挂载 Gluster 文件系统
mount.glusterfs node1:dis-volume /test/dis
mount.glusterfs node1:stripe-volume /test/stripe
mount.glusterfs node1:rep-volume /test/rep
mount.glusterfs node1:dis-stripe /test/dis_stripe
mount.glusterfs node1:dis-rep /test/dis_rep
df -Th

GFS分布式文件系统_第15张图片

你可能感兴趣的:(服务器)