GlusterFS分布式文件系统

一、GlusterFS简介

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

二、GlusterFS特点

2.1 扩展性和高性能

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

Scale-Out架构允许通过简单地增加存储节点的方式来提高存储容量和性能(磁盘、计算和I/O资源都可以独立增加),支持10GbE和InfiniBand等高速网络互联。
Gluster弹性哈希(ElasticHash) 解决了GlusterFS对元数据服务器的依赖,改善了单点故障和性能瓶颈,真正实现了并行化数据访问。GlusterFS采用弹性哈希算法在存储池中可以智能地定位任意数据分片(将数据分片存储在不同节点上),不需要查看索引或者向元数据服务器查询。

2.2 高可用性

GlusterFS可以对文件进行自动复制,如镜像或多次复制,从而确保数据总是可以访问,甚至是在硬件故障的情况下也能正常访问当数据出现不一致时,自我修复功能能够把数据恢复到正确的状态,数据的修复是以增量的方式在后台执行,几乎不会产生性能负载。
GlusterFS可以支持所有的存储,因为它没有设计自己的私有数据文件格式,而是采用操作系统中主流标准的磁盘文件系统(如EXT3、XFS等)来存储文件,因此数据可以使用传统访问磁盘的方式被访问。

2.3 全局统一命名空间

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

2.4 弹性卷管理

GlusterFs通过将数据储存在逻辑卷中,逻辑卷从逻辑存储池进行独立逻辑划分而得到。
逻辑存储池可以在线进行增加和移除,不会导致业务中断。逻辑卷可以根据需求在线增长和缩减,并可以在多个节点中实现负载均衡。
文件系统配置也可以实时在线进行更改并应用,从而可以适应工作负载条件变化或在线性能调优。

2.5 基于标准协议

Gluster存储服务支持NFS、CIFS、HTTP、FTP、SMB 及Gluster原生协议,完全与POSIX标准(可移植操作系统接口)兼容。
现有应用程序不需要做任何修改就可以对Gluster中的数据进行访问,也可以使用专用API进行访问。

三、GlusterFS专业术语

###一个节点就是一台服务器

1. Brick(单独服务器)
###每一个Brick就是一个单独的服务器
###多个Brick(服务器)组合起来就是分布式文件系统

2. Volume(逻辑卷)
###一个逻辑卷是多个服务器组成,类型与LVM中的逻辑卷
###通过Volume扩大磁盘空间

3. FUSE(内核文件系统)
###数据写在磁盘上,利用FUSE保存到具体的文件系统
###允许用户创建自己的文件系统,无须修改内核代码

4. VFS(虚拟接口)
###用户空间访问内核空间,通过VFS来对接

5. Glussterd(后台服务)
###管理集群的配置和启动

四、GlusterFS工作原理

1. 客户端通过挂载点目录访问数据,数据交给VFS(虚拟接口),转换数据后给FUSE(内核文件系统)

2. FUSE把数据放在内存中(/dev/fuse)

3. 通过poll(指针)指向客户端处理数据

4. GFS(分布式文件系统)通过TCP网络模式给服务端

5. 服务端通过VFS(虚拟接口)保存在EXT3中

五、弹性hash算法原理

把数据通过hash算法,分布到每个节点中,来实现负载均衡

六、GFS支持的7中卷

1. 分布式卷
       1)没有分块处理,文件只能存在一个server中,效率不提升
       2)没有备份,一台坏了,数据就丢了
       3)依赖底层数据保护

2.条带卷
       1)没有数据备份
       2)被分成小块


       
3. 复制卷
       1)同一文件保存多份副本
        2)至少有两块服务器
       3)可以数据备份
        4)速度会降低

4. 分布式条带卷
        1)至少要四台主机
        2)能做高性能分布式存储
        3)没有冗余备份


        
5. 分布式复制卷
        1)至少要四台主机
        2)有冗余备份

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

结合 linux 0.11 源码分析为什么 fork 函数会返回两个值

#(1)学习资料是这些书 以及赵炯博士的完全剖析。谢谢这些大师与网上优秀的文章。 #(2)看 linux 0.11 源码是 sourceinlight 4.这里附上一个安装包。 由本图可知, main 函数对 fork 函数的调用。 fork 函数实际是定…

掌握苹果电脑保养秘籍,全方位维护指南!

苹果电脑(Mac)凭借卓越的性能表现、精致的设计美学以及深入人心的操作系统体验赢得了全球用户的高度评价。不过,无论是哪款顶级配置的Mac产品,都需要经过适时且恰当的保养维护,才能持续展现最优性能。 苹果电脑维护小…

python应用题例子--改试卷

要求:在现实生活中,写一些小函数帮助老师改卷子,比如选择题,本次数学题有12道,正解答案是ABCDCCDDBABA,请根据正确答案,找出学生的错误题并统计正常率。 CORRECT_ANSWERS"ABCDCCDDBABA" #一般习…

最新AI工具系统ChatGPT网站运营源码SparkAi系统V6.0版本,GPTs应用、AI绘画、AI换脸、垫图混图、Suno-v3-AI音乐生成大模型全支持

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧。已支持GPT…

Django之五种中间件定义类型—process_request、process_view、process_response.......

目录 1. 前言 2. 基础中间件 3. 如何自定义中间件 4. 五种自定义中间件类型 4.1 process_request 4.2 process_view 4.3 process_response 4.4 process_exception 4.5 process_template_response 5. 最后 1. 前言 哈喽,大家好,我是小K,今天咋们…

openhomeny鸿蒙arkts笔记

基于api9,创建arkts file,之前是java或者kotlin代码,转鸿蒙代码的一些笔记 1、final用readonly代替 2、Exception用Error代替 3、String用string代替 4、int,long,float,double等用number代替 5、要给…

探索GlassWire:网络安全与流量监控软件

名人说:东边日出西边雨,道是无晴却有晴。——刘禹锡 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、软件介绍1、GlassWire(免费版本)2、核心特点二、下载安装① 下载(免费版本)② 安装三、使用方法①如何使用?②语言切换③流量监控四、总结

Pytest教程:一文了解如何使用 pytest_runtest_makereport 修改 Pytest 测试报告内容

在软件测试过程中,生成清晰、易读的测试报告对于团队交流、问题追踪和项目进度评估至关重要。Pytest 是一个功能强大的 Python 测试框架,它不仅支持丰富的断言和测试用例组织方式,还提供了灵活的插件系统和钩子函数,可以帮助我们定…

window安装maven和hadoop3.1.4

前面的文章已讲解如何安装idea和进行基本设置,本文主要带着大家安装配置好maven和hadoop. 大家不用去官网下载,直接使用我发给大家的压缩文件,注意解压后的文件夹不要放在中文目录下,课堂上我们讲解过原因。 这是我电脑上的路径&a…

程序如何注入钩子

引言 相信大家都不想自己的代码被人拿出去做一些商业化的行为,但是一时半会又没有一个有效的方法,这里我提供一点思路。 常用的钩子程序植入方式 方式解释使用难度描述植入通知程序(直接植入)使用APi调用接口形式通知远程服务端程…

Python零基础从小白打怪升级中~~~~~~~入门

第二节:Python入门(二) 一、输入函数 input(“提示信息”) 当程序执行到 input,等待用户输入,输入完成之后才继续向下执行。在Python中,input 接收用户输入后,一般存储到变量,方便…

【每日一题】CF1607 D. Blue-Red Permutation | 贪心 | 简单

题目内容 原题链接 给定一个长度为 n n n 的数组 a a a ,以及一个长度为 n n n 的字符串 s s s ,字符要么为 B 要么为 R。 一次操作中,可以选择一个下标 i i i : 如果 s i s_i si​ 为 B ,可以将 a i a_i ai​…

App Inventor 2 SQLite 拓展

SQLite 拓展 此SQLite 拓展由中文网开发及维护,与 TaifunSQLite 功能类似,但TaifunSQLite是收费的,美刀。 文档及拓展下载地址: App Inventor 2 SQLite 拓展:超流行兼容主流SQL语法的迷你本地数据库引擎 App Invento…

018——红外遥控模块驱动开发(基于HS0038和I.MX6uLL)

目录 一、 模块介绍 1.1 简介 1.2 协议 二、 驱动代码 三、 应用代码 四、 实验 五、 程序优化 一、 模块介绍 1.1 简介 红外遥控被广泛应用于家用电器、工业控制和智能仪器系统中,像我们熟知的有电视机盒子遥控器、空调遥控器。红外遥控器系统分为发送端和…

python如何读取excel文件,并修改内容?

要在Python中读取和修改Excel文件,可以使用openpyxl库。这个库允许你处理Excel文件(.xlsx格式),包括读取、修改单元格内容以及保存修改。以下是一个简单的示例,展示了如何使用openpyxl读取Excel文件、修改内容并保存文…

【SCI绘图】【热力图系列1 R】多特征相关性分析热力图R语言实现

SCI,CCF,EI及核心期刊绘图宝典,爆款持续更新,助力科研! 本期分享: 【SCI绘图】【热力图系列1 R】多特征相关性分析热力图R语言实现 1.环境准备 library(gplots) library(RColorBrewer) 2.数据示例 ###…

宠物医院管理系统

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

基于YOLOv8的GC10-DET缺陷检测系统(Python源码+Pyqt6界面+数据集)

💡💡💡本文摘要:基于YOLOv8的GC10-DET缺陷检测系统,并阐述了整个数据制作和训练可视化过程,最后通过Pyside UI界面进行展示。 博主简介 AI小怪兽,YOLO骨灰级玩家,1)YOL…

JAVA并发编程(二)_线程池

JAVA线程池 1.1Java 线程池之 Executor 框架 为了实现线程池和管理线程池,JDK 给我们提供了基于 Executor 接口的一系列接口、抽象类、实现类,我们把它称作线程池的 Executor 框架,Executor 框架本质上是一个线程池; ​ Java 线…

Python的基础知识学习路线1—python简介与环境配置(最全路线,每部分附有代码操作结果)

一、Python简介 (1)发展史 Python是由创始人贵铎范罗萨姆(Guido van Rossum)在阿姆斯特丹于1989年圣诞节期间,为了打发圣诞节的无趣,开发的一个新的解释型脚本语言。之所以选中Python(大蟒蛇的…