GFS分布式文件系统概述以及集群部署

一.简介

  • GlusterFS 是一个开源的分布式文件系统。
  • 由存储服务器、客户端以及NFS/Samba存储网关(可选,根据需要选择使用)组成。
  • 没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性。

传统的分布式文件系统大多通过元服务器来存储元数据,元数据包含,例如单点故障。一旦元数据服务器出现故障,即使节点具备再高的冗余性,整个存储系统也将崩溃。而GlusterFS 分布式文件系统是基于无元服务器的设计,数据横向扩展能力强,具备较高的可靠性及存储效率。

  • GlusterFs同时也是Scale-Out(横向扩展)存储解决方案Gluster的核心,在存储数据方面具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。
  • GlusterFS支持借助TCP/IP或InfiniBandRDMA网络 (一种支持多并发链接的技术,具有高带宽、低时延、高扩展性的特点)将物理分散分布的存储资源汇聚在一起,统一提供存储服务,并使用统一全局命名空间来管理数据。

二.特点

1.扩展性和高性能

GlusterFS利用双重特性来提供高容量存储解决方案。

(1)Scale-Out架构允许通过简单地增加存储节点的方式来提高存储容量和性能(磁盘、计算和I/O资源都可以独立增加),支持10GbE和InfiniBand等高速网络互联。

(2)Gluster弹性哈希(ElasticHash) 解决了GlusterFS对元数据服务器的依赖,改善了单点故障和性能瓶颈,真正实现了并行化数据访问。GlusterFS采用弹性哈希算法在存储池中可以智能地定位任意数据分片(将数据分片存储在不同节点上),不需要查看索引或者向元数据服务器查询。

2.高可用性

(1)GlusterFS可以对文件进行自动复制,如镜像或多次复制,从而确保数据总是可以访问,甚至是在硬件故障的情况下也能正常访问当数据出现不一致时,自我修复功能能够把数据恢复到正确的状态,数据的修复是以增量的方式在后台执行,几乎不会产生性能负载。

(2)GlusterFS可以支持所有的存储,因为它没有设计自己的私有数据文件格式,而是采用操作系统中主流标准的磁盘文件系统(如EXT3、XFS等)来存储文件,因此数据可以使用传统访问磁盘的方式被访问。

3.全局统一命名空间

分布式存储中,将所有节点的命名空间整合为统一命名空间,将整个系统的所有节点的存储容量组成一个大的虛拟存储池,供前端主机访问这些节点完成数据读写操作。

4.弹性卷管理

(1)GlusterFs通过将数据储存在逻辑卷中,逻辑卷从逻辑存储池进行独立逻辑划分而得到。

(2)逻辑存储池可以在线进行增加和移除,不会导致业务中断。逻辑卷可以根据需求在线增长和缩减,并可以在多个节点中实现负载均衡。

(3)文件系统配置也可以实时在线进行更改并应用,从而可以适应工作负载条件变化或在线性能调优。

5.基于标准协议

(1)Gluster存储服务支持NFS、CIFS、HTTP、FTP、SMB 及Gluster原生协议,完全与POSIX标准(可移植操作系统接口)兼容。

(2)现有应用程序不需要做任何修改就可以对Gluster中的数据进行访问,也可以使用专用API进行访问。

三.GlusterFS术语

1.Brick(块存储服务器)实际存储用户数据的服务器

2.Volume(逻辑卷)本地文件系统的"分区"

3.FUSE用户空间的文件系统(类别EXT4),”这是一个伪文件系统“,用户端的交换模块

4.VFS(虚拟端口)内核态的虚拟文件系统,用户是提交请求给VFS 然后VFS交给FUSH,再交给GFS客户端,最后由客户端交给远端的存储

5.Glusterd(服务)是运行再存储节点的进程(客户端运行的是gluster client)GFS使用过程中整个GFS之间的交换由Gluster client 和glusterd完成

使用GFS会使用到以上的虚拟文件系统

四.构成

模块化堆栈式架构

  • 模块化、堆栈式的架构
  • 通过对模块的组合,实现复杂的功能

1.API:应用程序编程接口
2.模块化:每个模块可以提供不同的功能
3.堆栈式:同时启用多个模块,多个功能可以组合,实现复杂的功能

1.I/O cache:I/O缓存

2.read ahead:内核文件预读

3.distribute/stripe:分布式、条带化

4.Gige:千兆网/千兆接口

5.TCP/IP:网络协议

6.InfiniBand:网络协议,与TCP/IP相比,TCP/IP具有转发丢失数据包的特性,基于此通信协议可能导致通信变慢,而IB使用基于信任的、流控制的机制来保证连接完整性

7.RDMA:负责数据传输,有一种数据传输协议,功能:为了解决传输过程中客户端与服务器端数据处理的延迟

解读上图:

上半部分为客户端,中间为网络层,下半部分为服务端

1.封装多个功能模块,组成堆栈式的结构,来实现复杂的功能

2.然后以请求的方式与客户端进行交互,客户端与服务端进行交互,由于可能会存在系统兼容问题,需要通过posix来解决系统兼容性问题,让客户端的命令通过posix过滤后可以在服务端执行

1.外来一个请求,例:用户端申请创建一个文件,客户端或应用程序通过GFS的挂载点访问数据

2.linux系统内容通过VFSAPI收到请求并处理

3.VFS将数据递交给FUSE内核文件系统,fuse文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS client端

4.GlusterFS client端收到数据后,会根据配置文件的配置对数据进行处理

5.再通过网络,将数据发送给远端的ClusterFS server,并将数据写入到服务器储存设备上

6.server再将数据转交给VFS伪文件系统,再由VFS进行转存处理,最后交给EXT3

五.后端存储如何定位文件

弹性HASH算法是Davies-Meyer算法的具体实现,通过HASH算法可以得到一个32位的整数范围的hash值, 假设逻辑卷中有N个存储单位Brick,则32位的整数范围将被划分为N个连续的子空间,每个空间对应一个Brick。

当用户或应用程序访问某一个命名空间时,通过对该命名空间计算HASH值,根据该HASH值所对应的32位整数空间定位数据所在的Brick。

六.GFS支持的七种卷

1.分布式卷(Distribute volume)

  • 文件通过HASH算法分布到所有Brick Server上,这种卷是GlusterFS的默认卷;以文件为单位根据HASH算法散列到不同的Brick,其实只是扩大了磁盘空间,如果有一块磁盘损坏,数据也将丢失,属于文件级的RAID0,不具有容错能力。
  • 在该模式下,并没有对文件进行分块处理,文件直接存储在某个Server节点上。
  • 由于直接使用本地文件系统进行文件存储,所以存取效率并没有提高,反而会因为网络通信的原因而有所降低。

分布式卷具有如下特点:

(1)文件分布在不同的服务器,不具备冗余性。

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

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

(4)依赖底层的数据保护。

2.条带卷

  • 类似RAID0,文件被分成数据块并以轮询的方式分布到多个Brick Server上,文件存储以数据块为单位,支持大文件存储,文件越大,读取效率越高,但是不具备冗余性。

条带卷特点:

(1)数据被分割成更小块分布到块服务器群中的不同条带区。

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

(3)没有数据冗余。 

3.复制卷

  • 将文件同步到多个Brick上,使其具备多个文件副本,属于文件级RAID 1,具有容错能力。因为数据分散在多个Brick中,所以读性能得到很大提升,但写性能下降。
  • 复制卷具备冗余性,即使一个节点损坏,也不影响数据的正常使用。但因为要保存副本,所以磁盘利用率较低。

复制卷特点:

(1)卷中所有的服务器均保存一个完整的副本。

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

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

(4)具备冗余性。

4.分布式条带卷

  • BrickServer数量是条带数(数据块分布的Brick数量)的倍数,兼具分布式卷和条带卷的特点。
  • 主要用于大文件访问处理,创建一个分布式条带卷最少需要4台服务器。
  • 创建一个名为dis-stripe的分布式条带卷,配置分布式的条带卷时,卷中Brick所包含的存储服务器数必须是条带数的倍数(>=2倍)。Brick的数量是4 (Server1:/dir1、Server2:/dir2、Server3:/dir3和Server4:/dir4),条带数为2(stripe 2) 
  • 创建卷时,存储服务器的数量如果等于条带或复制数,那么创建的是条带卷或者复制卷:如果存储服务器的数量是条带或复制数的2倍甚至更多,那么将创建的是分布式条带卷或分布式复制卷。

5.分布式复制卷

  • Brick Server数量是镜像数(数据副本数量)的倍数,兼具分布式卷和复制卷的特点。主要用于需要冗余的情况下。
  • 创建一个名为dis-rep的分布式复制卷,配置分布式的复制卷时,卷中Brick所包含的存储服务器数必须是复制数的倍数(>=2倍)。Brick的数量是4 (Server1:/dir1、Server2:/dir2、Server3:/dir3 和Server4:/dir4),复制数为2(replica 2)

6.条带复制卷

类似RAID10,同时具有条带卷和复制卷的特点。

7.分布式条带复制卷

三种基本卷的复合卷,通常用于类Map Reduce应用。

七.GFS部署

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/528953.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式路由器:支持Vxlan功能,四大运营商网络

SR830-E系列产品,是集 4G/5G 网络、虚拟专用网等 技术于一体的物联网无线路由器产品。多DNN网络切片功能,满足行业应用差异化需求提供网络级的SLA保障及E2E安全隔离。该设备支持Vxlan功能,实际二层交换组网。为数据中心提供良好的解决方案。 …

西圣PK飞利浦PK漫步者开放式耳机值得选购吗?热门爆款品牌测评对比PK

开放式耳机因其独特的音质体验与佩戴舒适度,正逐渐成为消费者追求音乐品质与生活品质的重要选择,而在众多开放式耳机品牌中,万魔、飞利浦与漫步者在开放式耳机市场争议火热,这三大品牌开放式耳都值得购买吗?作为一个测…

C++进阶之路---何为智能指针?

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、为什么需要智能指针? 下面我们先分析一下下面这段程序有没有什么内存方面的问题?提示一下&am…

Z变换与传递函数代码化

对于自动控制而言,其关键在于传递函数方程,根据其特性设计出控制器,控制器也是S域的传递函数,那么如何将传递函数用代码的形式表现出来呢?以下将介绍这种工程方法 1、Z变换 对于一个确定的传递函数,如下 …

【知识面拓展】:前瞻性

前瞻性 AUTOSEMO大陆集团博士其他 AUTOSEMO AUTOSEMO,中国汽车基础软件生态委员会 . 车企、软件、芯片等各嘉宾观点 . 国产芯片之:芯驰科技构建智能汽车数字化生态平台 . 国产软件之:经纬恒润的全栈思考 大陆集团 大陆集团新闻稿链接 . 1、2…

✌2024/4/3—力扣—最长回文子串

代码实现: 解法一:动态规划——回文子串 char* longestPalindrome(char *s) {int n strlen(s);if (s NULL || n 0 || n 1) {return s;}int dp[n][n];memset(dp, 0, sizeof(dp));for (int i n - 1; i > 0; i--) { // 从下到上for (int j i; j &l…

emqx开启自定义权限认证

emqx开启自定义权限认证 emqx broker安装 emqx 集群搭建 浏览器访问WEB管理界面: http://127.0.0.1:18083/ 默认用户名和密码: admin/public 建议修改 开启emqx_auth_http插件 修改emq配置 #修改emqx/etc/emqx.conf #禁用匿名认证 生产环境建议禁用 allow_anonymous fa…

十四款大型语言模型在《街头霸王III》中一决雌雄

上周在旧金山举办的Mistral AI黑客马拉松上,开发出了一款基于经典街机游戏《街头霸王III》的人工智能(AI)基准测试。这款名为“AI Street Fighter III”的开源基准测试由Stan Girard和Quivr Brain开发,游戏在模拟器中运行&#xf…

三体续章-云天明传:【9】十年铸剑

::: block-1 “时问桫椤”是一个致力于为本科生到研究生教育阶段提供帮助的不太正式的公众号。我们旨在在大家感到困惑、痛苦或面临困难时伸出援手。通过总结广大研究生的经验,帮助大家尽早适应研究生生活,尽快了解科研的本质。祝一切顺利!—…

基于Java+SpringBoot+Vue企业员工管理系统(源码+文档+部署+讲解)

一.系统概述 随着社会的发展,系统的管理形势越来越严峻。越来越多的用户利用互联网获得信息,但各种信息鱼龙混杂,信息真假难以辨别。为了方便用户更好的获得信息,因此,设计一种安全高效的员工管理系统极为重要。 为设计…

蓝桥杯练习笔记(十八)

蓝桥杯练习笔记(十八) 一、用辅助栈来优化递归深度过大的问题 输入示例 0000100010000001101010101001001100000011 0101111001111101110111100000101010011111 1000010000011101010110000000001011010100 0110101010110000000101100100000101001001 0…

React安装

React中文官网:快速入门 – React 中文文档 React英文官网:https://react.dev/learn React安装教程:https://www.jianshu.com/p/0784e619a186 一、环境配置 安装nodejs 下载网址:Node.js — Run JavaScript Everywhere 下载安…

UVA12538 Version Controlled IDE 题解 crope

Version Controlled IDE 传送门 题面翻译 维护一种数据结构,资磁三种操作。 1.在p位置插入一个字符串s 2.从p位置开始删除长度为c的字符串 3.输出第v个历史版本中从p位置开始的长度为c的字符串 1 ≤ n ≤ 50000 1 \leq n \leq 50000 1≤n≤50000,所…

机器学习-随机森林算法预测温度

文章目录 算法简介解决问题获取数据集探索性数据分析查看数据集字段信息查看数据集综合统计结果查看特征值随时间变化趋势 数据预处理处理缺失数据字符列编码数据集分割训练集、验证集、测试集数据集分割 构建模型并训练结果分析与评估进一步优化实际使用经验总结 算法简介 随…

YUDAO源码中的正序倒序表格ElmentUI的实现,与后端的配合?

前端展示和实现&#xff1a; 1. elmentUI表格的定义 2. JS请求参数改造 <!-- 列表 --><el-table v-loading"loading" :data"list" sort-change"handleSortChange"><el-table-column label"Expiry Date" prop"…

【Gmail】Google OAuth2 发送邮件配置

背景 gmail将全面禁用账号、密码登陆方式&#xff0c;官方相关文档&#xff0c;对于需要调用gmail相关的服务需要做出相应的调整。这里使用Google Cloud应用的形式来接入Gmail&#xff0c;类似的&#xff0c;也可以通过该方式来调用其他的Google Cloud服务。 创建项目及应用 …

【ZBrush】制作章鱼练习 02——足部

本篇效果 步骤 笔刷工具选择“Move” 按下X键激活对称&#xff0c;然后往外拉 这里拉出6条腿的基底 笔刷工具选择“CurveTube” 绘制腿&#xff0c;可以发现此时腿部起始点和终点的粗细一样&#xff0c;但是真实的章鱼腿部应该是根部较粗&#xff0c;脚部较细 因此我们先回撤一…

宠物医院管理系统

文章目录 宠物医院管理系统一、系统演示二、项目介绍三、12000字论文参考四、系统部分页面展示五、部分代码展示六、底部获取项目源码和万字论文参考&#xff08;9.9&#xffe5;带走&#xff09; 宠物医院管理系统 一、系统演示 宠物医院管理系统 二、项目介绍 语言&#xf…

CLI举例:上行连接路由器(业务引流),下行连接交换机(VRRP引流)

CLI举例&#xff1a;上行连接路由器&#xff08;业务引流&#xff09;&#xff0c;下行连接交换机&#xff08;VRRP引流&#xff09; 介绍了设备上行连接路由器&#xff0c;下行连接交换机的集群配置举例。 组网需求 如图1所示&#xff0c;FW与路由器之间运行OSPF协议。 希望…

R+VIC模型融合实践技术应用及未来气候变化模型预测

在气候变化问题日益严重的今天&#xff0c;水文模型在防洪规划&#xff0c;未来预测等方面发挥着不可替代的重要作用。目前&#xff0c;无论是工程实践或是科学研究中都存在很多著名的水文模型如SWAT/HSPF/HEC-HMS等。虽然&#xff0c;这些软件有各自的优点&#xff1b;但是&am…