Glusterfs分布式存储

目录

一、简介

二、特点

1、扩展性和高性能

2、高可用性

3、全局统一命名空间

4、弹性卷管理

5、基于标准协议

三、专业术语

四、GlusterFS构成

五、GlusterFS 的工作流程

1、工作流程

         2、弹性 HASH 算法

六、GlusterFS常用分布式简介

1、分布式卷

2、条带卷(Stripe volume)

3、复制卷(Replica volume)

4、分布式条带卷(Distribute Stripe volume)

5、分布式复制卷(Distribute Replica volume)

6、条带复制卷(Stripe Replca volume)

7、分布式条带复制卷(Distribute Stripe Replicavolume)

七、GlusterFS集群

1、实验环境

2、安装GFS 

3、时间同步

4、添加节点到存储信任池中 (只要在一台主机上添加其他三台节点即可,其他主机不用操作)

5、GlusterFS 卷的创建

5.1创建分布式卷

5.2、创建条带卷

5.3、创建复制卷

5.4、创建分布式条带卷

5.5、创建分布式复制卷

6、GFS客户端配置

1、安装GFS

2、创建挂载点

3、配置映射关系

4、挂载

7、测试Gluster 文件系统

八、实验总结

1、查看分布式卷文件分布

总结:分布式卷文件分布是按照哈希算法来选择存储位置的。数据没有被分片

2、查看条带卷文件分布

总结:条带卷文件分布,数据被分片50%(注意看-h显示的大小),没副本,没冗余

3、查看复制卷分布

总结:复制卷分布,数据没有被分片,有副本,有冗余

4、查看分布式条带卷分布

总结:分布式条带卷分布,数据被分片50%,没副本,没冗余(先按分布式规则进行分片,再按条带规则,分开存储)

5、查看分布式复制卷分布

总结:分布式复制卷,没有被分片,有副本,有冗余(先按分布式进行分开存储,再按复制卷进行复制)

九、破坏性测试

十、拓展基础命令


概述

GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,并提供容错功能。它可以给大量的用户提供总体性能较高的服务。

开源的分布式文件系统;由存储服务器、客户端以及 NFS/Samba 存储网关组成。

一、简介

       GlusterFS是一个可扩展性的开源的分布式文件系统,它将来自多个服务器的磁盘存储资源聚合到一个全局命名空间中,供用户使用。

       GlusterFS是一种全对称的开源分布式文件系统,所谓全对称是指GlusterFS采用弹性哈希算法,没有中心节点,所有节点平等。GlusterFS配置方便,稳定性好,可轻松扩展至PB级数量,数千个节点。

二、特点

1、扩展性和高性能

GlusterFS利用双重特性来提供高容量存储解决方案

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

2、高可用性

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

3、全局统一命名空间

分布式存储中,将所有节点的命名空间整合为统一命名空间,将整个系统的所有节点的存储容量组成一个大的虛拟存储池,供前端主机访问这些节点完成数据读写操作。

4、弹性卷管理

GlusterFs通过将数据储存在逻辑卷中,逻辑卷从逻辑存储池进行独立逻辑划分而得到。
逻辑存储池可以在线进行增加和移除,不会导致业务中断。逻辑卷可以根据需求在线增长和缩减,并可以在多个节点中实现负载均衡。
文件系统配置也可以实时在线进行更改并应用,从而可以适应工作负载条件变化或在线性能调优。
 

5、基于标准协议

Gluster存储服务支持NFS、CIFS、HTTP、FTP、SMB及Gluster原生协议,完全与POSIX标准(可移植操作系统接口)兼容。
现有应用程序不需要做任何修改就可以对Gluster中的数据进行访问,也可以使用专用API进行访问。

三、专业术语

名称

解释

Brick

最基本的存储单元,(块存储服务器)实际存储用户数据的服务器

Volume

逻辑卷。本地文件系统的"分区"

Glusterd

(服务)是运行在存储节点的管理进程,(客户端运行的是gluster client)GFS使用过         程中整个GFS之间的交换由Gluster client 和glusterd完成

FUSE

用户空间的文件系统(类别EXT4),”一个伪文件系统“。一个可加载的内核模块,和内核VFS交互进行文件系统的操作

VFS

(虚拟端口)内核态的虚拟文件系统,用户是提交请求给VFS 然后VFS交给FUSH,       再交给GFS客户端,最后由客户端交给远端的存储

四、GlusterFS构成

模块化堆栈式架构:模块化、堆栈式的架构,通过对模块的组合,实现复杂的功能

API:应用程序编程接口

模块化:每个模块可以提供不同的功能

堆栈式:同时启用多个模块,多个功能可以组合,实现复杂的功能

五、GlusterFS 的工作流程

1、工作流程

1、客户端或应用程序通过 GlusterFS 的挂载点访问数据 application

2、系统内核通过 VFS API 收到请求并处理

3、VFS 将数据递交给 FUSE 内核文件系统,并向系统注册一个实际的文件系统 FUSE,而 FUSE 文件系统则是将数据通过 /dev/fuse 设备文件递交给了 GlusterFS client 端。

4、GlusterFS client 收到数据后,client 根据配置文件的配置对数据进行处理

5、经过 GlusterFS client 处理后,通过网络将数据传递至远端的GlusterFS Server,并且将数据写入到服务器存储设备上EXT3

2、弹性 HASH 算法

分布式GFS存储是依靠于弹性hash算法,通过对存储内容进行hash算法的运算,可以得到32位的整数,将32位整数平均划分到 分布式服务器中,也就是每一个brick对应一段整数范围。用户根据计算得出数字找到对应的brick块。

弹性HASH算法:

弹性 HASH 算法是 Davies-Meyer 算法的具体实现,通过 HASH 算法可以得到一个 32 位的整数范围的 hash 值,假设逻辑卷中有 N 个存储单位 Brick,则 32 位的整数范围将被划分为 N 个连续的子空间,每个空间对应一个 Brick。当用户或应用程序访问某一个命名空间时,通过对该命名空间计算 HASH 值,根据该 HASH 值所对应的 32 位整数空间定位数据所在的 Brick。

弹性HASH算法的优点:保证数据平均分布在每一个Brick中,解决了对元数据服务器的依赖,进而解决了单点故障。
 

六、GlusterFS常用分布式简介

1、分布式卷

也看成为哈希卷,多个文件以文件为单位在多个brick上,使用哈希算法随机存储。

分布式卷具有如下特点:

① 文件分布在不同的服务器,不具备冗余性。
② 更容易和廉价地扩展卷的大小。
③ 单点故障会造成数据丢失。(类似RAID0)
④ 依赖底层的数据保护

使用场景:大量小文件

优点:读/写性能好

缺点:如果存储或服务器故障,该brick上的数据将丢失

默认卷:不指定卷类型,默认是分布式卷

brick数量没有限制

2、条带卷(Stripe volume)

是将文件分成条带,以轮询的方式存放在多个brick上,默认条带大小128k。文件存储以数据块为单位,支持大文件存储,文件越大,读取效率越高,但是不具备冗余性

应用场景:大文件

优点:适用于大文件存储

缺点:可靠性低,brick故障会导致数据全部丢失

stripe = birck   (stripe:条带个数)

条带卷特点:① 数据被分割成更小块分布到块服务器群中的不同条带区。
                      ② 分布减少了负载且更小的文件加速了存取的速度。
                      ③ 没有数据冗余。

3、复制卷(Replica volume)

是将多个文件在多个brick上复制多份,brick的数目要与需要复制的份数相等,建议brick分布在不同的服务器上。

将文件同步到多个Brick上,使其具备多个文件副本,属于文件级RAID 1,具有容错能力。因为数据分散在多个Brick中,所以读性能得到很大提升,但写性能下降。
复制卷具备冗余性,即使一个节点损坏,也不影响数据的正常使用。但因为要保存副本,所以磁盘利用率较低。

应用场景:对可靠性高和读写性能要求高的场景

优点:读写性能好

缺点:写性能差

replica = brick

复制卷特点:① 卷中所有的服务器均保存一个完整的副本。
                      ② 卷的副本数量可由客户创建的时候决定,但复制数必须等于卷中Brick所包含的存储服务器数。
                       ③ 至少由两个块服务器或更多服务器。
                       ④ 具备冗余性。

4、分布式条带卷(Distribute Stripe volume)

是将多个文件在多个节点哈希存储,每个文件再多分条带在多个brick上存储

应用场景:读/写性能高的大量大文件场景

优点:高并发支持

缺点:没有冗余,可靠性差

brick数是stripe的倍数

5、分布式复制卷(Distribute Replica volume)

是将多个文件在多个节点上哈希存储,在多个brick复制多份存储

应用场景:大量文件读和可靠性要求高的场景

优点:高可靠,读性能高

缺点:牺牲存储空间,写性能差

brick数量是replica的倍数

6、条带复制卷(Stripe Replca volume)

是将一个大文件存储的时候划分条带,并且保存多份

应用场景:超大文件,并且对可靠性要求高

优点:大文件存储,可靠性高

缺点:牺牲空间写性能差

brick数量是stripe、replica的乘积

7、分布式条带复制卷(Distribute Stripe Replicavolume)

三种卷组合

七、GlusterFS集群

1、实验环境

每台节点添加四块磁盘(内存4G起步)

node1节点:node1/192.168.159.68          磁盘: /dev/sdb1            挂载点: /data/sdb1

                                            /dev/sdc1                    /data/sdc1
                                            /dev/sdd1                    /data/sdd1
                                            /dev/sde1                    /data/sde1
 
node2节点:node2/192.168.159.11         磁盘: /dev/sdb1            挂载点: /data/sdb1
                                            /dev/sdc1                    /data/sdc1
                                            /dev/sdd1                    /data/sdd1
                                            /dev/sde1                    /data/sde1
 
node3节点:node3/192.168.159.13         磁盘: /dev/sdb1            挂载点: /data/sdb1
                                            /dev/sdc1                    /data/sdc1
                                            /dev/sdd1                    /data/sdd1
                                            /dev/sde1                    /data/sde1
 
node4节点:node4/192.168.159.10        磁盘: /dev/sdb1            挂载点: /data/sdb1
                                            /dev/sdc1                    /data/sdc1
                                            /dev/sdd1                    /data/sdd1
                                            /dev/sde1                    /data/sde1

client :192.168.159.20

2、分区

分区脚本,每个节点执行四次并挂载

vim /opt/fdisk.sh
#! /bin/bash
echo "the disks exist list:"   
fdisk -l |grep '磁盘 /dev/sd[a-z]'
echo "=================================================="
PS3="chose which disk you want to create:"
select VAR in `ls /dev/sd*|grep -o 'sd[b-z]'|uniq` quit
do
    case $VAR in
    sda)
        fdisk -l /dev/sda
        break ;;
    sd[b-z])
        echo "n
              p
                
                
       
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值