GlusterFS 集群文件系统研究

合集下载

clusterfs卷简介

clusterfs卷简介

clusterfs卷简介当处理大量数据时,传统的文件系统可能会遇到性能瓶颈和可扩展性问题。

为了解决这些问题,ClusterFS卷作为一种分布式文件系统应运而生。

它通过将数据分散到多个节点,实现了高性能、高可用性和高可靠性的数据存储和访问。

ClusterFS卷的核心思想是将数据分散到多个节点,每个节点都拥有数据的一部分。

这种分散方式可以增加数据的可用性和可扩展性,因为多个节点可以同时提供服务,从而提高数据的读写性能。

同时,当某个节点出现故障时,其他节点可以继续提供服务,确保数据的可用性和可靠性。

为了实现数据分散和冗余,ClusterFS卷支持多种数据冗余方式,如RAID1、RAID5和RAID6等。

这些冗余方式可以在数据发生故障时提供数据恢复能力,从而确保数据的完整性。

在数据存储时,ClusterFS卷会自动计算数据的冗余信息,并将数据和冗余信息一起存储在多个节点上。

当某个节点上的数据发生故障时,ClusterFS卷可以利用其他节点上的冗余信息来恢复数据,从而确保数据的可靠性。

除了数据冗余和分散外,ClusterFS卷还具有其他一些重要特性。

首先,它支持并发访问,允许多个节点同时访问和修改数据。

这可以大大提高数据的读写性能,并适用于需要并行处理的应用场景。

其次,ClusterFS卷还具有良好的可扩展性,可以轻松地添加或删除节点来适应数据量的增长或缩减。

这可以降低系统的维护成本和复杂性。

此外,ClusterFS卷还具有高可用性和高可靠性。

它通过自动检测节点故障和数据故障,快速进行故障切换和数据恢复,确保服务的连续性和稳定性。

同时,ClusterFS卷还支持数据备份和快照功能,可以在短时间内对整个文件系统或单个文件进行备份和恢复操作。

这可以大大降低数据丢失的风险,并提高系统的可靠性。

总的来说,ClusterFS卷是一种高性能、高可用性和高可靠性的分布式文件系统。

它通过将数据分散到多个节点、支持多种冗余方式和并发访问等技术手段,实现了高性能、高可用性和高可靠性的数据存储和访问。

GlusterFS

GlusterFS

GlusterFS⼀、概述1、GlusterFS是集群式NAS存储系统,分布式⽂件系统(POSIX兼容),Tcp/Ip⽅式互联的⼀个并⾏的⽹络⽂件系统,通过原⽣ GlusterFS 协议访问数据,也可以通过 NFS/CIFS 协议访问数据,没有元数据服务器,实现整个系统的性能、可靠性和稳定性。

2、GlusterFS 常见术语名称解释Brick 最基本的存储单元,表⽰为trusted storage pool中输出的⽬录,供客户端挂载⽤。

Volume⼀个卷。

在逻辑上由N个bricks组成。

FUSE Unix-like OS上的可动态加载的模块,允许⽤户不⽤修改内核即可创建⾃⼰的⽂件系统。

Glusterd Gluster management daemon,要在trusted storage pool中所有的服务器上运⾏。

POSIX⼀个标准,GlusterFS兼容。

3、GlusterFS卷类型基本卷:(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:分布式条带复制卷基本卷:哈希卷(distributed volume,⽂件通过hash算法在所有brick上分布,⽂件级raid0,不具有容错能⼒);复制卷(replicated volume,⽣产常⽤,⽂件同步复制到多个brick上,⽂件级raid1,具有容错能⼒,w性能下降r性能提升);条带卷(striped volume,不建议使⽤,单个⽂件分布到多个brick上,⽀持超⼤⽂件,类似raid0,rr⽅式round-robin,通常⽤于HPC(high performance compute)中的超⼤⽂件(>10G的单个⽂件)及⾼并发环境(多⼈同时访问同⼀个⽂件));复合卷:哈希复制卷(distributed replicated volume,⽣产常⽤,同时具有哈希卷和复制卷的特点);哈希条带卷(distributed striped volume);复制条带卷(replicated striped vlume);哈希复制条带卷(distributed replicated striped volume);4、开源并⾏FS⽐较(glusterfs VS moosefs VS lustre VS ceph):⽐较维度Glusterfs Moosefs Lustre Ceph成熟度2005年发布第⼀个GA版1.2.3,2013年GA版3.3.2,具有成熟的系统架构和完整的⼯程代码2008年发布第⼀个开源版本v1.5,13年发布GA版v1.6.27,稳定,⽐较成熟的开源DFS2003发布第⼀个版本lustre1.0,2013年发布v2.4.0,相当成熟,在HPC领域占有绝⼤⽐例2013年发布v0.71,并已添加到linux kernel中作实验内核,⽬前不成熟有较多bug,更新稳定都是实验版稳定性较稳定,⽆重⼤bug,已有较多组织或机构应⽤于⽣产环境较稳定,⽆重⼤bug很稳定,在HPC领域应⽤很多核⼼组件RADOS较稳定,每3个⽉更新⼀次稳定版,有部分企业⽤于⽣产环境复杂度简单,⽆元数据服务,⽤户空间实现,架构清晰,xlator树形结构简单,⽤户空间实现,代码规模较⼩,⾼度模块化复杂度较⾼,依赖内核实现较复杂,c++实现,功能较多⾼性能解除元数据瓶颈,并⾏化数据访问元数据单点瓶颈⾼性能,HPC领域表现卓越数据分布均衡,并⾏化度⾼扩展性弹性hash代替元数据服务,线性扩展,可轻松扩展到数百PB量级,⽀持动态扩容可增加存储server,不能增加MDS⾼扩展性,容量可达数百PB,可在不打断任何操作的情况下,通过增加新的OSS来实现动态扩展⾼扩展性,⽀持10-1000台server,⽀持TB到PB的扩展,当组件发⽣变化时(添加或删除),⾃动进⾏数据的重分布可⽤性多元数据服务设计,数据分布提供三种⽅式的分割:AFR、DHT、stripe,⽀持⾃动复制和⾃动修复元数据+⽇志服务器,保障元数据server,运⾏时元数据放内存,可设置副本元数据集群,可部署主备切换⼯作⽅式,⽆副本设计,OSS之间可利⽤共享存储实现⾃动故障恢复元数据集群,没有单点故障,多数据副本,⾃动管理、⾃动修复,monitor监控集群中所有节点状态,且可有多个monitor保证可靠性可管部署简单,易于管理和维护,使⽤底层部署简单,提供web gui监控部署复杂,需升级kernel等,提部署较复杂,提供⼯具对集群进⾏监控管可管理性部署简单,易于管理和维护,使⽤底层FS,ext3/zfs,客户端负载增加;提供管理⼯具,如卷的扩容、数据LB、⽬录配额及相关监控等部署简单,提供web gui监控界⾯,元数据恢复,⽂件恢复,回收站功能,快照部署复杂,需升级kernel等,提供管理⼯具,如设置⽬录stripe部署较复杂,提供⼯具对集群进⾏监控管理,包括集群状态,各组件状态等研发成本⽤户空间实现,模块化堆栈式架构⽤户空间实现,⼩规模⾼,内核空间实现,且代码规模⼤较⾼,代码规模⼤,功能多适⽤性适⽤以⽂件为对象的存储体系,适合⼤⽂件存储⼩规模集群,元数据瓶颈,内存消耗⼤⼤⽂件,HPC领域NAS 兼容⽀持NFS、CIFS、HTTP、FTP、gluster原⽣协议,与POSIX标准兼容⽀持CIFS、NFS,⽀持标准POSIX接⼝⽀持CIFS、NFS,⽀持标准POSIX接⼝⽀持CIFS、NFS,⽀持标准POSIX接⼝采⽤指数☆☆☆☆☆☆☆☆☆☆☆☆⼆、配置安装1、环境192.168.1.11 gluster-1-1192.168.1.12 gluster-1-2192.168.1.13 gluster-1-3注意:hosts⽂件添加解析,时间同步,关闭iptables和SELinux,三台各加10G硬盘做存储数据。

Ceph、GlusterFS、Lustre、MFS技术比较

Ceph、GlusterFS、Lustre、MFS技术比较

Ceph、GlusterFS、Lustre、MFS的比较引言:开源存储软件Ceph和Gluster能够提供相似的特性并且能够为用户节省不小的开支。

那么谁更快?谁又更易用呢?开源的Ceph及Red Hat旗下的Gluster都是成熟的技术,但兴许不久之后就将经历某种重生了。

随着存储产业开始向扩展性存储及云的方向发展,将不断会有基于这些低价的软件技术的产品推向市场,而对这些自集成解决方案的补充在近一年来不断涌现。

Ceph与Gluster在原理上有着本质上的不同。

Ceph基于一个名为RADOS的对象存储系统,使用一系列API将数据以块(block)、文件(file)和对象(object)的形式展现。

Ceph存储系统的拓扑结构围绕着副本与信息分布,这使得该系统能够有效保障数据的完整性。

而Red Hat将Gluster描述为可扩展的网络存储设备(Scale-out NAS)和对象存储系统。

它使用一个哈希算法来计算数据在存储池中的存放位置,这点跟Ceph很类似。

并且这是保证扩展性的关键。

在Gluster中,所有的存储服务器使用哈希算法完成对特定数据实体的定位。

于是数据可以很容易的复制,并且没有中心元数据单点这样一个容易造成访问瓶颈的部分,这种单点在早期Hadoop上出现,对性能和可靠性造成较大影响。

Ceph与Gluster有着相似的数据分布能力。

Ceph像大多数对象存储软件那样,通过更大的节点集进行数据条带化处理。

这样的好处是能够防止数据访问的瓶颈效应。

因为默认的Ceph块比较小(仅为64KB),所以数据流被切分为许多随机的IO操作。

而磁盘在随机IO的时候一般能够达到最大值(对HDD而言最多达到150次每秒),并且这个数值不会随传输的数据大小改变多少。

所以对于Ceph而言,设置更大的IO 块意味着能够一次聚合传输更多的数据。

Gluster默认的块大小是128KB。

这是Red Hat声称在一项基准测试中Gluster的性能是Ceph的三倍的主要原因。

FastDFS架构分析

FastDFS架构分析

FastDFS一个高效的分布式文件系统FastDFS是一款类Google FS的开源分布式文件系统,它用纯C语言实现,支持Linux、FreeBSD、AIX等UNIX系统。

它只能通过专有API对文件进行存取访问,不支持POSIX接口方式,不能mount使用。

准确地讲,Google FS以及FastDFS、mogileFS、HDFS、TFS 等类Google FS都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。

FastDFS的设计理念FastDFS是为互联网应用量身定做的分布式文件系统,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标。

和现有的类Google FS分布式文件系统相比,FastDFS的架构和设计理念有其独到之处,主要体现在轻量级、分组方式和对等结构三个方面。

轻量级FastDFS只有两个角色:Tracker server和Storage server。

Tracker server作为中心结点,其主要作用是负载均衡和调度。

Tracker server在内存中记录分组和Storage server 的状态等信息,不记录文件索引信息,占用的内存量很少。

另外,客户端(应用)和Storage server访问Tracker server时,Tracker server扫描内存中的分组和Storage server信息,然后给出应答。

由此可以看出Tracker server非常轻量化,不会成为系统瓶颈。

FastDFS中的Storage server在其他文件系统中通常称作Trunk server或Data server。

Storage server直接利用OS的文件系统存储文件。

FastDFS不会对文件进行分块存储,客户端上传的文件和Storage server上的文件一一对应。

众所周知,大多数网站都需要存储用户上传的文件,如图片、视频、电子文档等。

出于降低带宽和存储成本的考虑,网站通常都会限制用户上传的文件大小,例如图片文件不能超过5MB、视频文件不能超过100MB等。

ocfs2文件系统的使用场景

ocfs2文件系统的使用场景

ocfs2文件系统的使用场景
OCFS2(Oracle Cluster File System 2)是一个用于Linux系统的开源文件系统,主要用于支持集群环境下的文件共享和并发访问。

它的使用场景包括但不限于以下几个方面:
1. 集群环境下的文件共享,在一个集群中,多台服务器可以同时访问和共享OCFS2文件系统中的文件。

这样可以实现高可用性和负载均衡,适用于需要多台服务器同时访问相同数据的场景,比如Web服务器集群、数据库集群等。

2. 数据库存储,OCFS2文件系统可以作为存储数据库文件的文件系统,支持多个数据库实例同时访问存储在其中的数据文件。

这样可以提高数据库的可用性和性能,适用于需要高并发访问的数据库环境。

3. 虚拟化环境,在虚拟化环境中,多个虚拟机可以共享同一个OCFS2文件系统,实现虚拟机之间的文件共享和数据迁移。

这对于构建高可用性的虚拟化平台非常有用。

4. 高性能计算,在科学计算、工程仿真等领域,需要大规模并
行计算的场景下,OCFS2可以提供高性能的文件系统支持,满足大规模并行计算的需求。

总的来说,OCFS2适用于需要多台服务器同时访问和共享文件的场景,尤其是在集群环境、数据库存储、虚拟化环境和高性能计算等领域有着广泛的应用前景。

多种集群文件系统的介绍及分析

多种集群文件系统的介绍及分析

多种集群文件系统的介绍及分析1.什么是集群文件系统“集群”主要分为高性能集群HPC(High Performance Cluster)、高可用集群HAC(High Availablity Cluster)和负载均衡集群LBC(Load Balancing Cluster)。

集群文件系统是指协同多个节点提供高性能、高可用或负载均衡的文件系统,消除了单点故障和性能瓶问题。

对于客户端来说集群是透明的,它看到是一个单一的全局命名空间,用户文件访问请求被分散到所有集群上进行处理。

此外,可扩展性(包括Scale-Up和Scale-Out)、可靠性、易管理等也是集群文件系统追求的目标。

在元数据管理方面,可以采用专用的服务器,也可以采用服务器集群,或者采用完全对等分布的无专用元数据服务器架构。

目前典型的集群文件系统有SONAS, ISILON, IBRIX, NetAPP-GX, Lustre, PVFS2, GlusterFS, Google File System (GFS), LoongStore, CZSS等。

2.集群文件系统的三种主流技术架构从整体架构来看,集群文件系统由存储子系统、NAS集群(机头)、客户端和网络组成。

存储子系统可以采用存储区域网络SAN、直接连接存储DAS或者面向对象存储设备OSD 的存储架构,SAN和DAS架构方式需要通过存储集群来管理后端存储介质,并以SAN文件系统或集群文件系统的方式为NAS集群提供标准文件访问接口。

在基于OSD架构中,NAS集群管理元数据,客户端直接与OSD设备直接交互进行数据访问,这就是并行NAS,即pNFS/NFSv4.1。

NAS集群是NFS/CIS网关,为客户端提供标准文件级的NAS服务。

对于SAN和DAS架构,NAS集群同时承担元数据和I/O数据访问功能,而OSD架构方式仅需要承担元数据访问功能。

根据所采用的后端存储子系统的不同,可以把集群NAS分为三种技术架构,即SAN共享存储架构、集群文件系统架构和pNFS/NFSv4.1架构。

GlusterFS源代码解析——GlusterFS简单介绍

GlusterFS源代码解析——GlusterFS简单介绍

GlusterFS源代码解析——GlusterFS简单介绍—— —— 本系列博客源代码是基于GlusterFS 3.4.3 版本号1. Glusterfs简单介绍是Scale-Out存储解决⽅式的核⼼,它是⼀个开源的分布式⽂件系统,具有强⼤的横向扩展能⼒,通过扩展可以⽀持数PB存储容量和处理数千client。

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

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

2. Glusterfs特点2.1 扩展性和⾼性能GlusterFS利⽤双重特性来提供⼏TB⾄数PB的⾼扩展存储解决⽅式。

Scale-Out架构同意通过简单地添加资源来提⾼存储容量和性能,磁盘、计算和I/O资源都能够独⽴添加,⽀持10GbE和InfiniBand等快速⽹络互联。

Gluster弹性哈希(ElasticHash)解除了GlusterFS对元数据server的需求,消除了单点故障和性能瓶颈,真正实现了并⾏化数据訪问。

2.2 ⾼可⽤性GlusterFS能够对⽂件进⾏⾃⼰主动复制,如镜像或多次复制,从⽽确保数据总是能够訪问,甚⾄是在硬件故障的情况下也能正常訪问。

⾃我修复功能能够把数据恢复到正确的状态,并且修复是以增量的⽅式在后台运⾏,差点⼉不会产⽣性能负载。

GlusterFS没有设计⾃⼰的私有数据⽂件格式,⽽是採⽤操作系统中主流标准的磁盘⽂件系统(如EXT3、ZFS)来存储⽂件,因此数据能够使⽤各种标准⼯具进⾏复制和訪问。

2.3全局统⼀命名空间全局统⼀命名空间将磁盘和内存资源聚集成⼀个单⼀的虚拟存储池,对上层⽤户和应⽤屏蔽了底层的物理硬件。

存储资源能够依据须要在虚拟存储池中进⾏弹性扩展,⽐⽅扩容或收缩。

当存储虚拟机映像时,存储的虚拟映像⽂件没有数量限制,成千虚拟机均通过单⼀挂载点进⾏数据共享。

使用 glusterfs卷

使用 glusterfs卷

使用 glusterfs卷
GlusterFS 是一个开源的分布式文件系统,它可以将多个服务器的存储空间聚合为一个统一的虚拟文件系统,提供高可用性、可扩展性和性能。

以下是使用 GlusterFS 卷的一些基本步骤:
1. 安装和配置 GlusterFS 服务器:在至少两台服务器上安装 GlusterFS 服务器软件,并进行相应的配置,包括创建信任关系、定义存储节点等。

2. 创建 GlusterFS 卷:在 GlusterFS 服务器上创建一个或多个卷。

可以选择不同的卷类型,如分布式卷、复制卷或条带卷,根据需求进行配置。

3. 挂载 GlusterFS 卷:在客户端系统上,通过挂载命令将 GlusterFS 卷挂载到本地文件系统的某个目录下。

挂载后,客户端就可以像使用本地文件系统一样访问 GlusterFS 卷中的文件和目录。

4. 数据存储和访问:一旦 GlusterFS 卷被挂载,用户和应用程序可以将数据存储到卷中,并通过挂载点进行访问。

GlusterFS 会自动在多个存储节点之间分布数据,提供数据冗余和性能优势。

5. 管理和监控:GlusterFS 提供了一些工具和命令来管理和监控卷的状态、性能和健康状况。

可以使用 GlusterFS 命令行界面或相应的管理工具来执行任务,如添加存储节点、扩展卷容量、查看卷统计信息等。

使用 GlusterFS 卷可以提供分布式存储的优势,包括高可用性、可扩展性和数据冗余。

它适用于各种应用场景,如文件共享、数据备份、媒体存储等。

在使用 GlusterFS 卷时,需要根据具体需求进行适当的配置和管理,以确保系统的稳定性和性能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

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

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

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

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

GlusterFS主要特征如下:l扩展性和高性能GlusterFS利用双重特性来提供几TB至数PB的高扩展存储解决方案。

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

Gluster弹性哈希(Elastic Hash)解除了GlusterFS 对元数据服务器的需求,消除了单点故障和性能瓶颈,真正实现了并行化数据访问。

l高可用性GlusterFS可以对文件进行自动复制,如镜像或多次复制,从而确保数据总是可以访问,甚至是在硬件故障的情况下也能正常访问。

自我修复功能能够把数据恢复到正确的状态,而且修复是以增量的方式在后台执行,几乎不会产生性能负载。

GlusterFS没有设计自己的私有数据文件格式,而是采用操作系统中主流标准的磁盘文件系统(如EXT3、ZFS)来存储文件,因此数据可以使用各种标准工具进行复制和访问。

l全局统一命名空间全局统一命名空间将磁盘和内存资源聚集成一个单一的虚拟存储池,对上层用户和应用屏蔽了底层的物理硬件。

存储资源可以根据需要在虚拟存储池中进行弹性扩展,比如扩容或收缩。

当存储虚拟机映像时,存储的虚拟映像文件没有数量限制,成千虚拟机均通过单一挂载点进行数据共享。

虚拟机I/O可在命名空间内的所有服务器上自动进行负载均衡,消除了SAN 环境中经常发生的访问热点和性能瓶颈问题。

l弹性哈希算法GlusterFS采用弹性哈希算法在存储池中定位数据,而不是采用集中式或分布式元数据服务器索引。

在其他的Scale-Out存储系统中,元数据服务器通常会导致I/O性能瓶颈和单点故障问题。

GlusterFS中,所有在Scale-Out存储配置中的存储系统都可以智能地定位任意数据分片,不需要查看索引或者向其他服务器查询。

这种设计机制完全并行化了数据访问,实现了真正的线性性能扩展。

l弹性卷管理数据储存在逻辑卷中,逻辑卷可以从虚拟化的物理存储池进行独立逻辑划分而得到。

存储服务器可以在线进行增加和移除,不会导致应用中断。

逻辑卷可以在所有配置服务器中增长和缩减,可以在不同服务器迁移进行容量均衡,或者增加和移除系统,这些操作都可在线进行。

文件系统配置更改也可以实时在线进行并应用,从而可以适应工作负载条件变化或在线性能调优。

l基于标准协议Gluster存储服务支持NFS, CIFS, HTTP, FTP以及Gluster原生协议,完全与POSIX标准兼容。

现有应用程序不需要作任何修改或使用专用API,就可以对Gluster中的数据进行访问。

这在公有云环境中部署Gluster时非常有用,Gluster对云服务提供商专用API进行抽象,然后提供标准POSIX接口。

2.设计目标GlusterFS的设计思想显著区别有现有并行/集群/分布式文件系统。

如果GlusterFS在设计上没有本质性的突破,难以在与Lustre、PVFS2、Ceph等的竞争中占据优势,更别提与GPFS、StorNext、ISILON、IBRIX等具有多年技术沉淀和市场积累的商用文件系统竞争。

其核心设计目标包括如下三个:l弹性存储系统(Elasticity)存储系统具有弹性能力,意味着企业可以根据业务需要灵活地增加或缩减数据存储以及增删存储池中的资源,而不需要中断系统运行。

GlusterFS设计目标之一就是弹性,允许动态增删数据卷、扩展或缩减数据卷、增删存储服务器等,不影响系统正常运行和业务服务。

GlusterFS早期版本中弹性不足,部分管理工作需要中断服务,目前最新的3.1.X版本已经弹性十足,能够满足对存储系统弹性要求高的应用需求,尤其是对云存储服务系统而言意义更大。

GlusterFS主要通过存储虚拟化技术和逻辑卷管理来实现这一设计目标。

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

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

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

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

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

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

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

GlusterFS利用三种基本技术来获得线性横向扩展能力:1)消除元数据服务2)高效数据分布,获得扩展性和可靠性3)通过完全分布式架构的并行化获得性能的最大化l高可靠性(Reliability)与GFS(Google File System)类似,GlusterFS可以构建在普通的服务器和存储设备之上,因此可靠性显得尤为关键。

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

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

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

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

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

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

l完全软件实现(Software Only)GlusterFS认为存储是软件问题,不能够把用户局限于使用特定的供应商或硬件配置来解决。

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

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

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

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

l完整的存储操作系统栈(Complete Storage Operating System Stack)GlusterFS不仅提供了一个分布式文件系统,而且还提供了许多其他重要的分布式功能,比如分布式内存管理、I/O调度、软RAID和自我修复等。

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

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

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

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

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

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

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

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

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

l无元数据服务设计(No Metadata with the Elastic Hash Algorithm)对Scale-Out存储系统而言,最大的挑战之一就是记录数据逻辑与物理位置的映像关系,即数据元数据,可能还包括诸如属性和访问权限等信息。

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

特别是对于海量小文件的应用,元数据问题是个非常大的挑战。

GlusterFS独特地采用无元数据服务的设计,取而代之使用算法来定位文件,元数据和数据没有分离而是一起存储。

集群中的所有存储系统服务器都可以智能地对文件数据分片进行定位,仅仅根据文件名和路径并运用算法即可,而不需要查询索引或者其他服务器。

这使得数据访问完全并行化,从而实现真正的线性性能扩展。

无元数据服务器极大提高了GlusterFS 的性能、可靠性和稳定性。

4.总体架构与设计图2 GlusterFS架构和组成GlusterFS总体架构与组成部分如图2所示,它主要由存储服务器(Brick Server)、客户端以及NFS/Samba存储网关组成。

相关文档
最新文档