北京快三开奖

  • <tr id="U9YkSO"><strong id="U9YkSO"></strong><small id="U9YkSO"></small><button id="U9YkSO"></button><li id="U9YkSO"><noscript id="U9YkSO"><big id="U9YkSO"></big><dt id="U9YkSO"></dt></noscript></li></tr><ol id="U9YkSO"><option id="U9YkSO"><table id="U9YkSO"><blockquote id="U9YkSO"><tbody id="U9YkSO"></tbody></blockquote></table></option></ol><u id="U9YkSO"></u><kbd id="U9YkSO"><kbd id="U9YkSO"></kbd></kbd>

    <code id="U9YkSO"><strong id="U9YkSO"></strong></code>

    <fieldset id="U9YkSO"></fieldset>
          <span id="U9YkSO"></span>

              <ins id="U9YkSO"></ins>
              <acronym id="U9YkSO"><em id="U9YkSO"></em><td id="U9YkSO"><div id="U9YkSO"></div></td></acronym><address id="U9YkSO"><big id="U9YkSO"><big id="U9YkSO"></big><legend id="U9YkSO"></legend></big></address>

              <i id="U9YkSO"><div id="U9YkSO"><ins id="U9YkSO"></ins></div></i>
              <i id="U9YkSO"></i>
            1. <dl id="U9YkSO"></dl>
              1. <blockquote id="U9YkSO"><q id="U9YkSO"><noscript id="U9YkSO"></noscript><dt id="U9YkSO"></dt></q></blockquote><noframes id="U9YkSO"><i id="U9YkSO"></i>
                企业空间 推销商城 存储论坛
                北京快三开奖全闪存阵列 IBM云盘算 Acronis 安克诺斯 安腾普 腾保数据
                首页 > 技能园地 > 文件零碎 > 注释

                GlusterFS散布式文件零碎学习之 简介篇

                2015-03-02 12:22泉源:中国存储网
                导读:GlusterFS (Gluster File System) 是一个开源的散布式文件零碎,GlusterFS借助TCP/IP或InfiniBand RDMA网络将物理散布的存储资源聚集在一同,运用单一全局定名空间来办理数据。GlusterFS基于可堆叠的用户空间设计,可为种种差别的数据负载提供优秀的功能。

                1.GlusterFS简介

                GlusterFS (Gluster File System) 是一个开源的散布式文件零碎,次要由 Z RESEARCH 公司担任开辟,官方网站地点:http://www.gluster.org/,现在最新版本是GlusterFS 3.5.1,下载地点:http://download.gluster.org/pub/gluster/glusterfs/3.5/3.5.1/。

                GlusterFS是Scale-Out存储处理方案Gluster的中心,具有弱小的横向扩展才能,经过扩展可以支持数PB存储容量和处置数千客户端。GlusterFS借助TCP/IP或InfiniBand RDMA网络将物理散布的存储资源聚集在一同,运用单一全局定名空间来办理数据。GlusterFS基于可堆叠的用户空间设计,可为种种差别的数据负载提供优秀的功能。

                GlusterFS散布式文件零碎学习之 简介篇

                图1 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接口。

                2.设计目的

                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是无元数据效劳器设计,不需求元数据的同步或许分歧性维护,很大水平上低落了零碎庞大性,不只进步了功能,还大大进步了零碎牢靠性。

                3.技能特点

                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)(细致可参考材料GlusterFS架构详解)

                对Scale-Out存储零碎而言,最大的应战之一便是记载数据逻辑与物理地位的映像干系,即数据元数据,能够还包罗诸如属性和拜访权限等信息。传统散布式存储零碎运用会合式或散布式元数据效劳来维护元数据,会合式元数据效劳会招致单点毛病和功能瓶颈题目,而散布式元数据效劳存在功能负载和元数据同步分歧性题目。特殊是关于海量小文件的使用,元数据题目是个十分大的应战。

                GlusterFS共同地接纳无元数据效劳的设计,取而代之运用算法来定位文件,元数据和数据没有别离而是一同存储。集群中的一切存储零碎效劳器都可以智能地对文件数据分片停止定位,仅仅依据文件名和途径并运用算法即可,而不需求盘问索引或许其他效劳器。这使得数据拜访完全并行化,从而完成真正的线性功能扩展。无元数据效劳器极大进步了GlusterFS的功能、牢靠性和波动性。

                4.总体架构与设计

                GlusterFS散布式文件零碎学习之 简介篇

                图2 GlusterFS架谈判构成

                GlusterFS总体架构与构成局部如图2所示,它次要由存储效劳器(Brick Server)、客户端以及NFS/Samba存储网关构成。不难发明,GlusterFS架构中没有元数据效劳器组件,这是其最大的设计这点,关于提拔整个零碎的功能、牢靠性和波动性都有着决议性的意义。GlusterFS支持TCP/IP和InfiniBand RDMA高速网络互联,客户端可经过原生Glusterfs协议拜访数据,其他没有运转GlusterFS客户真个终端可经过NFS/CIFS规范协议经过存储网关拜访数据。

                存储效劳器次要提供根本的数据存储功用,终极的文件数据经过一致的调理战略散布在差别的存储效劳器上。它们下面运转着Glusterfsd停止,担任处置来自其他组件的数据效劳恳求。如前所述,数据以原始款式间接存储在效劳器的当地文件零碎上,如EXT3、EXT4、XFS、ZFS等,运转效劳时指定命据存储途径。多个存储效劳器可以经过客户端或存储网打开的卷办理器构成集群,如Stripe(RAID0)、Replicate(RAID1)和DHT(散布式Hash)存储集群,也可应用嵌套组合组成愈加庞大的集群,如RAID10。

                由于没有了元数据效劳器,客户端承当了更多的功用,包罗数据卷办理、I/O调理、文件定位、数据缓存等功用。客户端上运转Glusterfs历程,它实践是Glusterfsd的标记链接,应用FUSE(File system in User Space)模块将GlusterFS挂载到当地文件零碎之上,完成POSIX兼容的方法来拜访零碎数据。在最新的3.1.X版本中,客户端不再需求独立维护卷设置装备摆设信息,改成主动从运转在网打开的glusterd弹性卷办理效劳停止获取和更新,极大简化了卷办理。GlusterFS客户端负载绝对传统散布式文件零碎要高,包罗CPU占用率和内存占用。

                GlusterFS存储网关提供弹性卷办理和NFS/CIFS拜访署理功用,其上运转Glusterd和Glusterfs历程,两者都是Glusterfsd标记链接。卷办理器担任逻辑卷的创立、删除、容量扩展与缩减、容量腻滑等功用,并担任向客户端提供逻辑卷信息及自动更新告诉功用等。GlusterFS 3.1.X完成了逻辑卷的弹性和主动化办理,不需求中缀数据效劳或下层使用业务。关于Windows客户端或没有装置GlusterFS的客户端,需求经过NFS/CIFS署理网关来拜访,这时网关被设置装备摆设成NFS或Samba效劳器。绝对原生客户端,网关在功能上要遭到NFS/Samba的制约。

                GlusterFS散布式文件零碎学习之 简介篇

                图3 GlusterFS模块化货仓式设计

                GlusterFS是模块化货仓式的架构设计,如图3所示。模块称为Translator,是GlusterFS提供的一种弱小机制,借助这种精良界说的接口可以高效轻便地扩展文件零碎的功用。效劳端与客户端模块接口是兼容的,统一个translator可同时在双方加载。每个translator都是SO静态库,运转时依据设置装备摆设静态加载。每个模块完成特定根本功用,GlusterFS中一切的功用都是经过translator完成,比方Cluster, Storage, Performance, Protocol, Features等,根本复杂的模块可以经过货仓式的组合来完成庞大的功用。这一设计头脑自创了GNU/Hurd微内核的假造文件零碎设计,可以把对内部零碎的拜访转换成目的零碎的得当挪用。大局部模块都运转在客户端,比方分解器、I/O调理器和功能优化等,效劳审察对复杂很多。客户端和存储效劳器均有本人的存储栈,组成了一棵Translator功用树,使用了多少模块。模块化和货仓式的架构设计,极大低落了零碎设计庞大性,简化了零碎的完成、晋级以及零碎维护。

                5.弹性哈希算法

                关于散布式零碎而言,元数据处置是决议零碎扩展性、功能以及波动性的要害。GlusterFS另辟蹊径,彻底放弃了元数据效劳,运用弹性哈希算法替代传统散布式文件零碎中的会合或散布式元数据效劳。这基本性处理了元数据这一困难,从而取得了靠近线性的高扩展性,同时也进步了零碎功能和牢靠性。GlusterFS运用算法停止数据定位,集群中的任何效劳器和客户端只需依据途径和文件名就可以对数据停止定位和读写拜访。换句话说,GlusterFS不需求将元数据与数据停止别离,由于文件定位可独立并行化停止。GlusterFS中数据拜访流程如下:

                1、盘算hash值,输出参数为文件途径和文件名;

                2、依据hash值在集群中选择子卷(存储效劳器),停止文件定位;

                3、对所选择的子卷停止数据拜访。

                GlusterFS现在运用Davies-Meyer算法盘算文件名hash值,取得一个32位整数。Davies-Meyer算法具有十分好的hash散布性,盘算服从很高。假定逻辑卷中的存储效劳器有N个,则32位整数空间被均匀分别为N个延续子空间,每个空间辨别映射到一个存储效劳器。如许,盘算失掉的32位hash值就会被投射到一个存储效劳器,即我们要选择的子卷。岂非真是云云复杂?如今让我们来思索一下存储节点参加和删除、文件更名等状况,GlusterFS怎样处理这些题目而具有弹性的呢?

                逻辑卷中参加一个新存储节点,假如不作其他任那边理,hash值映射空间将会发作变革,现有的文件目次能够会被重新定位到其他的存储效劳器上,从而招致定位失败。处理题目的办法是对文件目次停止重新散布,把文件挪动到准确的存储效劳器上去,但这大大减轻了零碎负载,尤其是关于曾经存储少量的数据的海量存储零碎来说显然是不行行的。另一种办法是运用分歧性哈希算法,修正新增节点及相邻节点的hash映射空间,仅需求挪动相邻节点上的局部数据至新增节点,影响绝对小了许多。但是,这又带来别的一个题目,即零碎全体负载不平衡。GlusterFS没有接纳上述两种办法,而是设计了更为弹性的算法。GlusterFS的哈希散布因此目次为根本单元的,文件的父目次应用扩展属性记载了子卷映射信息,其上面子文件目次在父目次所属存储效劳器中停止散布。由于文件目次事前保管了散布信息,因而新增节点不会影响现有文件存储散布,它将今后后的新创立目次开端到场存储散布调理。这种设计,新增节点不需求挪动任何文件,但是负载平衡没有腻滑处置,老节点负载较重。GlusterFS在设计中思索了这一题目,在新建文件时会优先思索容量负载最轻的节点,在目的存储节点上创立文件链接直向真正存储文件的节点。别的,GlusterFS弹性卷办理东西可以在背景以人工方法来实行负载腻滑,将停止文件挪动和重新散布,尔后一切存储效劳器都市均会被调理。

                GlusterFS现在对存储节点删除支持无限,还无法做到完全无人干涉的水平。假如间接删除节点,那么地点存储效劳器上的文件将无法阅读和拜访,创立文件目次也会失败。以后人工处理办法有两个,一是将节点上的数据重新复制到GlusterFS中,二是运用新的节点来交换删除节点并坚持原无数据。

                假如一个文件被更名,显然hash算法将发生差别的值,十分能够会发作文件被定位到差别的存储效劳器上,从而招致文件拜访失败。接纳数据挪动的办法,关于大文件是很难在及时完成的。为了不影响功能和效劳中缀,GlusterFS接纳了文件链接来处理文件重定名题目,在目的存储效劳器上创立一个链接指向实践的存储效劳器,拜访时由零碎剖析并停止重定向。别的,背景同时停止文件迁徙,乐成后文件链接将被主动删除。关于文件挪动也作相似处置,益处是前台操纵可及时处置,物理数据迁徙置于背景选择得当机遇实行。

                GlusterFS散布式文件零碎学习之 简介篇

                图4 GlusterFS弹性卷办理

                弹性哈希算法为文件分派逻辑卷,那么GlusterFS怎样为逻辑卷分派物理卷呢?GlusterFS3.1.X完成了真正的弹性卷办理,如图4所示。存储卷是对底层硬件的笼统,可以依据需求停止扩容和缩减,以及在差别物理零碎之间停止迁徙。存储效劳器可以在线添加和移除,并能在集群之间主动停止数据负载均衡,数据总是在线可用,没有使用中缀。文件零碎设置装备摆设更新也可以在线实行,所作设置装备摆设变化可以疾速静态地在集群中传达,从而主动顺应负载动摇和功能调优。

                 弹性哈希算法自身并没有提供数据容错功用,GlusterFS运用镜像或复制来包管数据可用性,引荐运用镜像或3路复制。复制形式下,存储效劳器运用同步写复制到其他的存储效劳器,单个效劳器毛病完全对客户端通明。别的,GlusterFS没有对复制数目停止限定,读被疏散到一切的镜像存储节点,可以进步读功能。弹性哈希算法分派文件到独一的逻辑卷,而复制可以包管数据至多保管在两个差别存储节点,两者联合使得GlusterFS具有更高的弹性。

                6.Translators

                如前所述,Translators是GlusterFS提供的一种弱小文件零碎功用扩展机制,这一设计头脑自创于GNU/Hurd微内核操纵零碎。GlusterFS中一切的功用都经过Translator机制完成,运转时以静态库方法停止加载,效劳端和客户审察互兼容。GlusterFS 3.1.X中,次要包罗以下几类Translator:

                (1)  Cluster:存储集群散布,现在有AFR, DHT, Stripe三种方法

                (2)  Debug:跟踪GlusterFS外部函数和零碎挪用

                (3)  Encryption:复杂的数据加密完成

                (4)  Features:拜访控制、锁、Mac兼容、静默、配额、只读、接纳站等

                (5)  Mgmt:弹性卷办理

                (6)  Mount:FUSE接话柄现

                (7)  Nfs:外部NFS效劳器

                (8)  Performance:io-cache, io-threads, quick-read, read-ahead, stat-prefetch, sysmlink-cache, write-behind等功能优化

                (9)  Protocol:效劳器和客户端协议完成

                (10)Storage:底层文件零碎POSIX接话柄现

                这里我们重点引见一下Cluster Translators,它是完成GlusterFS集群存储的中心,它包罗AFR(Automatic File Replication)、DHT(Distributed Hash Table)和Stripe三品种型。

                AFR相称于RAID1,统一文件在多个存储节点上保存多份,次要用于完成高可用性以及数据主动修复。AFR一切子卷上具有相反的名字空间,查找文件时从第一个节点开端,直到搜刮乐成或最初节点搜刮终了。读数据时,AFR会把一切恳求调理到一切存储节点,停止负载平衡以进步零碎功能。写数据时,起首需求在一切锁效劳器上对文件加锁,默许第一个节点为锁效劳器,可以指定多个。然后,AFR以日记事情方法对一切效劳器停止写数据操纵,乐成后删除日记并解锁。AFR会主动检测并修复统一文件的数据纷歧致性,它运用变动日记来确定好的数据正本。主动修复在文件目次初次拜访时触发,假如是目次将在一切子卷上复制准确数据,假如文件不存则创立,文件信息不婚配则修复,日记指示更新则停止更新。

                DHT即下面所引见的弹性哈希算法,它接纳hash方法停止数据散布,名字空间散布在一切节点上。查找文件时,经过弹性哈希算法停止,不依赖名字空间。但遍历文件目次时,则完成较为庞大和低效,需求搜刮一切的存储节点。单一文件只会调理到独一的存储节点,一旦文件被定位后,读写形式绝对复杂。DHT不具有容错才能,需求借助AFR完成高可用性, 如图5所示使用案例。

                Stripe相称于RAID0,即分片存储,文件被分别成牢固长度的数据分片以Round-Robin轮转方法存储在一切存储节点。Stripe一切存储节点构成完好的名字空间,查找文件时需求讯问一切节点,这点十分低效。读写数据时,Stripe触及全局部片存储节点,操纵可以在多个节点之间并发实行,功能十分高。Stripe通常与AFR组合运用,组成RAID10/RAID01,同时取得高功能和高可用性,固然存储应用率会低于50%。

                GlusterFS散布式文件零碎学习之 简介篇

                图5 GlusterFS使用案例:AFR+DHT

                7.设计讨论

                GlusterFS是一个具有高扩展性、高功能、高可用性、可横向扩展的弹性散布式文件零碎,在架构设计上十分有特点,比方无元数据效劳器设计、货仓式架构等。但是,存储使用题目是很庞大的,GlusterFS也不行能满意一切的存储需求,设计完成上也肯定有思索缺乏之处,上面我们作扼要剖析。

                * 无元数据效劳器 vs 元数据效劳器

                无元数据效劳器设计的益处是没有单点毛病和功能瓶颈题目,可进步零碎扩展性、功能、牢靠性和波动性。关于海量小文件使用,这种设计可以无效处理元数据的难点题目。它的负面影响是,数据分歧题目愈加庞大,文件目次遍历操纵服从低下,缺乏全局监控办理功用。同时也招致客户端承当了更多的职能,比方文件定位、名字空间缓存、逻辑卷视图维护等等,这些都添加了客户真个负载,占用相称的CPU和内存。

                * 用户空间 vs 内核空间

                用户空间完成起来绝对要复杂很多,对开辟者技艺要求较低,运转绝对平安。用户空间服从低,数据需求屡次与内核空间交流,别的GlusterFS借助FUSE来完成规范文件零碎接口,功能上又有所消耗。内核空间完成可以取得很高的数据吞吐量,缺陷是完成和调试十分困难,顺序堕落常常会招致零碎解体,平安性低。纵向扩展上,内核空间要优于用户空间,GlusterFS有横向扩展才能来补偿。

                * 货仓式 vs 非货仓式

                这有点像操纵零碎的微内核设计与单一内核设计之争。GlusterFS货仓式设计头脑源自GNU/Hurd微内核操纵零碎,具有很强的零碎扩展才能,零碎设计完成庞大性低落许多,根本功用模块的货仓式组合就可以完成弱小的功用。检查GlusterFS卷设置装备摆设文件我们可以发明,translator功用树通常深达10层以上,一层一层停止挪用,服从可见一斑。非货仓式设计可当作相似Linux的单一内核设计,零碎挪用经过中缀完成,十分高效。后者的题目是零碎中心痴肥,完成和扩展庞大,呈现题目调试困难。

                * 原始存储款式 vs 公有存储款式

                GlusterFS运用原始款式存储文件或数据分片,可以间接运用种种规范的东西停止拜访,数据互操纵性好,迁徙和数据办理十分方便。但是,数据平安成了题目,由于数据因此伟大的方法保管的,打仗数据的人可以间接复制和检查。这对许多使用显然是不克不及承受的,比方云存储零碎,用户特殊关怀数据平安,这也是影响私有云存储开展的一个紧张缘由。公有存储款式可以包管数据的平安性,即便泄漏也是不行知的。GlusterFS要完成本人的公有款式,在设计完成和数据办理上绝对庞大一些,也会对功能发生肯定影响。

                * 大文件 vs 小文件

                GlusterFS合适大文件照旧小文件存储?弹性哈希算法和Stripe数据散布战略,移除了元数据依赖,优化了数据散布,进步数据拜访并行性,可以大幅进步大文件存储的功能。关于小文件,无元数据效劳设计处理了元数据的题目。但GlusterFS并没有在I/O方面作优化,在存储效劳器底层文件零碎上依然是少量小文件,当地文件零碎元数据拜访是一个瓶颈,数据散布和并行性也无法充沛发扬作用。因而,GlusterFS合适存储大文件,小文件功能较差,还存在很大优化空间。

                * 可用性 vs 存储应用率

                GlusterFS运用复制技能来提供数据高可用性,复制数目没无限制,主动修复功用基于复制来完成。可用性与存储应用率是一个抵牾体,可用性高存储应用率就低,反之亦然。接纳复制技能,存储应用率为1/复制数,镜像是50%,三路复制则只要33%。实在,可以无方法来同时进步可用性和存储应用率,比方RAID5的应用率是(n-1)/n,RAID6是(n-2)/n,而纠删码技能可以提供更高的存储应用率。但是,鱼和熊掌不行得兼,它们都市对功能发生较大影响。

                别的,GlusterFS现在的代码完成不敷好,零碎不敷波动,BUGS数目绝对还比拟多。从其官方网站的摆设状况来看,测试用户十分多,但是真正在消费情况中的使用较少,存储摆设容量几TB-几十TB的占很大比率,数百TB-PB级案例十分少。这也可以从另一个方面阐明,GlusterFS现在还不敷波动,需求更长的工夫来查验。但是不行否定,GlusterFS是一个有着黑暗远景的集群文件零碎,线性横向扩展才能使它具有天生的劣势,尤其是关于云存储零碎。

                持续阅读
                中国存储网声明:此文观念不代表本站态度,若有版权疑问请联络我们。
                相干阅读
                产物引荐

                头条阅读
                栏目热门

                Copyright @ 2006-2019 ChinaStor.COM 版权一切 京ICP备14047533号

                中国存储网

                存储第一站,存储流派,存储在线交换平台