GlusterFs研究文档.docx

上传人:b****4 文档编号:3215542 上传时间:2022-11-20 格式:DOCX 页数:13 大小:666.94KB
下载 相关 举报
GlusterFs研究文档.docx_第1页
第1页 / 共13页
GlusterFs研究文档.docx_第2页
第2页 / 共13页
GlusterFs研究文档.docx_第3页
第3页 / 共13页
GlusterFs研究文档.docx_第4页
第4页 / 共13页
GlusterFs研究文档.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

GlusterFs研究文档.docx

《GlusterFs研究文档.docx》由会员分享,可在线阅读,更多相关《GlusterFs研究文档.docx(13页珍藏版)》请在冰豆网上搜索。

GlusterFs研究文档.docx

GlusterFs研究文档

 GlusterFS集群文件系统研究

刘爱贵 

目录

1.      GlusterFS概述1

  扩展性和高性能2

  高可用性2

  全局统一命名空间2

  弹性哈希算法2

  弹性卷管理2

  基于标准协议2

2.      设计目标3

  弹性存储系统(Elasticity)3

  线性横向扩展(LinearScale-Out)3

  高可靠性(Reliability)4

3.      技术特点4

  完全软件实现(SoftwareOnly)4

  完整的存储操作系统栈(CompleteStorageOperatingSystemStack)4

  用户空间实现(UserSpace)4

  模块化堆栈式架构(ModularStackableArchitecture)4

  原始数据格式存储(DataStoredinNativeFormats)5

  无元数据服务设计(NoMetadatawiththeElasticHashAlgorithm)5

4.      总体架构与设计5

5.      弹性哈希算法8

6.      Translators10

7.      设计讨论11

  无元数据服务器 vs 元数据服务器11

  用户空间 vs 内核空间11

  堆栈式 vs 非堆栈式11

  原始存储格式 vs 私有存储格式12

  大文件 vs 小文件12

  可用性 vs 存储利用率12

8.      参考文献13

1.      GlusterFS概述

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

GlusterFS借助TCP/IP或InfiniBandRDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。

GlusterFS基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能。

图1GlusterFS统一的挂载点

GlusterFS支持运行在任何标准IP网络上标准应用程序的标准客户端,如图2所示,用户可以在全局统一的命名空间中使用NFS/CIFS等标准协议来访问应用数据。

GlusterFS使得用户可摆脱原有的独立、高成本的封闭存储系统,能够利用普通廉价的存储设备来部署可集中管理、横向扩展、虚拟化的存储池,存储容量可扩展至TB/PB级。

GlusterFS主要特征如下:

●  扩展性和高性能

GlusterFS利用双重特性来提供几TB至数PB的高扩展存储解决方案。

Scale-Out架构允许通过简单地增加资源来提高存储容量和性能,磁盘、计算和I/O资源都可以独立增加,支持10GbE和InfiniBand等高速网络互联。

Gluster弹性哈希(ElasticHash)解除了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主要通过存储虚拟化技术和逻辑卷管理来实现这一设计目标。

●  线性横向扩展(LinearScale-Out)

线性扩展对于存储系统而言是非常难以实现的,通常系统规模扩展与性能提升之间是LOG对数曲线关系,因为同时会产生相应负载而消耗了部分性能的提升。

现在的很多并行/集群/分布式文件系统都具很高的扩展能力,Luster存储节点可以达到1000个以上,客户端数量能够达到25000以上,这个扩展能力是非常强大的,但是Lustre也不是线性扩展的。

纵向扩展(Scale-Up)旨在提高单个节点的存储容量或性能,往往存在理论上或物理上的各种限制,而无法满足存储需求。

横向扩展(Scale-Out)通过增加存储节点来提升整个系统的容量或性能,这一扩展机制是目前的存储技术热点,能有效应对容量、性能等存储需求。

目前的并行/集群/分布式文件系统大多都具备横向扩展能力。

GlusterFS是线性横向扩展架构,它通过横向扩展存储节点即可以获得线性的存储容量和性能的提升。

因此,结合纵向扩展GlusterFS可以获得多维扩展能力,增加每个节点的磁盘可增加存储容量,增加存储节点可以提高性能,从而将更多磁盘、内存、I/O资源聚集成更大容量、更高性能的虚拟存储池。

GlusterFS利用三种基本技术来获得线性横向扩展能力:

1)        消除元数据服务

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

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

●  高可靠性(Reliability)

与GFS(GoogleFileSystem)类似,GlusterFS可以构建在普通的服务器和存储设备之上,因此可靠性显得尤为关键。

GlusterFS从设计之初就将可靠性纳入核心设计,采用了多种技术来实现这一设计目标。

首先,它假设故障是正常事件,包括硬件、磁盘、网络故障以及管理员误操作造成的数据损坏等。

GlusterFS设计支持自动复制和自动修复功能来保证数据可靠性,不需要管理员的干预。

其次,GlusterFS利用了底层EXT3/ZFS等磁盘文件系统的日志功能来提供一定的数据可靠性,而没有自己重新发明轮子。

再次,GlusterFS是无元数据服务器设计,不需要元数据的同步或者一致性维护,很大程度上降低了系统复杂性,不仅提高了性能,还大大提高了系统可靠性。

3.      技术特点

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

●  完全软件实现(SoftwareOnly)

GlusterFS认为存储是软件问题,不能够把用户局限于使用特定的供应商或硬件配置来解决。

GlusterFS采用开放式设计,广泛支持工业标准的存储、网络和计算机设备,而非与定制化的专用硬件设备捆绑。

对于商业客户,GlusterFS可以以虚拟装置的形式交付,也可以与虚拟机容器打包,或者是公有云中部署的映像。

开源社区中,GlusterFS被大量部署在基于廉价闲置硬件的各种操作系统上,构成集中统一的虚拟存储资源池。

简而言之,GlusterFS是开放的全软件实现,完全独立于硬件和操作系统。

●  完整的存储操作系统栈(CompleteStorageOperatingSystemStack)

GlusterFS不仅提供了一个分布式文件系统,而且还提供了许多其他重要的分布式功能,比如分布式内存管理、I/O调度、软RAID和自我修复等。

GlusterFS汲取了微内核架构的经验教训,借鉴了GNU/Hurd操作系统的设计思想,在用户空间实现了完整的存储操作系统栈。

●  用户空间实现(UserSpace)

与传统的文件系统不同,GlusterFS在用户空间实现,这使得其安装和升级特别简便。

另外,这也极大降低了普通用户基于源码修改GlusterFS的门槛,仅仅需要通用的C程序设计技能,而不需要特别的内核编程经验。

●  模块化堆栈式架构(ModularStackableArchitecture)

GlusterFS采用模块化、堆栈式的架构,可通过灵活的配置支持高度定制化的应用环境,比如大文件存储、海量小文件存储、云存储、多传输协议应用等。

每个功能以模块形式实现,然后以积木方式进行简单的组合,即可实现复杂的功能。

比如,Replicate模块可实现RAID1,Stripe模块可实现RAID0,通过两者的组合可实现RAID10和RAID01,同时获得高性能和高可靠性。

●  原始数据格式存储(DataStoredinNativeFormats)

GlusterFS以原始数据格式(如EXT3、EXT4、XFS、ZFS)储存数据,并实现多种数据自动修复机制。

因此,系统极具弹性,即使离线情形下文件也可以通过其他标准工具进行访问。

如果用户需要从GlusterFS中迁移数据,不需要作任何修改仍然可以完全使用这些数据。

●  无元数据服务设计(NoMetadatawiththeElasticHashAlgorithm)

对Scale-Out存储系统而言,最大的挑战之一就是记录数据逻辑与物理位置的映像关系,即数据元数据,可能还包括诸如属性和访问权限等信息。

传统分布式存储系统使用集中式或分布式元数据服务来维护元数据,集中式元数据服务会导致单点故障和性能瓶颈问题,而分布式元数据服务存在

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1