Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >GFS分布式文件存储系统

GFS分布式文件存储系统

作者头像
全栈程序员站长
发布于 2022-08-23 13:34:10
发布于 2022-08-23 13:34:10
2K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

一 GlusterFS概述

GlusterFS是开源的分布式文件系统,由存储服务器、客户端以及NFS/Samba存储网关组成的无元数据服务

二 GlusterFS工作原理

  • 扩展性和高性能
  • 高可用性
  • 全局统─命名空间
  • 弹性卷管理
  • 基于标准协议RDMA or TCP/IP

弹性HASH算法 通过HASH算法得到一个32位的整数 划分为N个连续的子空间,每个空间对应一个Brick弹性

HASH算法的优点

  • 保证数据平均分布在每一个Brick中
  • 解决了对元数据服务器的依赖,进而解决了单点故障以及访问瓶颈

三 GlusterFS卷类型

3.1 分布式卷

没有对文件进行分块处理 通过扩展文件属性保存HASH值 支持的底层文件系统有EXT3、EXT4、ZFS、XFS等

分布式卷的特点

  • 文件分布在不同的服务器,不具备冗余性更容易和廉价地扩展卷的大小
  • 单点故障会造成数据丢失
  • 依赖底层的数据保护

创建分布式卷 gluster volume create dis-volume server1:/dir1 server2:/dir2server3:/dir3

3.2 条带卷

  • 根据偏移量将文件分成N块 (N个条带节点),轮询的存储在每个Brick Server节点
  • 存储大文件时,性能尤为突出
  • 不具备冗余性,类似Raid0

条带卷的特点

  • 数据被分割成更小块分布到块服务器群中的不同条带区
  • 分布减少了负载且更小的文件加速了存取的速度
  • 没有数据冗余

创建条带卷 创建了一个名为Stripe-volume的条带卷,文件将被分块轮询的存储在Server1:/dir1和Server2:/dir2两个Brick中

gluster volume create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2

3.3 复制卷

同一文件保存一份或多份副本 因为要保存副本,所以磁盘利用率较低 若多个节点上的存储空间不一致,将按照木桶效应取最低节点的容量作为该卷的总容量

复制卷的特点

  • 卷中所有的服务器均保存一个完整的副本
  • 卷的副本数量可由客户创建的时候决定
  • 至少有两个块服务器或更多服务器
  • 具备冗余性

创建复制卷: 创建名为rep-volume的复制卷,文件将同时存储两个副本,分别在Server1:/dir1和Server2:/dir2两个Brick中 gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2

3.4 分布式条带卷

兼顾分布式卷和条带卷的功能 主要用于大文件访问处理 至少最少需要4台服务器

创建分布式条带卷: 创建了名为dis-stripe的分布式条带卷,配置分布式的条带卷时,卷中Brick所包含的存储服务器数必须是条带数的倍数(>=2倍)

gluster volume create dis-stripe stripe 2 transport tcp server1:/dir1server2:/dir2 server3:/dir3 server4:)dir4

3.5 分布式复制卷

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

创建分布式复制卷 创建名为dis-rep的分布式条带卷,配置分布式复制卷时,卷中Brick所包含的存储服务器数必须是条带数的倍数(>=2倍) gluster volume create dis-rep replica 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4

四 GlusterFS案例部署

4.1 实验环境

操作系统

IP

主机名

硬盘数量

centos 7.4

20.0.0.100

node1

sdb:20G sdc:20G sdd:20G sde:20G

centos 7.4

20.0.0.12

node2

sdb:20G sdc:20G sdd:20G sde:20G

centos 7.4

20.0.0.27

node3

sdb:20G sdc:20G sdd:20G sde:20G

centos 7.4

20.0.0.30

node4

sdb:20G sdc:20G sdd:20G sde:20G

centos 7.4

20.0.0.10

node5-client

sdb:20G sdc:20G sdd:20G sde:20G

4.2 关闭防火墙与selinux

各节点关闭防火墙与核心防护

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@node1 ~]# systemctl stop firewalld
[root@node1 ~]# systemctl disable firewalld

[root@node1 ~]# setenforce 0

4.3 配置hosts文件

4台节点分别修改主机名

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
hostnamectl set-hostname node4

4台节点分别做地址映射

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
20.0.0.100  node1
20.0.0.12   node2
20.0.0.27   node3
20.0.0.30   node4

4.4 磁盘格式化与挂载

磁盘格式化与挂载脚本 vim disk.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#! /bin/bash
echo "查找到的可创建磁盘列表"
fdisk -l | grep 'Disk /dev/sd[b-z]'
echo "=============================="
PS3="chose which disk you want to create:"
select W in `ls /dev/sd*|grep -o 'sd[b-z]'|uniq` quit
do
        case $W in
        sda)
            fdisk -l /dev/sda
            break;;
        sd[b-z])
             echo "n p w" | fdisk /dev/$W
        mkfs.xfs -i size=512 /dev/${W}"1" &>/dev/null
        mkdir -p /data/${W}"1" &>/dev/null
        echo -e "/dev/${W}"1" /data/${W}"1" xfs defaults 0 0\n" >> /etc/fstab
        mount -a &>/dev/null
        break;;
        quit)
        break;;
        *)
        echo "wrong disk,plwase chesk again";;
        esac
done

复制脚本到其他节点

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@node1 ~]# scp disk.sh root@20.0.0.12:/root
[root@node1 ~]# scp disk.sh root@20.0.0.27:/root
[root@node1 ~]# scp disk.sh root@20.0.0.30:/root

4.5 安装软件

4.5.1 共享Windows系统文件夹gfsrepo

1.文件共享添加everyone用户指定读取权限

2.设置本地策略secpol.msc

3:网络和共享中心—–>共享选项—–>把所有共享选项设置为允许

4. 控制面板—->程序—-> 开启SMB支持

4.5.2 查看共享文件夹

smbclient -L //192.168.100.2/

4.5.3 挂载共享文件夹

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir /abc
mount.cifs //192.168.100.2/gfsrepo /abc
回车

4.5.4 设置本地源仓库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /etc/yum.repos.d/GLFS.repo
[GLFS]
name=glfs
baseurl=file:///abc
gpgcheck=0
enabled=1
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /etc/yum.repo.d/
mkdir bak
mv C* bak

4.5.5 安装软件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

启动软件
systemctl start glusterd.service
systemctl enable glusterd.service
systemctl status glusterd.service

4.5.6 时间同步

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ntpdate ntp1.aliyun.com

4.6 添加节点

添加存储信任池,只需要在一个节点上添加即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gluster peer probe node2
gluster peer probe node3
gluster peer probe node4

4.7 查看集群状态

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gluster peer status

4.8 卷的创建

创建分布式卷

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gluster volume create dis-vol node1:/data/sdb1 node2:/data/sdb1 force 

查看分布式卷

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gluster volume info dis-vol

创建条带卷

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@node1 yum.repos.d]# gluster volume create stripe-vol stripe 2 node1:/data/sdc1 node2:/data/sdc1 force

查看条带卷

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gluster volume info stripe-vol

查看卷列表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gluster volume list

创建复制卷

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@node1 yum.repos.d]# gluster volume create rep-vol replica 2 node3:/data/sdb1 node4:/data/sdb1 force

开启复制卷

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gluster volumn start rep-vol

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139833.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月7,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
大点干!早点散----------深入剖析GFS分布式文件系统
Gluster File System,开源的分布式文件系统,是Scale存储的核心,能够处理千数量级的客户端.在传统的解决 方案中Glusterfs能够灵活的结合物理的,虚拟的和云资源去体现高可用和企业级的性能存储 由存储服务器(Brick Server)、客户端以及NFS/Samba 存储网关组成 无元数据服务器
不吃小白菜
2020/09/17
1.8K0
大点干!早点散----------深入剖析GFS分布式文件系统
CentOS 7.5下部署GlusterFS分布式存储集群环境
最小化安装的CentOS 7.5 内存大于1GB 关闭selinux,防火墙端口放行(port:24007,111)(测试建议关闭firewalld) 一、环境部署 所有软件包离线安装,原因是yum安装的不能很好的控制版,用到的软件包统一放到/gfs目录,包已整理好 测试用的磁盘分配以及服务器架构图 basic代表服务器本来使用的磁盘,基础上再添加上图相应的磁盘,由于是测试用,为方便直观理解,磁盘大小就是后面的数字:如sdb3,该磁盘大小为3GB。 卷的分布方案 卷名称 卷类型 空间大小
星哥玩云
2022/07/27
6870
CentOS 7.5下部署GlusterFS分布式存储集群环境
GlusterFS 分布式文件系统的卷类型及配置详解
GlusterFS 是一个开源的分布式文件系统,同时也是Scale-Out存储解决方案Gluster的核心,在存储数据方面有强大的横向扩展能力。GlusterFS主要由存储服务器、客户端及NFS/Samba存储网关(可选组件)组成。GlusterFS架构中最大的设计特点是没有元数据服务器组件,也就是说没有主/从服务器之分,每一个节点都可以是主服务器。 . 1、Gluster相关参考文档如下(我下面的配置是基于本地yum配置的,若需要搭建最新版本,可直接按照下面的文档链接进行配置): . Gluster官网 :https://wiki.centos.org/SpecialInterestGroup/Storage/gluster-Quickstart 基于centos7/Redhat安装Gluster官方文档:https://blog.csdn.net/daydayup_gzm/article/details/52748812 . 2、 GlusterFS相关术语: .
小手冰凉
2019/10/14
3.2K0
GlusterFS 分布式文件系统的卷类型及配置详解
01 . Gluster存储简介,原理,部署使用
​ 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源并不直接与本地节点相连,而是分布于计算网络中的一个或者多个节点的计算机上。目前意义上的分布式文件系统大多都是由多个节点计算机构成,结构上是典型的客户机/服务器模式。流行的模式是当客户机需要存储数据时,服务器指引其将数据分散的存储到多个存储节点上,以提供更快的速度,更大的容量及更好的冗余特性;
iginkgo18
2021/06/21
4.2K0
01 . Gluster存储简介,原理,部署使用
GlusterFS分布式文件系统使用简介
术语简介 GlusterFS是一个开源的分布式文件系统。更多特性介绍附录的参考文档。 Brick:GFS中的存储单元,通过是一个受信存储池中的服务器的一个导出目录。可以通过主机名和目录名来标识,如'SERVER:EXPORT' Client: 挂载了GFS卷的设备 Extended Attributes:xattr是一个文件系统的特性,其支持用户或程序关联文件/目录和元数据。 FUSE:Filesystem Userspace是一个可加载的内核模块,其支持非特权用户创建自己的文件系统而不需要修改内核代码。
小小科
2018/05/04
2.2K0
GlusterFS分布式文件系统使用简介
分布式存储-GlusterFS
我们知道NAS是远程通过网络共享目录, SAN是远程通过网络共享块设备。那么分布式存储你可以看作拥有多台存储服务器连接起来的存储输出端。把这多台存储服务器的存储合起来做成一个整体再通过网络进行远程共享,共享的方式有目录(文件存储),块设备(块存储),对象网关或者说一个程序接口(对象存储)。
星哥玩云
2022/09/15
6.4K0
分布式存储-GlusterFS
GlusterFS分布式存储学习总结
分布式文件系统 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源并不直接与本地节点相连,而是分布于计算网络中的一个或者多个节点的计算机上。目前意义上的分布式文件系统大多都是由多个节点计算机构成,结构上是典型的客户机/服务器模式。流行的模式是当客户机需要存储数据时,服务器指引其将数据分散的存储到多个存储节点上,以提供更快的速度,更大的容量及更好的冗余特性。 目前流行的分布式文件系统有许多,如MooseFS、FastDFS、GlusterFS、Ceph、Mogile
洗尽了浮华
2018/04/17
2.9K0
GlusterFS分布式存储学习总结
分布式存储glusterfs原理,部署及k8s, Heketi集成
分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源并不直接与本地节点相连,而是分布于计算网络中的一个或者多个节点的计算机上。目前意义上的分布式文件系统大多都是由多个节点计算机构成,结构上是典型的客户机/服务器模式。流行的模式是当客户机需要存储数据时,服务器指引其将数据分散的存储到多个存储节点上,以提供更快的速度,更大的容量及更好的冗余特性;
iginkgo18
2021/10/22
4.8K3
glusterfs
理论和实践上分析,GlusterFS 目前主要适用于大文件存储场景,对于小文件尤其是海量小文件,存储效率和访问性能都表现不佳。建议存放文件大小大于 1MB
章工运维
2023/05/19
4450
GlusterFS 4.1 版本选择和部署
1、无元数据设计 GlusterFS设计没有集中或分布式元数据,取而代之的是弹性哈希算法。集群中的任何服务器、客户端都可利用哈希算法、路径及文件名进行计算,就可以对数据进行定位,并执行读写访问操作。
jackxiao
2021/11/16
7900
CentOS7 安装GlusterFS
版权声明:本文为木偶人shaon原创文章,转载请注明原文地址,非常感谢。 https://blog.csdn.net/wh211212/article/details/79412081
shaonbean
2019/05/26
1.2K0
07-Cinder对接GlusterFs
分布式存储 环境 系统 主机 ip 角色 存储 配置 Centos7.7 node1 192.168.150.61 存储节点 两块硬盘分别50G,10G 联网状态,拥有所有主机的hosts记录,关闭防火墙selinux Centos7.7 node2 192.168.150.62 存储节点 两块硬盘分别50G,10
小朋友呢
2019/12/25
1.7K0
GlusterFS 分布式文件系统简介
GlusterFS (Gluster File System) 是一个开源的分布式文件系统,主要由 Z RESEARCH公司负责开发。GlusterFS 是 Scale-Out 存储解决方案 Gluster 的核心,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS 借助 TCP/IP 或 InfiniBand RDMA 网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。GlusterFS 基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能。
虚拟化云计算
2019/12/29
4K0
Kubernetes运维-分布式存储GlusterFS组件详解
在现代容器化应用开发中,Kubernetes 已成为主流的容器编排平台,为应用部署和管理提供了强大的功能。然而,随着应用规模和复杂性的增加,对于持久化存储的需求也日益迫切。在 Kubernetes 集群中,分布式存储解决方案如 GlusterFS 成为了许多开发者和运维人员的首选。本文将深入探讨 Kubernetes 运维中的分布式存储,重点介绍 GlusterFS 的原理、架构以及在 Kubernetes 中的实践应用。
王先森sec
2024/04/29
1.6K0
Kubernetes运维-分布式存储GlusterFS组件详解
Glusterfs分布式存储部署
Glusterfs是一个开源的分布式文件系统,容量可以按比例的扩展,且性能却不会因此而降低。 廉价且使用简单,完全抽象在已有的文件系统之上。 扩展和容错设计的比较合理,复杂度较低 适应性强,部署方便,对环境依赖低,使用,调试和维护便利。
范一刀
2021/08/10
4.3K0
14-使用glusterfs做持久化存储
使用glusterfs做持久化存储 我们复用kubernetes的三台主机做glusterfs存储。 以下步骤参考自:https://www.xf80.com/2017/04/21/kubernetes-glusterfs/ 安装glusterfs 我们直接在物理机上使用yum安装,如果你选择在kubernetes上安装,请参考:https://github.com/gluster/gluster-kubernetes/blob/master/docs/setup-guide.md # 先安装 gluste
程序员同行者
2018/07/02
9150
KVM虚拟化开源高可用方案(七)GLUSTERFS搭建及常见故障处理
为了充分保证系统的稳定性和性能,要求所有glusterfs服务器硬件配置尽量一致,尤其是硬盘数量和大小。机器的RAID卡需要带电池,缓存越大,性能越好。一般情况下,建议做RAID10,如果出于空间要求的考虑,需要做RAID5,建议最好能有1-2块硬盘的热备盘。
力哥聊运维与云计算
2019/06/28
1.2K0
KVM虚拟化开源高可用方案(三)glusterfs
1. 集群设计虚拟机容量70-100台,占用1个机柜,全部由1U服务器组成,其中存储服务器6台,300G*8,节点服务器10台;
力哥聊运维与云计算
2019/06/28
1.8K0
KVM虚拟化开源高可用方案(三)glusterfs
GlusterFS简介
GlusterFS (Gluster File System) 是一个开源的分布式文件系统,主要由 Z RESEARCH 公司负责开发。GlusterFS 是 Scale-Out 存储解决方案 Gluster 的核心,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS 借助 TCP/IP 或 InfiniBand RDMA 网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。GlusterFS 基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能。
thierryzhou
2022/11/24
1K0
分布式文件系统---GlusterFS
1.1 分布式文件系统 1.1.1 什么是分布式文件系统   相对于本机端的文件系统而言,分布式文件系统(英语:Distributed file system, DFS),或是网络文件系统(英语:Network File System),是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间。   在这样的文件系统中,客户端并非直接访问底层的数据存储区块,而是通过网络,以特定的通信协议和服务器沟通。借由通信协议的设计,可以让客户端和服务器端都能根据访问控制清单或是授权,来限
惨绿少年
2018/03/30
1.8K0
相关推荐
大点干!早点散----------深入剖析GFS分布式文件系统
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验