IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> GlusterFS分布式文件系统~~(^-^)V -> 正文阅读

[系统运维]GlusterFS分布式文件系统~~(^-^)V

GlusterFS分布式文件系统~~(^-^)V

在这里插入图片描述

一、文件系统简介:

用于存储、管理磁盘文件(文件保存在磁盘里)。
在这里插入图片描述

1、文件系统的组成:

①文件系统接口—接口
②对对象管理的软件集合—工具
③对象及属性—对象信息

2、文件系统作用:

从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。
具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取。

3、文件系统的挂载使用:

除根文件系统以外的文件系统创建后要使用需要先挂载至挂载点后才可以被访问,挂载点即分区设备文件关联的某。个目录文件
类比:NFS~

二、分布式文件系统:

在这里插入图片描述

1、分布式文件系统的构成组件:

①存储服务器
②客户端
③NFS/Samba存储网关组成

其中,客户端的定位比较重要,因为他是无元数据服务器。
元数据服务器作用:
存储元数据,帮助用户定位文件位置、索引等信息。
有元数据服务器文件系统中,如果元数据损坏,会直接导致文件系统不可用—单点故障。
而GFS把元数据服务器舍弃了,使用的是数据挂载形式挂载到客户端,挂载的网关是NFS/Samba,实现ABC三台GFS服务器数据共享,即使服务器A宕机,也可以从服务器B/C拿取数据。

2、GlusterFS特点:

扩展性和高性能:分布式特点
高可用性:分布式特点
全局统一命名空间:共享资源(名称空间:隔离、独立的整体/环境,与其他名称空间是隔离独立的)
弹性卷管理:条带、复制、分布式、分布式条带、分布式复制;类似raid
基于标准协议

3、GlusterFS术语

Brick存储服务器:实际存储用户数据的服务器
Volume:本地文件系统的"分区”
FUSE:用户 空间的文件系统(类比EXT4),“这是一个伪文件系统”;以本地文件系统为例,用户想要读写一个文件,会借助于EXT4文件系统,然后把数据写在磁盘上;而如果是远端的GFS,客户端的请求则应该交给FUSE(为文件系统),就可以实现跨界点存储在GFS上
VFS(虚拟端口) :内核态的虚拟文件系统,用户是先提交请求交给VFS然后VFS交给FUSE,再交给GFS客户端,最后由客户端交给远端的存储
Glusterd(服务):是允许在存储节点的进程

4、模块化堆栈式架构

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

模块化:
类似linux 编译安装;很多功能都可以做定制的,通常都是通过软件开发的方式封装为模块,按需使用/不适用
GlusterFs也是这个思想:把功能封装为一个个模块,通过加载/调用/启用的方式就可以对应的功能
堆栈式架构设计
通过对模块不同功能的组合来实现复杂功能

5、GFS工作流程:

①写的过程:
GFS客户端服务器
需求:将数据保存在GFS文件系统中(客户端在本地发出写请求):
交由VFS的API接受请求–>组合功能模块,将数据交给FUSE(内核伪文件系统)
FUSE可以模拟操作系统,可以对文件系统进行转存,转存的设备位置为: /dev/fuse (用于传输的设备-虚拟设备文件)
/dev/fuse 虚拟设备文件会将数据交给GFS客户端
GFS客户端client会根据配置文件对数据进行处理,然后再通过TCP/IB/rdma网络发送到GFS服务端

GFS服务端服务器:
接收到数据之后
会将数据保存在对应的存储节点上

②读取过程:
客户端在本地发出读请求:
交由VFS的API接受请求–>组合功能模块,将数据交给FUSE(内核伪文件系统)
FUSE在/dev/fuse (用于传输的设备-虚拟设备文件)查询缓存,执行page函数读取(read)内存,若缓存有,则返回客户端
若没有缓存,GFS客户端会去GFS服务端获取数据,GFS服务端通过VFS接口去本地读取缓存
再把缓存存储在/dev/fuse,读取了缓存数据之后再通过VFS返回给客户端

③提高GFS的工作效率的架构模式:
gige: 千兆网/千兆接口
TCP/IP :网络协议
InfiniBand:网络协议,与TCP/IP相比,TCP/IP具有转发丢失数据包的特性,基于此通讯协议可能导致通讯变慢,而IB使用基于信1、流控制的机制来确保连接完整性,数据包丢失几率小。
RDMA:负责数据传输,有一种数据传输协议,功能:为了解决传输中客户端与服务器端数据处理的延迟
POSIX:可移植操作系统接口,主要解决不同操作系统间的移植性然后再转换为逻辑存储(EXT4 +BRICK)

④各服务器详解
Application:客户端或应用程序通过GlusterFSync的挂载点访问数据
VFS:linux系统内核通过VFS的API 收到请求并处理
FUSE :VFS将数据递交给FUSE内核文件系统,fuse文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS
GlusterFS Client ;通过网络将数据传递至远端的GlusterFS Server, 并且写入到服务器存储设备上

6、卷的基本分类

为了解决分布式文件数据索引、定位的复杂程度,而使用了HASH算法来辅助
分布式(平均分配)的好处:
当数据量越来越大的时候,相对每个存储节点的数据量(几率)是相等的
而如果考虑到单点故障问题,当数据存储再c存储节点,对此GFS是会有备份机制的,默认3备份,所以GFS本身的机制会对数据产生冗余,以此解决单点故障
GlusterFS支持七种卷,即分布式卷、条带卷、复制卷、分布式条带卷、分布式复制卷、条带复制卷和分布式条带复制卷

①基本卷:
(1) 分布式卷(默认)(distribute volume)
文件通过HASH算法分布到所有Brick Server上,这种卷是Glusterfs的基础;以文件为单位根据HASH算法散列到不同的Brick, 其实只是扩大了磁盘空间,如果有一块磁盘损坏,数据也将丢失,属于文件级的RAID 0, 不具有容错能力
比如:4个文件2个brick存储服务器3个文件放在第一个brick块中,第四个文件放在第二个brick块中
(2) 条带卷(stripe volume)
类似RAID 0,文件被分成数据块并以轮询的方式分布到多个BrickServer上,文件存储以数据块为单位,支持大文件存储,文件越大,读取效率越高
比如:100m的数据分成50m+50m分不到不同的服务器上,分布之后是以数据块为单位的
条带复制卷(Stripe Replica volume) :类似RAID 10, 同时具有条带卷和复制卷的特点
(3) 分布式条带复制卷(Distribute Stripe Replicavolume)
三种基本卷的复合卷,通常用于类Map Reduce应用,将文件同步到多个Brick上,使其具备多个文件副本, 属于文件级RAID 1,具有容错能力。因为数据分散在多个Brick中,所以读性能得到很大提升,但写性能下降
比如:100m 4个文件,2个brick服务器
100*4 文件均存在第一个和第二个brick

②复合卷:
(4) 分布式条带卷(Distribute Stripe volume)
Brick Server 数量是条带数(数据块分布的Brick数量)的倍数,兼具分布式卷和条带卷的特点
比如:503 放在第一个brick
501 放在第二个brick
503 放在第三个brick
501 放在第四个brick
(5) 分布式复制卷(Distribute Replica volume)
Brick Server 数量是镜像数(数据副本数量)的倍数,兼具分布式卷和复制卷的特点
比如:503 放在第一个brick
501 放在第二个brick
503 放在第三个brick
501 放在第四个brick
(6) 条带复制卷(Stripe Replica volume)
类似RAID 10, 同时具有条带卷和复制卷的特点
(7) 分布式条带复制卷(Distribute Stripe Replicavolume)
三种基本卷的复合卷,通常用于类Map Reduce.应用

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-15 15:58:38  更:2021-08-15 15:59:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 20:00:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计