GFS 分布式文件系统
目录
1.什么是GFS文件系统
2.分布式文件系统的特点
3.GFS术语
4.gfs卷的分类
4.1分布式卷
4.2条带卷
4.2复制卷
4.4分布式条带卷
4.5分布式复制卷
4.6条带式复制卷
4.7分布式条带复制卷
5.GlusterFS 的工作流程
6.弹性 HASH 算法
7.部署 GlusterFS 群集
7.1 准备环境
7.2 编写磁盘分区脚本
7.3 修改主机名,配置/etc/hosts文件
7.4 安装GlusterFS
7.5 添加节点到存储信任池中
7.6 创建卷
7.6.1 创建分布式卷
7.6.2 创建条带卷
7.6.3 创建复制卷
7.6.4 创建分布式条带卷
7.6.5 创建分布式复制卷
7.7 配置客户端
7.8 测试 Gluster 文件系统
1.什么是GFS文件系统
开源的分布式文件系统。
没有元数据服务器组件,有助于提升整个系统的性能、可靠性和稳定性
2.分布式文件系统的特点
- 拓展性和高性能
- 高可用性
- 全局统一命名空间
- 弹性卷管理
- 基于标准协议
3.GFS术语
- brick(存储块):指可信主机池中由主机提供的用于物理存储的专用分区,是GlusterFS中的基本存储单元,同时也是可信存储池中服务器上对外提供的存储目录。
- Volume(逻辑卷):一个逻辑卷是一组 Brick 的集合。卷是数据存储的逻辑设备,类似于 LVM 中的逻辑卷。大部分 Gluster 管理操作是在卷上进行的。
- FUSE:是一个内核模块,允许用户创建自己的文件系统,无须修改内核代码。
- VFS:内核空间对用户空间提供的访问磁盘的接口。
- Glusterd:在存储群集中的每个节点上都要运行。
4.gfs卷的分类
4.1分布式卷
文件通过 HASH 算法分布到所有 Brick Server 上,这种卷是 GlusterFS 的默认卷;以文件为单位根据 HASH 算法散列到不同的 Brick,其实只是扩大了磁盘空间,如果有一块磁盘损坏,数据也将丢失,属于文件级的 RAID0, 不具有容错能力。
在该模式下,并没有对文件进行分块处理,文件直接存储在某个 Server 节点上。 由于直接使用本地文件系统进行文件存储,所以存取效率并没有提高,反而会因为网络通信的原因而有所降低。
创建一个名为dis-volume的分布式卷,文件将根据HASH分布在server1:/dir1、server2:/dir2和server3:/dir3中
gluster volume create dis-volume server1:/dir1 server2:/dir2 server3:/dir3
4.2条带卷
类似 RAID0,文件被分成数据块并以轮询的方式分布到多个 Brick Server 上,文件存储以数据块为单位,支持大文件存储, 文件越大,读取效率越高,但是不具备冗余性。
创建了一个名为stripe-volume的条带卷,文件将被分块轮询的存储在Server1:/dir1和Server2:/dir2两个Brick中
gluster volume create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2
4.2复制卷
将文件同步到多个 Brick 上,使其具备多个文件副本,属于文件级 RAID 1,具有容错能力。因为数据分散在多个 Brick 中,所以读性能得到很大提升,但写性能下降。
复制卷具备冗余性,即使一个节点损坏,也不影响数据的正常使用。但因为要保存副本,所以磁盘利用率较低。
创建名为rep-volume的复制卷,文件将同时存储两个副本,分别在Server1:/dir1和Server2:/dir2两个Brick中
gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
4.4分布式条带卷
兼顾分布式卷和条带卷的功能
主要用于大文件访问
至少需要4台服务器
创建一个名为dis-stripe的分布式条带卷,配置分布式的条带卷时,卷中Brick所包含的存储服务器数必须是条带数的倍数(>=2倍)。 Brick 的数量是 4(Server1:/dir1、Server2:/dir2、Server3:/dir3 和 Server4:/dir4),条带数为 2(stripe 2)
gluster volume create dis-stripe stripe 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4
4.5分布式复制卷
兼顾分布式和复制卷的功能
用于需要冗余的数据
#创建一个名为dis-rep的分布式复制卷,配置分布式的复制卷时,卷中Brick所包含的存储服务器数必须是复制数的倍数(>=2倍)。Brick 的数量是 4(Server1:/dir1、Server2:/dir2、Server3:/dir3 和 Server4:/dir4),复制数为 2(replica 2)
gluster volume create dis-rep replica 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4
4.6条带式复制卷
类似 RAID 10,同时具有条带卷和复制卷的特点。
4.7分布式条带复制卷
三种基本卷的复合卷,通常用于类 Map Reduce 应用。
5.GlusterFS 的工作流程
- 客户端或应用程序通过 GlusterFS 的挂载点访问数据。
- linux系统内核通过 VFS API 收到请求并处理。
- VFS 将数据递交给 FUSE 内核文件系统,并向系统注册一个实际的文件系统 FUSE,而 FUSE 文件系统则是将数据通过 /dev/fuse 设备文件递交给了 GlusterFS client 端。可以将 FUSE 文件系统理解为一个代理。
- GlusterFS client 收到数据后,client 根据配置文件的配置对数据进行处理。
- 经过 GlusterFS client 处理后,通过网络将数据传递至远端的 GlusterFS Server,并且将数据写入到服务器存储设备上。
6.弹性 HASH 算法
弹性 HASH 算法是 Davies-Meyer 算法的具体实现,通过 HASH 算法可以得到一个 32 位的整数范围的 hash 值,
假设逻辑卷中有 N 个存储单位 Brick,则 32 位的整数范围将被划分为 N 个连续的子空间,每个空间对应一个 Brick。
当用户或应用程序访问某一个命名空间时,通过对该命名空间计算 HASH 值,根据该 HASH 值所对应的 32 位整数空间定位数据所在的 Brick。
7.部署 GlusterFS 群集
7.1 准备环境
节点名 | 地址 | 磁盘 | 挂载点 |
node1 | 192.18.112.97 |
/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 |
/data/sdb1 /data/sdc1 /data/sdd1 /data/sde1 |
node2 | 192.18.112.99 |
/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 |
/data/sdb1 /data/sdc1 /data/sdd1 /data/sde1 |
node3 | 192.18.112.100 |
/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 |
/data/sdb1 /data/sdc1 /data/sdd1 /data/sde1 |
node4 | 192.18.112.101 |
/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 |
/data/sdb1 /data/sdc1 /data/sdd1 /data/sde1 |
7.2 编写磁盘分区脚本
vim /opt/fdisk.sh
#!/bin/bash
NEWDEV=`ls /dev/sd* | grep -o 'sd[b-z]' | uniq`
#提取磁盘名称for VAR in $NEWDEV
doecho -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/nullchmod +x /opt/fdisk.sh
cd /opt/
./fdisk.sh
7.3 修改主机名,配置/etc/hosts文件
在各个节点进行相同配置
#以Node1节点为例:
hostnamectl set-hostname node1
suecho "192.168.112.97 node1" >> /etc/hosts
echo "192.168.112.99 node2" >> /etc/hosts
echo "192.168.112.100 node3" >> /etc/hosts
echo "192.168.112.101 node4" >> /etc/hosts
7.4 安装GlusterFS
在各个节点上进行配置
#将gfsrepo 软件上传到/opt目录下
cd /etc/yum.repos.d/
mkdir repo.bak
mv *.repo repo.bakvim glfs.repo
[glfs]
name=glfs
baseurl=file:///opt/gfsrepo
gpgcheck=0
enabled=1yum clean all && yum makecache#yum -y install centos-release-gluster #如采用官方 YUM 源安装,可以直接指向互联网仓库
yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdmasystemctl start glusterd.service
systemctl enable glusterd.service
systemctl status glusterd.service
7.5 添加节点到存储信任池中
在 node1 节点上操作
gluster peer probe node1
gluster peer probe node2
gluster peer probe node3
gluster peer probe node4
查看gluster 集群状态
gluster peer status
7.6 创建卷
7.6.1 创建分布式卷
分布式卷包括:
- 节点1:/data/sdb1
- 节点2:/data/sdb1
- 节点3:/data/sdb1
- 节点4:/data/sdb1
gluster volume create dis-volume node1:/data/sdb1 node2:/data/sdb2 node3:/data/sdb3 node3:/data/sdb4 force
查看已创建卷的列表
gluster volume list
启动分布式卷及查看详细信息
gluster volume start dis-volumegluster volume info dis-volume
7.6.2 创建条带卷
gluster volume create stripe-volume stripe 2 node1:/data/sdc1 node2:/data/sdc1 force
#创建条带卷
gluster volume start stripe-volume
#启动条带卷
gluster volume info stripe-volume
#查看详情
7.6.3 创建复制卷
gluster volume create rep-volume replica 2 node3:/data/sdb1 node4:/data/sdb1 force
#创建
gluster volume start rep-volume
#启动
gluster volume info rep-volume
#查看详情
7.6.4 创建分布式条带卷
gluster volume create dis-stripe stripe 2 node1:/data/sdd1 node2:/data/sdd1node3:/data/sdd1 node4:/data/sdd1 force
#创建
gluster volume start dis-stripe
#启动
gluster volume info dis-stripe
#查看
7.6.5 创建分布式复制卷
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
#查看
最后查看一下刚刚创建的卷
7.7 配置客户端
安装软件,并将节点1创建的卷 ,挂载到客户端服务器
1.安装客户端软件
#将gfsrepo 软件上传到/opt目下
cd /etc/yum.repos.d/
mkdir repo.bak
mv *.repo repo.bakvim glfs.repo
[glfs]
name=glfs
baseurl=file:///opt/gfsrepo
gpgcheck=0
enabled=1yum clean all && yum makecacheyum -y install glusterfs glusterfs-fuse2.创建挂载目录
mkdir -p /test/{dis,stripe,rep,dis_stripe,dis_rep}
ls /test3.配置 /etc/hosts 文件
echo "192.168.112.97 node1" >> /etc/hosts
echo "192.168.112.99 node2" >> /etc/hosts
echo "192.168.112.100 node3" >> /etc/hosts
echo "192.168.112.101 node4" >> /etc/hosts 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
7.8 测试 Gluster 文件系统
1.卷中写入文件,客户端操作
cd /opt
dd if=/dev/zero of=/opt/demo1.log bs=1M count=40
dd if=/dev/zero of=/opt/demo2.log bs=1M count=40
dd if=/dev/zero of=/opt/demo3.log bs=1M count=40
dd if=/dev/zero of=/opt/demo4.log bs=1M count=40
dd if=/dev/zero of=/opt/demo5.log bs=1M count=40ls -lh /optcp /opt/demo* /test/dis
cp /opt/demo* /test/stripe/
cp /opt/demo* /test/rep/
cp /opt/demo* /test/dis_stripe/
cp /opt/demo* /test/dis_rep
GFS 分布式文件系统相关推荐
- GFS分布式文件系统简介及部署——让存储变得更高级
GFS分布式文件系统简介及部署 一.GFS概述 1.文件系统 ①.文件系统组成 ②.文件系统的作用 ③.专业术语 二.GFS特点 三.GFS工作原理 四.GFS卷 1.GFS卷类型 2.三大基本卷的特 ...
- 浅识一下GFS分布式文件系统
GFS分布式文件系统 什么是GFS分布式文件系统 GFS(GlusterFS) 是一个开源的分布式文件系统. 由存储服务器.客户端以及NFS/Samba 存储网关(可选,根据需要选择使用)组成. 没有 ...
- GFS分布式文件系统
GFS分布式文件系统 前言 GFS是一个可扩展的分布式文件系统,用于大型的.分布式的.对大量数据进行访问的应用.它运行于廉价的普通硬件上,并提供容错功能.它可以给大量的用户提供总体性能较高的服务. G ...
- GlusterFS/GFS 分布式文件系统--理论详解
文章目录 一.文件系统简介 1.组成 2.作用 3.文件系统的挂载使用 二.GFS分布式文件系统概述 1.GFS简介 2.GFS的特点 3.GFS专业术语 4. 模块化堆栈式架构 5. GFS 工作流 ...
- 如何搭建GFS分布式文件系统
如何搭建GFS分布式文件系统 什么是文件系统 文件系统的组成部分 文件系统作用 文件系统的使用 分布式文件系统GFS GFS简介 GFS组成 GFS的特点 GFS专业术语 GFS模块化和堆栈式架构 G ...
- GFS 分布式文件系统从入门到实践
文章目录 一.GlusterFS 概述 1.1 GlusterFS简介 1.2 GlusterFS的特点 (一)扩展性和高性能 (二)高可用性 (三)弹性卷管理 (四)基于标准协议 二.Gluster ...
- GFS —— 分布式文件系统
文章目录 一.概述 1.1 文件系统组成 1.2 文件系统FS作用 1.3 文件系统FS 的挂载使用 1.4 分布式文件系统(GFS)组成 1.5 分布式文件系统(GFS)特点 1. 6 分布式文件系 ...
- 企业级别应用--GFS分布式文件系统(GlusterFS工作原理、弹性 HASH 算法 、GlusterFS卷的类型、 部署GlusterFS)
文章目录 一. GlusterFS 概述 1.1 GlusterFS 简介 与传统分布式相比的优点 1.2 GlusterFS 的特点 扩展性和高性能 高可用性 全局统一命名空间 弹性卷管理 基于标准 ...
- 大点干!早点散----------深入剖析GFS分布式文件系统
文章目录 一.GlusterFS(GFS)介绍 1.GlusterFS 2.GlusterFS特点 3.常用术语 4.GFS的结构 5.弹性HASH算法 6.GlusterFS工作原理 二.Glust ...
- 分布式应用之GFS分布式文件系统
内容预知 前言 1. GlusterFS的相关知识 1.1 GlusterFS简介 1.2 GlusterFS特点 1.3 GlusterFS 术语 1.4 模块化堆栈式架构 1.5 GlusterF ...
最新文章
- springboot项目层次结构_Spring Boot 默认的指标数据从哪来的?
- 设计模式 - Composite
- 基于.NET下的人工智能系列专题|.NET下的人工智能系列专题|用Keras.NET 做一个图像识别的训练...
- 2014年考研英语一完型填空知识点
- 开放,从容不凡,携手迈进容器应用时代 ——2020容器云职业技能大赛正式开赛
- LeetCode刷题——整数反转
- python生成簇_使用Python复现SIGKDD2017的PAMAE算法(并行kmedoids算法)
- 这可能是你见过的最全的网络爬虫总结
- NHibernate 操作视图 第十三篇
- 让孩子见世面,到底有多重要
- rockchip Android平台动态替换开机logo的实现
- 2019面试题:谈谈你的IT职业发展路径规划
- Python的h5py模块
- Alsa 调试下篇:应用篇
- delphi 报错AV调试方法
- android 开源收藏
- 回首2022,展望2023
- 计算机图形学的数学基础
- YOLOV3在windwos下的配置和训练过程简述
- 常见的几种云管理平台