分布式文件系统---glusterfs介绍

author author     2022-09-07     483

关键词:

GlusterFS概述

GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够 支持数PB存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBand RDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。GlusterFS基于可堆叠的用户空间设计,可为各种不同的数据负载提 供优异的性能。

GlusterFS支持运行在任何标准IP网络上标准应用程序的标准客户端,如图2所示,用户可以在全局统一的命名空间中使用 NFS/CIFS等标准协议来访问应用数据。GlusterFS使得用户可摆脱原有的独立、高成本的封闭存储系统,能够利用普通廉价的存储设备来部署可集 中管理、横向扩展、虚拟化的存储池,存储容量可扩展至TB/PB级。GlusterFS主要特征如下:

  • 扩展性和高性能

GlusterFS利用双重特性来提供几TB至数PB的高扩展存储解决方案。Scale-Out架构允许通过简单地增加资源来提高存储容量和性能, 磁盘、计算和I/O资源都可以独立增加,支持10GbE和InfiniBand等高速网络互联。Gluster弹性哈希(Elastic Hash)解除了GlusterFS对元数据服务器的需求,消除了单点故障和性能瓶颈,真正实现了并行化数据访问。

  • 高可用性

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

  • 全局统一命名空间

全局统一命名空间将磁盘和内存资源聚集成一个单一的虚拟存储池,对上层用户和应用屏蔽了底层的物理硬件。存储资源可以根据需要在虚拟存储池中进行弹 性扩展,比如扩容或收缩。当存储虚拟机映像时,存储的虚拟映像文件没有数量限制,成千虚拟机均通过单一挂载点进行数据共享。虚拟机I/O可在命名空间内的 所有服务器上自动进行负载均衡,消除了SAN环境中经常发生的访问热点和性能瓶颈问题。

  • 弹性哈希算法

GlusterFS采用弹性哈希算法在存储池中定位数据,而不是采用集中式或分布式元数据服务器索引。在其他的Scale-Out存储系统中,元数 据服务器通常会导致I/O性能瓶颈和单点故障问题。GlusterFS中,所有在Scale-Out存储配置中的存储系统都可以智能地定位任意数据分片, 不需要查看索引或者向其他服务器查询。这种设计机制完全并行化了数据访问,实现了真正的线性性能扩展。

  • 弹性卷管理

数据储存在逻辑卷中,逻辑卷可以从虚拟化的物理存储池进行独立逻辑划分而得到。存储服务器可以在线进行增加和移除,不会导致应用中断。逻辑卷可以在 所有配置服务器中增长和缩减,可以在不同服务器迁移进行容量均衡,或者增加和移除系统,这些操作都可在线进行。文件系统配置更改也可以实时在线进行并应 用,从而可以适应工作负载条件变化或在线性能调优。

  • 基于标准协议

Gluster存储服务支持NFS, CIFS, HTTP, FTP以及Gluster原生协议,完全与POSIX标准兼容。现有应用程序不需要作任何修改或使用专用API,就可以对Gluster中的数据进行访 问。这在公有云环境中部署Gluster时非常有用,Gluster对云服务提供商专用API进行抽象,然后提供标准POSIX接口。

GlusterFS设计目标

GlusterFS的设计思想显著区别有现有并行/集群/分布式文件系统。如果GlusterFS在设计上没有本质性的突破,难以在与 Lustre、PVFS2、Ceph等的竞争中占据优势,更别提与GPFS、StorNext、ISILON、IBRIX等具有多年技术沉淀和市场积累的 商用文件系统竞争。其核心设计目标包括如下三个:

  • 弹性存储系统(Elasticity)

存储系统具有弹性能力,意味着企业可以根据业务需要灵活地增加或缩减数据存储以及增删存储池中的资源,而不需要中断系统运行。GlusterFS设 计目标之一就是弹性,允许动态增删数据卷、扩展或缩减数据卷、增删存储服务器等,不影响系统正常运行和业务服务。GlusterFS早期版本中弹性不足, 部分管理工作需要中断服务,目前最新的3.1.X版本已经弹性十足,能够满足对存储系统弹性要求高的应用需求,尤其是对云存储服务系统而言意义更大。 GlusterFS主要通过存储虚拟化技术和逻辑卷管理来实现这一设计目标。

  • 线性横向扩展(Linear Scale-Out)

线性扩展对于存储系统而言是非常难以实现的,通常系统规模扩展与性能提升之间是LOG对数曲线关系,因为同时会产生相应负载而消耗了部分性能的提 升。现在的很多并行/集群/分布式文件系统都具很高的扩展能力,Luster存储节点可以达到1000个以上,客户端数量能够达到25000以上,这个扩 展能力是非常强大的,但是Lustre也不是线性扩展的。 纵向扩展(Scale-Up)旨在提高单个节点的存储容量或性能,往往存在理论上或物理上的各种限制,而无法满足存储需求。横向扩展(Scale- Out)通过增加存储节点来提升整个系统的容量或性能,这一扩展机制是目前的存储技术热点,能有效应对容量、性能等存储需求。目前的并行/集群/分布式文 件系统大多都具备横向扩展能力。 GlusterFS是线性横向扩展架构,它通过横向扩展存储节点即可以获得线性的存储容量和性能的提升。因此,结合纵向扩展GlusterFS可以获得多 维扩展能力,增加每个节点的磁盘可增加存储容量,增加存储节点可以提高性能,从而将更多磁盘、内存、I/O资源聚集成更大容量、更高性能的虚拟存储池。 GlusterFS利用三种基本技术来获得线性横向扩展能力:


    • 1)消除元数据服务

    • 2)高效数据分布,获得扩展性和可靠性

    • 3)通过完全分布式架构的并行化获得性能的最大化

  • 高可靠性(Reliability)

与GFS(Google File System)类似,GlusterFS可以构建在普通的服务器和存储设备之上,因此可靠性显得尤为关键。GlusterFS从设计之初就将可靠性纳入核 心设计,采用了多种技术来实现这一设计目标。首先,它假设故障是正常事件,包括硬件、磁盘、网络故障以及管理员误操作造成的数据损坏等。 GlusterFS设计支持自动复制和自动修复功能来保证数据可靠性,不需要管理员的干预。其次,GlusterFS利用了底层EXT3/ZFS等磁盘文 件系统的日志功能来提供一定的数据可靠性,而没有自己重新发明轮子。再次,GlusterFS是无元数据服务器设计,不需要元数据的同步或者一致性维护, 很大程度上降低了系统复杂性,不仅提高了性能,还大大提高了系统可靠性。

GlusterFS技术特点

GlusterFS在技术实现上与传统存储系统或现有其他分布式文件系统有显著不同之处,主要体现在如下几个方面。

  • 完全软件实现(Software Only)

GlusterFS认为存储是软件问题,不能够把用户局限于使用特定的供应商或硬件配置来解决。GlusterFS采用开放式设计,广泛支持工业标 准的存储、网络和计算机设备,而非与定制化的专用硬件设备捆绑。对于商业客户,GlusterFS可以以虚拟装置的形式交付,也可以与虚拟机容器打包,或 者是公有云中部署的映像。开源社区中,GlusterFS被大量部署在基于廉价闲置硬件的各种操作系统上,构成集中统一的虚拟存储资源池。简而言 之,GlusterFS是开放的全软件实现,完全独立于硬件和操作系统。

  • 完整的存储操作系统栈(Complete Storage Operating System Stack)

GlusterFS不仅提供了一个分布式文件系统,而且还提供了许多其他重要的分布式功能,比如分布式内存管理、I/O调度、软RAID和自我修复 等。GlusterFS汲取了微内核架构的经验教训,借鉴了GNU/Hurd操作系统的设计思想,在用户空间实现了完整的存储操作系统栈。

  • 用户空间实现(User Space)

与传统的文件系统不同,GlusterFS在用户空间实现,这使得其安装和升级特别简便。另外,这也极大降低了普通用户基于源码修改GlusterFS的门槛,仅仅需要通用的C程序设计技能,而不需要特别的内核编程经验。

  • 模块化堆栈式架构(Modular Stackable Architecture)

GlusterFS采用模块化、堆栈式的架构,可通过灵活的配置支持高度定制化的应用环境,比如大文件存储、海量小文件存储、云存储、多传输协议应 用等。每个功能以模块形式实现,然后以积木方式进行简单的组合,即可实现复杂的功能。比如,Replicate模块可实现RAID1,Stripe模块可 实现RAID0,通过两者的组合可实现RAID10和RAID01,同时获得高性能和高可靠性。

  • 原始数据格式存储(Data Stored in Native Formats)

GlusterFS以原始数据格式(如EXT3、EXT4、XFS、ZFS)储存数据,并实现多种数据自动修复机制。因此,系统极具弹性,即使离线 情形下文件也可以通过其他标准工具进行访问。如果用户需要从GlusterFS中迁移数据,不需要作任何修改仍然可以完全使用这些数据。

  • 无元数据服务设计(No Metadata with the Elastic Hash Algorithm)

对Scale-Out存储系统而言,最大的挑战之一就是记录数据逻辑与物理位置的映像关系,即数据元数据,可能还包括诸如属性和访问权限等信息。传 统分布式存储系统使用集中式或分布式元数据服务来维护元数据,集中式元数据服务会导致单点故障和性能瓶颈问题,而分布式元数据服务存在性能负载和元数据同 步一致性问题。特别是对于海量小文件的应用,元数据问题是个非常大的挑战。 GlusterFS独特地采用无元数据服务的设计,取而代之使用算法来定位文件,元数据和数据没有分离而是一起存储。集群中的所有存储系统服务器都可以智 能地对文件数据分片进行定位,仅仅根据文件名和路径并运用算法即可,而不需要查询索引或者其他服务器。这使得数据访问完全并行化,从而实现真正的线性性能 扩展。无元数据服务器极大提高了GlusterFS的性能、可靠性和稳定性。

架构图

技术分享

技术分享


本文出自 “亮公子” 博客,请务必保留此出处http://iyull.blog.51cto.com/4664834/1946585

glusterfs存储结构原理介绍(代码片段)

分布式文件系统分布式文件系统(DistributedFileSystem)是指文件系统管理的物理存储资源并不直接与本地节点相连,而是分布于计算网络中的一个或者多个节点的计算机上。目前意义上的分布式文件系统大多都是由多个节点计算机... 查看详情

gfs分布式文件系统(代码片段)

...GlusterFS介绍1.1GlusterFS概念1.2GlusterFS特点1.3GlusterFS术语前言分布式文件系统种类有:CEPH分布式文件系统(用的多)GFS(GlusterFS)分布式文件系统M 查看详情

glusterfs分布式文件系统!(代码片段)

GlusterFSGlusterFS基本知识文件系统GlusterFSGlusterFS特点GlusterFS组成GlusterFS专业术语GlusterFS工作流程GlusterFS卷类型GlusterFS集群部署GlusterFS基本知识文件系统组成:文件系统接口,对对象管理的软件集合,对象及属性作用࿱... 查看详情

glusterfs分布式文件系统!(代码片段)

GlusterFSGlusterFS基本知识文件系统GlusterFSGlusterFS特点GlusterFS组成GlusterFS专业术语GlusterFS工作流程GlusterFS卷类型GlusterFS集群部署GlusterFS基本知识文件系统组成:文件系统接口,对对象管理的软件集合,对象及属性作用࿱... 查看详情

gfs分布式文件系统从入门到实践(代码片段)

GFS分布式文件系统一、GlusterFS概述1.1GlusterFS简介1.2GlusterFS的特点二、GlusterFS术语介绍2.1Brick(存储块)2.2Volume(逻辑卷)2.3FUSE2.4VFS2.5Glusterd(后台管理进程)三、理解GlusterFS工作流程四、理解弹性HASH算法4.1 查看详情

(❤❤❤)gfs分布式文件系统理论+部署(❤❤❤)(代码片段)

...一命名空间④弹性卷管理⑤基于标准协议1.3、MFS(传统的分布式文件系统)1.4、GFS二、GlusterFS术语介绍①Brick(存储块)②Volume(逻辑卷)③FUSE④VFS⑤Glusterd( 查看详情

(❤❤❤)gfs分布式文件系统理论+部署(❤❤❤)(代码片段)

...一命名空间④弹性卷管理⑤基于标准协议1.3、MFS(传统的分布式文件系统)1.4、GFS二、GlusterFS术语介绍①Brick(存储块)②Volume(逻辑卷)③FUSE④VFS⑤Glusterd( 查看详情

56.glusterfs分布式文件系统

GlusterFS分布式文件系统GlusterFS是一个开源的分布式文件系统,软件的结构设计良好,易于扩展和配置,通过各个模块的灵活搭配得到针对性的解决方案。可解决一下问题:网络存储,联合存储,冗余备份,大文件的负载均衡。可... 查看详情

分布式文件系统-glusterfs

1.1分布式文件系统1.1.1什么是分布式文件系统  相对于本机端的文件系统而言,分布式文件系统(英语:Distributedfilesystem, DFS),或是网络文件系统(英语:NetworkFileSystem),是一种允许文件通过网络在多台主机上分享的文... 查看详情

glusterfs分布式文件系统

glusterfs第1章什么是分布式文件系统?相对于本极端的文件系统而言,分布式文件系统DFS,伙食网络文件系统NFS,是一种允许文件通过网络在多台主机上分享的文件系统你那个,可以让多机器上的多用户分享指定问加你和存储空间在这样... 查看详情

分布式文件系统--------glusterfs最佳实战

1.背景   GlusterFS是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBandRDMA(一种支持多并发链接的“转换线缆”技术)网络将物理分布的... 查看详情

分布式文件系统--glusterfs(代码片段)

文章目录一、分布式文件系统1.文件系统1.1组成1.2作用1.3挂载使用2.分布式文件系统--GFS2.1组成2.2专业术语2.3模块化堆栈式架构2.4工作流程2.5基本卷与复合卷二、部署GlusterFS群集1准备环境2配置/etc/hosts文件3安装GlusterFS并启动4时间... 查看详情

glusterfs分布式文件系统(代码片段)

GlusterFS分布式文件系统,用于存储、管理磁盘文件文件系统(FS)文件系统组成1、文件系统接口2、对对像管理的软件集合3、对象及属性文件系统作用从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配... 查看详情

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

GlusterFS分布式文件系统一.文件系统简介1.组成2.作用3.挂载使用二.GlusterFS分布式文件系统1.GFS是由三部分组成(组件)2.GFS特点3.GFS专业术语4.GFS模块化堆栈式架构5.工作流程6.基本卷和复合卷三.部署GFS集群1.实验准备一.文... 查看详情

分布式文件系统---glusterfs安装配置

一、环境规划GlusterFS服务端:10.100.0.41/10.100.0.44GlusterFS客户端:10.100.0.43二、所需软件包glusterfs-server-3.4.2-1.el6.x86_64glusterfs-3.4.2-1.el6.x86_64三、安装   3.1、服务端安装#wget-P/etc/yum.repos.dhttp://dow 查看详情

glusterfs分布式文件系统概述(代码片段)

...GlusterFS的工作流程2、弹性HASH算法三、GlusterFS的卷类型1、分布式卷2、条带卷3、复制卷4、分布式条带卷5、分布式复制卷一、GlusterFS概述GlusterFS是一个开源的分布式文件系统,同时也是Scale-Out存储解决方案Gluster的核心,在存储数... 查看详情

glusterfs分布式文件系统

分布式系统要做的任务就是把多台机器有机的组合、连接起来,让其协同完成一件任务,可以是计算任务,也可以是存储任务。如果一定要给近些年的分布式系统研究做一个分类的话,大概可以包括三大部分:1.分布式存储系统2... 查看详情

glusterfs分布式文件系统部署

...terFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBandRDMA网络将物理分布的存储资源聚集在一起,使... 查看详情