转载自:https://blog.51cto.com/wzlinux/1949441

之前看过官网。原作者基本把官网上的几种模式集中了一下。不过个人感觉官网的介绍还不太清楚,有些细节的地方从图上还不太能看出来。之后还要做更深入的实践和一些文献阅读估计才能彻底弄明白。以下是转载的原文。

一、分布式文件系统

分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源并不直接与本地节点相连,而是分布于计算网络中的一个或者多个节点的计算机上。目前意义上的分布式文件系统大多都是由多个节点计算机构成,结构上是典型的客户机/服务器模式。流行的模式是当客户机需要存储数据时,服务器指引其将数据分散的存储到多个存储节点上,以提供更快的速度,更大的容量及更好的冗余特性。

目前流行的分布式文件系统有许多,如MooseFS、OpenAFS、GoogleFS,具体实现原理我这里不再介绍。

二、GlusterFS概述

GlusterFS系统是一个可扩展的网络文件系统,相比其他分布式文件系统,GlusterFS具有高扩展性、高可用性、高性能、可横向扩展等特点,并且其没有元数据服务器的设计,让整个服务没有单点故障的隐患。

术语:

  • Brick:GFS中的存储单元,通过是一个受信存储池中的服务器的一个导出目录。可以通过主机名和目录名来标识,如'SERVER:EXPORT'
  • Client:挂载了GFS卷的设备
  • Extended Attributes:xattr是一个文件系统的特性,其支持用户或程序关联文件/目录和元数据。
  • FUSE:Filesystem Userspace是一个可加载的内核模块,其支持非特权用户创建自己的文件系统而不需要修改内核代码。通过在用户空间运行文件系统的代码通过FUSE代码与内核进行桥接。
  • Geo-Replication: 跨地理位置的副本
  • GFID:GFS卷中的每个文件或目录都有一个唯一的128位的数据相关联,其用于模拟inode
  • Namespace:每个Gluster卷都导出单个ns作为POSIX的挂载点
  • Node:一个拥有若干brick的设备
  • RDMA:远程直接内存访问,支持不通过双方的OS进行直接内存访问。
  • RRDNS:round robin DNS是一种通过DNS轮转返回不同的设备以进行负载均衡的方法
  • Self-heal:用于后台运行检测复本卷中文件和目录的不一致性并解决这些不一致。
  • Split-brain:脑裂
  • Translator:
  • Volfile:glusterfs进程的配置文件,通常位于/var/lib/glusterd/vols/volname
  • Volume:一组bricks的逻辑集合

1、无元数据设计

元数据是用来描述一个文件或给定区块在分布式文件系统中所在的位置,简而言之就是某个文件或某个区块存储的位置。传统分布式文件系统大都会设置元数据服务器或者功能相近的管理服务器,主要作用就是用来管理文件与数据区块之间的存储位置关系。相较其他分布式文件系统而言,GlusterFS并没有集中或者分布式的元数据的概念,取而代之的是弹性哈希算法。集群中的任何服务器和客户端都可以利用哈希算法、路径及文件名进行计算,就可以对数据进行定位,并执行读写访问操作。

这种设计带来的好处是极大的提高了扩展性,同时也提高了系统的性能和可靠性;另一显著的特点是如果给定确定的文件名,查找文件位置会非常快。但是如果要列出文件或者目录,性能会大幅下降,因为列出文件或者目录时,需要查询所在节点并对各节点中的信息进行聚合。此时有元数据服务的分布式文件系统的查询效率反而会提高许多。

2、服务器间的部署

在之前的版本中服务器间的关系是对等的,也就是说每个节点服务器都掌握了集群的配置信息,这样做的好处是每个节点度拥有节点的配置信息,高度自治,所有信息都可以在本地查询。每个节点的信息更新都会向其他节点通告,保证节点间信息的一致性。但如果集群规模较大,节点众多时,信息同步的效率就会下降,节点信息的非一致性概率就会大大提高。因此GlusterFS未来的版本有向集中式管理变化的趋势。

3、客户端访问流程

注:上图中左下方方块中应是FUSE,不是PUSE

当客户端访问GlusterFS存储时,首先程序通过访问挂载点的形式读写数据,对于用户和程序而言,集群文件系统是透明的,用户和程序根本感觉不到文件系统是本地还是在远程服务器上。读写操作将会被交给VFS(Virtual File System)来处理,VFS会将请求交给FUSE内核模块,而FUSE又会通过设备/dev/fuse将数据交给GlusterFS Client。最后经过GlusterFS Client的计算,并最终经过网络将请求或数据发送到GlusterFS Server上。

三、GlusterFS集群的模式

GlusterFS 集群的模式只数据在集群中的存放结构,类似于磁盘阵列中的级别。

1、分布式卷(Distributed Volume)

又称哈希卷,近似于RAID0,文件没有分片,文件根据hash算法写入各个节点的硬盘上,优点是容量大,缺点是没冗余。

创建卷指令如下:

gluster volume create test-volume server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4

2、复制卷(Replicated Volume)

相当于raid1,复制的份数,决定集群的大小,通常与分布式卷或者条带卷组合使用,解决前两种存储卷的冗余缺陷。缺点是磁盘利用率低。

复本卷在创建时可指定复本的数量,通常为2或者3,复本在存储时会在卷的不同brick上,因此有几个复本就必须提供至少多个brick,当其中一台服务器失效后,可以从另一台服务器读取数据,因此复制GlusterFS卷提高了数据可靠性的同时,还提供了数据冗余的功能。

创建卷指令如下:

gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2

3、分布式复制卷(Distributed Replicated Volume)

分布式复制GlusterFS卷结合了分布式和复制Gluster卷的特点,看起来类似RAID10,但其实不同,RAID10其实质是条带化,但分布式复制GlusterFS卷则没有。

创建卷指令如下:

gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4

4、条带卷(Striped Volume)

相当于raid0,文件是分片均匀写在各个节点的硬盘上的,优点是分布式读写,性能整体较好。缺点是没冗余,分片随机读写可能会导致硬盘IOPS饱和。

创建卷指令如下:

gluster volume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2

5、分布式条带卷(Distributed Striped Volume)

当单个文件的体型十分巨大,客户端数量更多时,条带卷已经无法满足需求,此时将分布式与条带化结合起来是一个比较好的选择。其性能与服务器数量有关。

创建卷指令如下:

gluster volume create test-volume stripe 4 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4 server5:/exp5 server6:/exp6 server7:/exp7 server8:/exp8

参考文档:http://gluster.readthedocs.io/en/latest/Quick-Start-Guide/Architecture/

四、GlusterFS 的安装与应用,请点击查看

http://wzlinux.blog.51cto.com/8021085/1949619

(完)

GlusterFS简介相关推荐

  1. GlusterFS 简介

    GlusterFS 简介 GlusterFS概述 GlusterFS (Gluster File System) 是一个开源的分布式文件系统,主要由 Z RESEARCH 公司负责开发.Gluster ...

  2. 分布式文件系统:glusterfs简介及实践

    文章目录 @[toc] 一.分布式存储介绍 1. 文件存储 2. 块存储 3. 对象存储 二.GlusterFS介绍 1.为什么使用gluster 2.Glusterfs概述 **1.无元数据设计** ...

  3. 搭建glusterfs集群

    搭建glusterfs集群 Glusterfs简介 GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB ...

  4. GlusterFS分布式存储

    目录 glusterfs简介 glusterfs部署 glustefs分布式存储优化 glusterfs在企业中应用场景 参考文章地址 一.glusterfs简介 Glusterfs是一个开源的分布式 ...

  5. glusterfs分布式文件系统详细原理

    http://blog.csdn.net/yujin2010good/article/details/75268877 1.Glusterfs简介 GlusterFS是Scale-Out存储解决方案G ...

  6. 企业级别应用--GFS分布式文件系统(GlusterFS工作原理、弹性 HASH 算法 、GlusterFS卷的类型、 部署GlusterFS)

    文章目录 一. GlusterFS 概述 1.1 GlusterFS 简介 与传统分布式相比的优点 1.2 GlusterFS 的特点 扩展性和高性能 高可用性 全局统一命名空间 弹性卷管理 基于标准 ...

  7. GlusterFS概述

    GlusterFS概述 GlusterFS简介 ●开源的分布式文件系统 ●由存储服务器.客户端以及NFS/Samba存储网关组成 ●无元数据服务器 无元数据服务器: 元数据是核心,描述对象的信息,影响 ...

  8. GlusterFS基本概念

    GlusterFS基本概念 一.GlusterFS 概述 1.1 GlusterFS简介 GlusterFS是一个开源的分布式文件系统. 由存储服务器.客户端以及NFS/Samba存储网关(可选,根据 ...

  9. glusterfs分布式文件存储搭建和使用

    Glusterfs简介 GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端.G ...

最新文章

  1. mysql不具有的特征是_MySQL中的SQL特征(转)
  2. Vmware Vsphere虚拟化技术:6.7新特性介绍
  3. OSI七层网络模型与TCP/IP四层网络
  4. csv文件 内容转义_CSV文件如何同时转义逗号和双引号?
  5. 【C语言重点难点精讲】C语言预处理
  6. 格力电器成为银隆新能源股东 持股30.47%
  7. cmake编译多个文件夹_CMake应用技巧:在一个工程中编译运行多个文件
  8. Storm【实践系列-如何写一个爬虫-】6 URLInjector
  9. arcgis拓扑与修复
  10. 电力拖动PLC可编程控制器技能实训QY-DL865
  11. 51单片机驱动TM1638芯片+Proteus仿真
  12. 网络打印机拒绝访问,无法连接处理方法汇总
  13. Yolo系列 | Yolov4v5的模型结构与正负样本匹配
  14. import java.util错误_Java“import java.util.Scanner”无效
  15. 2021-2027全球与中国核磁共振管市场现状及未来发展趋势
  16. 五五开周刊(第4期):星链会改变游戏规则吗?
  17. 学硕vs专硕、全日制vs非全日制硕士,到底有什么区别?
  18. python高分书籍推荐_如果只推荐一本 Python 书,我要 Pick 它!
  19. 人人都是钢铁侠,超级盔甲问世
  20. 腾讯视频qlv转mp4

热门文章

  1. 计算机组成原理 — GPU 图形处理器
  2. 【第3版emWin教程】第8章 emWin6.x的带OS方式移植(STM32H7之RGB接口)
  3. 【OpenGL】(step1)开个窗口
  4. php识别图片的条码,如何用php实现生成条形码图片
  5. 图解HTTP四:返回结果的 HTTP 状态码
  6. docker-compose up:ERROR: Encountered errors while bringing up the project.錯誤及解決方式
  7. 各种书籍免费下载地址(持续更新中)
  8. MySQL的启动方式
  9. 安卓系统遥控器的映射具体过程相关文档
  10. 小程序/app 商城 源码 发布(包括后台)