9月11日上课内容 第二章 GFS 分布式文件系统

news2024/11/25 0:31:09

本章结构

前言

存储

块存储        硬盘

文件存储        nfs        lvm        raid       

ext4        ext3    centos6

xfs        centos7

对象存储

GFS        Ceph        fastdfs

云端

OSS        阿里云存储        url链接

S3           亚马逊               url链接

switch

一、GlusterFS概述

文件进入硬盘里面,用什么东西来调用它?

系统:用户态和内核态

通过内核层面去调用硬件设备,协同各方,存储数据,文件系统在内核层面来调用

用户态只做操作

无元数据:保存数据的地方

1.GlusterFS简介

GlusterFS 是一个开源的分布式文件系统。
由存储服务器、客户端以及NFS/Samba 存储网关(可选,根据需要选择使用)组成。
没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性。
MFS
传统的分布式文件系统大多通过元服务器来存储元数据,元数据包含存储节点上的目录信息、目录结构等。这样的设计在浏览目录时效率高,但是也存在一些缺陷,例如单点故障。一旦元数据服务器出现故障,即使节点具备再高的冗余性,整个存储系统也将崩溃。而 GlusterFS 分布式文件系统是基于无元服务器的设计,数据横向扩展能力强,具备较高的可靠性及存储效率。

GlusterFS同时也是Scale-Out(横向扩展)存储解决方案Gluster的核心,在存储数据方面具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。

GlusterFS支持借助TCP/IP或InfiniBandRDMA网络(一种支持多并发链接的技术,具有高带宽、低时延、高扩展性的特点)将物理分散分布的存储资源汇聚在一起,统一提供存储服务,并使用统一全局命名空间来管理数据。
 

总结

GFS

是一个分布式的文件系统,只在扩展存储容量,提高性能,并通过多个互联网络的存储节点的数据进行冗余,以确保数据的可用性和一致性

GFS由三个部分组成

①存储服务器

②客户端NFS/Samba存储网关组成

③无元数据服务器:是保存数据的地方

2.GlusterFS特点

●扩展性和高性能

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

●高可用性

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

●全局统一命名空间

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

●弹性卷管理

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

●基于标准协议

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

3.GlusterFS 术语

●Brick(存储块):

指可信主机池中由主机提供的用于物理存储的专用分区,是GlusterFS中的基本存储单元,同时也是可信存储池中服务器对外提供的存储目录
存储目录的格式由服务器和目录的绝对路径构成,表示方法为 SERVER:EXPORT,如 192.168.10.14:/data/mydir/。

简单来说就是一个存储用户提供的数据的服务器,一个块,是以GFS分布式系统中做的

●Volume(逻辑卷):

一个逻辑卷是卷上进行的。一组 Brick 的集合。卷是数据存储的逻辑设备,类似于 LVM 中的逻辑卷。大部分 Gluster 管理操作都是在卷上进行的。

可以理解为本地文件的分区(把多个brick分成一个组)

●FUSE:

是一个内核模块,允许用户创建自己的文件系统,无须修改内核代码。
伪文件系统

●VFS:

内核空间对用户空间提供的访问磁盘的接口。   虚拟端口

●Glusterd(后台管理进程):  服务端

在存储群集中的每个节点上都要运行

GFS 以上虚拟文件系统

4.模块化堆栈式架构

GlusterFS 采用模块化、堆栈式的架构。
通过对模块进行各种组合,即可实现复杂的功能。例如 Replicate 模块可实现 RAID1,Stripe 模块可实现 RAID0, 通过两者的组合可实现 RAID10 和 RAID01,同时获得更高的性能及可靠性。

二、GlusterFS工作原理

5.GlusterFS 的工作流程(重点、必会)

(1)客户端或应用程序通过 GlusterFS 的挂载点访问数据。
(2)linux系统内核通过 VFS虚拟接口 API 收到请求并处理。
(3)VFS 将数据递交给 FUSE 内核文件系统,并向系统注册一个实际的文件系统 FUSE,而 FUSE 文件系统则是将数据通过 /dev/fuse 设备文件递交给了 GlusterFS client 端。可以将 FUSE 文件系统理解为一个代理。
(4)GlusterFS client 收到数据后,client 根据配置文件的配置对数据进行处理。
(5)经过 GlusterFS client 处理后,通过网络将数据传递至远端的 GlusterFS Server,并且将数据写入到服务器存储设备上。

注:客户端和服务端之间是C/S模式

6.弹性 HASH 算法

弹性 HASH 算法是 Davies-Meyer 算法的具体实现,通过 HASH 算法可以得到一个 32 位的整数范围的 hash 值,
假设逻辑卷中有 N 个存储单位 Brick,则 32 位的整数范围将被划分为 N 个连续的子空间,每个空间对应一个 Brick。
当用户或应用程序访问某一个命名空间时,通过对该命名空间计算 HASH 值,根据该 HASH 值所对应的 32 位整数空间定位数据所在的 Brick。

可以把每一台brick都理解为一台机器

#弹性 HASH 算法的优点:

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

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

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

相关文章

证件照换衣服怎么换?学会这两招不用重拍证件照

当我们申请各种证件时,证件照往往是不可或缺的一步。这张照片会被用于各种场合,比如办理银行卡、信用卡、驾驶证、护照、签证等等,因此,它的重要性不言而喻。而证件照上的衣服则是影响印象的一个重要因素。所以,为了让…

2022年全国研究生数学建模竞赛华为杯A题移动场景超分辨定位问题求解全过程文档及程序

2022年全国研究生数学建模竞赛华为杯 A题 移动场景超分辨定位问题 原题再现: 在日常家庭生活中,人们可能需要花费大量时间去寻找随意摆放在家中某些角落里的小物品。但如果给某些重要物品贴上电路标签,再利用诸如扫地机器人的全屋覆盖能力&…

手动实现一个bind函数!

原文地址:手动实现一个bind函数! - 知乎 1.bind函数用法 bind()方法用于创建一个新的函数,这个新函数接收的第一个参数代表的就是this,利用bind()函数我就就可以任意改变函数内部的this指向了。 官网的解释: bind()…

缩小检索范围、精准检索文献的方法

搜索文献也需要找到正确的方法,因为不正确的搜索方法直接影响搜索结果。要么发现的文献与我们需要的无关,要么检索到的文献很少,这不仅浪费时间,而且浪费精力。本文整理了准确检索文献、缩小文献检索范围的详细方法,希…

三步高效搭建在线帮助中心,这几个技巧与工具必须掌握

搭建一个高效的在线帮助中心是提供优质客户支持的重要组成部分。下面将介绍三个步骤,以及必须掌握的技巧和工具,帮助你快速搭建一个高效的在线帮助中心。 第一步:规划和准备 在搭建在线帮助中心之前,首先需要进行一些规划和准备…

python自动生成小学四则运算题目

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 话不多说,直接开搞,如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 题目一 1.题目要求: 设计一个程序,帮助小学生练习10以内的加法 详情: 随机生成加法题目; 学生…

《向量数据库指南》——向量数据库会是 AI 的“iPhone 时刻”吗?

最近一年,以 ChatGPT、LLaMA 为代表的大语言模型的兴起,将向量数据库的发展推向了新的高度。 向量数据库是一种在机器学习和人工智能领域日益流行的新型数据库,它能够帮助支持基于神经网络而不是关键字的新型搜索引擎。向量数据库不同于传统的关系型数据库,例如 PostgreSQ…

Vue3 Element-Plus 主题切换方案

1. .html 文件中&#xff0c;设置 <html> 标签的 “data-theme” 属性 2. 单独创建主题的样式文件 .css/.scss &#xff0c;并导入 3. 样式文件中创建不同主题对象 4. 定义不同主题中的样式变量 注意&#xff1a;左右两个主题的变量名一样&#xff0c;值不同 5. 页面样式…

【Hive SQL】统计同名路径下目录数量(基于reverse、split和substr函数)

首先&#xff0c;Hive事务表所产生的的路径信息如下&#xff1a; PS&#xff1a;其中路径信息格式为 /user/hive/warehouse/${database_name}.db/${table_name}/*/user/hive/warehouse/test.db/tran_ts/delete_delta_0000002_0000002_0000 /user/hive/warehouse/test.db/tran_…

VUE响应式

响应式 :::tip 提示 我们了解过响应式可以同步更新数据和视图&#xff0c;但是其工作原理我们最好也要了解一下。这样当你使用时遇到一些常见的错误&#xff0c;也能够快速定位是什么问题导致的。 了解响应式原理之前&#xff0c;你必须要先去了解 ES5 的 Object.defineProper…

项目管理的工作分解结构 (WBS):如何创建及使用

工作分解结构 (WBS) 是一种可视化的项目分解。通过将项目分解为更小的组件&#xff0c;WBS 可以将范围、成本和可交付成果集成到一个工具中。虽然大多数 WBS 是基于可交付成果的&#xff0c;但它们也可以是基于阶段的。下面来详细了解 WBS 可以为项目管理做些什么。 项目管理中…

Linux 磁盘管理,分区,文件系统

目录 磁盘基本概念 磁盘在Linux中的表示 分区的概念&#xff0c;分区是软件概念 MBR GPT 使用fdisk进行磁盘管理 文件系统 mke2fs mkfs mke2fs mkfs dumpe2fs 日志 e2label fsck (file system check) 挂载、使用文件系统&#xff0c;mount,unmount 自动挂载…

大数据平台测试

简介&#xff1a; 一.大数据平台测试简述 大数据平台测试包括2部分&#xff1a;基础能力测试和性能测试 Ⅰ).基础能力测试 大数据平台的基本功能和数据的导入导出对SQL任务、NoSQL任务、机器学习、批处理任务的支持 大数据平台是否能够通过界面的形式方便用户进行非运行维护&am…

PCIE2.0/PCIE3.0/PCIE4.0/PCIE5.0接口的带宽、速率计算,nvlink互联

PCIE2.0/PCIE3.0/PCIE4.0/PCIE5.0接口的带宽、速率计算 https://blog.csdn.net/weixin_42229404/article/details/84069859 PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准&#xff0c;它原来的名称为“3GIO”&#xff0c;是由英特…

虚拟机突然无法访问外部网络的现象集合

现场还原 虚拟机突然无法访问外部网络 ping 8.8.8.8的时候显示网络不可达 ping 8.8.8.8ping www.baidu.com&#xff08;报&#xff1a;未知的名称或服务或请求超时&#xff09; ping www.baidu.comyum操作 也提示错误&#xff1a;为仓库 ‘appstream’ 下载元数据失败 : C…

device or resource busy

最近要删除ubuntu下面的某个文件的时候&#xff0c;突然报错: "device or resource busy", 于是通过 如下命令: lsof | grep /projects/m/CMLR_processed_codeformer_HD/20110330/02313/.nfs0000000001dedb1b00000003 发现是 5953号进程占用了&#xff0c;于是kill…

win11鼠标指针怎么设置

win11有很多自定义的功能&#xff0c;这个功能可以让我们根据自己的喜好进行系统的自定义设置&#xff0c;很多小伙伴在将电脑更新成win11之后不知道该怎么设置鼠标指针&#xff0c;这里小编就给大家带来win11鼠标指针的设置方法&#xff0c;还不太清楚的小伙伴快来跟小编一起了…

SpringMvc第五战-【SpringMvcJSR303和拦截器】

前言&#xff1a; 小编阐述了springmvc 中的文件下载&#xff0c;以及jrebel的使用和文件下载以及多文件下载! 在本次小编将会介绍JSR303的概念&#xff0c;应用场景和在具体实例的使用&#xff1b;和拦截器的应用 一.JSR303的介绍 1.什么是JSR303&#xff1f; JSR是Java S…

清理不干净等于白清理!如何擦除所有个人数据并擦除iPhone和iPad

我们大多数人每天都在使用iPhone和iPad。在设备的使用寿命中&#xff0c;我们会积累大量敏感数据和信息&#xff0c;包括消息、照片、视频、联系人、信用卡、密码等等。这就是为什么确保你有所有重要物品的备份很重要&#xff0c;这样你就可以在卖掉或交给别人之前把它扔掉。 …

13.6 Production State Awareness (PSA)

1. Introduction UFS设备可以利用有关其生产状态的知识&#xff0c;相应地调整内部操作。 例如&#xff0c;在设备焊接之前加载到存储设备中的内容可能被破坏&#xff0c;其概率高于regular模式。UFS设备可以在设备焊接前使用“Special”内部操作加载内容&#xff0c;这将减少…