GFS

174 阅读3分钟

GFS简介

  • GlusterFS是一个开源的分布式文件系统。
  • 它由存储服务器、客户端以及NFS/Samba存储网关组成。
  • 没有元数据服务器组件。
  • 配置方便,稳定性好。
  • 可轻松达到PB级容量,数千个节点。
  • 采用弹性哈希算法,没有中心节点,所有节点全部平等

GFS特点

  • 高可扩展性。
  • 高性能。
  • 高可靠性和稳定性。
  • 灵活的配置

GFS术语

  • Brick:实际存储用户数据的服务器。
  • Volume:多个Brick的逻辑集合。
  • FUSE:用户空间的文件系统。
  • VFS:内核态的虚拟文件系统。
  • Glusterd:运行在存储节点的进程。

GFS工作流程

  • 客户端或应用程序通过GlusterFS的挂载点访问数据。
  • Linux系统内核通过VFS API收到请求并处理。
  • VFS将数据递交给FUSE内核文件系统,FUSE文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS客户端。
  • GlusterFS客户端收到数据后,根据配置文件的配置对数据进行处理。
  • 通过网络将数据传递至远端的GlusterFS服务器,并且将数据写入到服务器存储设备上。

GFS卷类型

  • 分布式卷:提高存储容量和扩展性,但不提供冗余保护。
  • 复制卷:提供冗余保护,但会降低存储容量和扩展性。
  • 条带卷:提高读写性能,但不提供冗余保护。
  • 分布式复制卷:提供冗余保护和扩展性。
  • 分布式条带卷:提供读写性能和扩展性。

部署GFS群集

创建卷 ----- 创建卷 -----

#根据规划创建如下卷:
卷名称 卷类型 Brick
dis-volume 分布式卷 node1(/data/sdb1)、node2(/data/sdb1)
stripe-volume 条带卷 node1(/data/sdc1)、node2(/data/sdc1)
rep-volume 复制卷 node3(/data/sdb1)、node4(/data/sdb1)
dis-stripe 分布式条带卷 node1(/data/sdd1)、node2(/data/sdd1)、node3(/data/sdd1)、node4(/data/sdd1)
dis-rep 分布式复制卷 node1(/data/sde1)、node2(/data/sde1)、node3(/data/sde1)、node4(/data/sde1)

1,创建分布式卷

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

#查看卷列表
gluster volume list

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

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

image.png

2.创建条带卷

#指定类型为 stripe,数值为 2,且后面跟了 2Brick 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

image.png 3.创建复制卷

#指定类型为 replica,数值为 2,且后面跟了 2Brick 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

image.png 4.创建分布式条带卷

#指定类型为 stripe,数值为 2,而且后面跟了 4Brick 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

image.png 5, 创建分布式复制卷

指定类型为 replica,数值为 2,而且后面跟了 4Brick 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
gluster volume list

image.png ----- 部署 Gluster 客户端 -----

1. 安装客户端软件

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

image.png

image.png

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

image.png

image.png 2.创建挂载目录

mkdir -p /test/{dis,stripe,rep,dis_stripe,dis_rep}
ls /test

3.配置 /etc/hosts 文件

echo “192.168.10.20 node1” >> /etc/hosts
echo “192.168.10.21 node2” >> /etc/hosts
echo “192.168.10.30 node3” >> /etc/hosts
echo “192.168.10.31 node4” >> /etc/hosts

image.png 4.挂载 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

image.png df -th

image.png