脑壳有点疼。。GlusterFS分布式文件系统!(更新中)

Posted 龙少。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了脑壳有点疼。。GlusterFS分布式文件系统!(更新中)相关的知识,希望对你有一定的参考价值。

GlusterFS分布式文件系统

一.文件系统简介

1.组成

(1)文件系统接口

(2)对对像管理的软件集合

(3)对象及属性

2.作用

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

3.挂载使用

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

二.GlusterFS分布式文件系统

1.GFS是由三部分组成(组件)

1、存储服务器

2、客户端

3、NFS/Samba存储网关组成

2.GFS特点

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

3.GFS 专业术语

brick 存储服务器:实际存储用户数据的服务器

volume 本地文件系统的“分区”

FUSE : 用户空间的文件系统(类比EXT4),“这是一个伪文件系统”

以本地文件系统为例,用户想要读写一个文件,会借助于EXT4文件系统,然后把数据写在磁盘上

而如果是远端的GFS,客户端的请求则应该交给FUSE(伪文件系统),就可以实现跨界点存储在GFS上

FUSE(用户空间的文件系统)伪文件系统 用户端的交互模块

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

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

4.GFS 模块化 堆栈式架构

模块化:
类似 linux 编译安装
很多功能都可以做定制的,通常都是通过软件开发的方式封装为模块,按需使用/不适用

GlusterFS也是这个思想
把功能封装为一个个模块
通过加载/调用/启用的方式就可以对应的功能

堆栈式架构设计:
通过对模块不同功能的组合来实现复杂功能

VFS: 虚拟的内核文件系统,通过VFS的API接受请求、处理请求(场景:根据请求,加载以下模块)
I/O cache: I/O缓存
read ahead :内核文件预读
distribute/stripe:分布式、条带卷

通过加载以上三个模块,然后联和多个client端,组成所需要的例如:分布式卷、条带卷等

5.工作流程

客户端在本地发出读写请求,然后交由VFS 的API接受请求,接受请求后会交给FUSE(内核伪文件系统),
FUSE可以模拟操作系统,所以可以对文件系统进行转存,转存的设备位置为:/dev/fuse(用于传输的设备-虚拟设备文件)——》交给GFS客户端,client 会根据配置文件对数据进行处理,然后再通过TCP/ib/rdma 网络发送到GFS服务端,并且将数据写到服务器存储设备上

在多个后端存储中如何定位文件:
1、使用弹性HASH算法来解决数据定位、索引、寻址的功能
先通过HASH算法对数据可以得到一个值(该值有2的32次方个组合)
每个数据对应了0-2的32次方的一个值

(分布式)平均分配的好处:
当数据量越来越大的时候,相对每个存储节点的数据量(几率)是相等的
而如果考虑到单点故障问题,当数据存储在C存储节点,对此GFS是会有备份机制的(卷),默认3备份,所以GFS本身的机制会对数据产生冗余,以此解决单点故障

6.基本卷和复合卷

基本卷:

(1) distribute volume:分布式卷

(2) stripe volume:条带卷

(3) replica volume:复制卷

复合卷:

(4) distribute stripe volume:分布式条带卷

(5) distribute replica volume:分布式复制卷

(6) stripe replica volume:条带复制卷

(7) distribute stripe replicavolume:分布式条带复制卷

弹性HASH 算法
通过HASH算法得到一个固定长度的数据(这里是32位整数)
通常情况下,不同数据得到的结果是不同的

为了解决分布式文件数据索引、定位的复杂程度,而使用了HASH算法来辅助

三.部署GFS集群

1.实验准备

node1 :192.168.206.166
磁盘 sdb1、sdc1、sdd1、sde1
挂载点 /data

node2 :192.168.206.177
磁盘 sdb1、sdc1、sdd1、sde1
挂载点 /data

node3 :192.168.206.188
磁盘 sdb1、sdc1、sdd1、sde1
挂载点 /data

node4 :192.168.206.99
磁盘sdb1、sdc1、sdd1、sde1
挂载点 /data

client : 192.168.206.77

以上是关于脑壳有点疼。。GlusterFS分布式文件系统!(更新中)的主要内容,如果未能解决你的问题,请参考以下文章

可别在代码中写那么多魔法值了,脑壳疼!

可别在代码种写那么多魔法值了,脑壳疼!

GlusterFS分布式文件系统!

GlusterFS分布式文件系统!

GlusterFS分布式文件系统概述

GlusterFS分布式文件系统部署