分布式存储GlusterFS与分布式一致性算法Raft

一、分布式存储GlusterFs

1、GlusterFs简介

Glusterfs是一个开源的分布式文件系统,它是将多个服务器的磁盘资源,通过网络互连成一个并行的网络文件系统。它具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千个客户端。它是无中心节点(所有节点全部平等),让整个服务器没有单点故障的隐患,具有配置方便、高性能、高可用性、可扩展性等特点。
当客户端访问GlusterFS存储时,首先程序通过访问挂载点的形式读写数据,对于用户和程序而言,集群文件系统是透明的,用户和程序根本感觉不到文件系统是本地还是在远程服务器上。读写操作将会被交给VFS(Virtual File System)来处理,VFS会将请求交给FUSE内核模块,而FUSE又会通过设备/dev/fuse将数据交给GlusterFS Client。最后经过GlusterFS Client的计算,并最终经过网络将请求或数据发送到GlusterFS Server上。

2、GlusterFs常用卷类型

分布式卷(distributed):

将文件随机分布在存储卷中的各个块(Bricks)中,使用哈希算法随机存储。分布式卷具有良好的扩展性,但不具备数据冗余能力,该能力需借助服务器软硬件(raid卡)实现。未指定任何卷类型的情况下,默认创建的卷的类型。
在这里插入图片描述

优点:读写性能好
缺点:如果存储或服务器故障,该brick上的数据将丢失
应用场景:大量小文件
创建分布式卷命令格式如下:

#gluster volume create test-volume server1:/exp1 server2:/exp2
复制卷(Replicated):

通过存储卷中的多个块(Bricks)建立文件的副本。在创建复制卷时,块数量应当等于副本数量,为防止服务器及磁盘故障,每个块都应当分布在独立的服务器上。复制卷提供数据的高可用性和高可靠性。
在这里插入图片描述
优点:读性能好
缺点:写性能差
应用场景:对可靠性高和读性能要求高的场景
创建复制卷命令格式如下:

#gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2
分布式复制卷(Distributed Replicated):

分布式卷和复制卷的集合,在创建分布式副本卷时,块(Bricks)数量最小应当为指定副本数量的整数倍。分布式副木卷可以提高文件读取性能。(企业中最长用的)
在这里插入图片描述
优点:高可靠、读性能高
缺点:牺牲存储空间、写性能差
应用场景:大量文件读和可靠性要求高的场景
创建分布式复制卷命令格式如下:

#gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
分散卷(Dispersed):基于纠错码,将文件编码后条带化分收存储在卷的多个块中,并提供一定冗余性。

分散卷可以提高磁盘存储利用率,但性能有所下降。分散卷中的元余值表示允许多少块失效而不中断对卷的读写操作。分散卷中的冗余值必须大于0,总块数应当大于2倍的元余值,也就意味着分散卷至少要由3个块组成。在创建分散卷时如果未指定冗余值,系统将自动计算该值并提示。
分散卷可用存储空间计算公式如下:
= * (#Bricks - Redundancy)
创建分散卷命令格式如下:

# gluster volume create test-volume [disperse [<COuNT>J] [disperse-data <COUNT>] redundancy <COUNT>] [transport tcp I rdma tcp,rdmal <NEW-BRICK>

以下为实机操作过程

服务器环境规划
主机名 IP地址 操作系统 硬盘数量
glusterfs01 192.168.81.240 centos7.6 /dev/sdb(10G) /dev/sdc(10G)
glusterfs02 192.168.81.250 centos7.6 /dev/sdb(10G) /dev/sdc(10G)
glusterfs03 192.168.81.136 centos7.6 /dev/sdb(10G) /dev/sdc(10G)

3、安装GlusterFs

1)yum安装
[root@192 ~]# yum install centos-release-gluster -y 
[root@192 ~]# yum install glusterfs-server -y

2)启动glusterfs
所有节点都进行如下操作
[root@192 ~]# systemctl start glusterd.service
[root@192 ~]# systemctl enable glusterd.service
[root@192 ~]# mkdir -p /gfs/test1
[root@192 ~]# mkdir -p /gfs/test2

3)配置hosts解析
所有节点都进行如下操作
[root@glusterfs01 ~]# cat /etc/hosts
192.168.81.240 glusterfs01
192.168.81.250 glusterfs02
192.168.81.136 glusterfs03

4、关闭服务器防火墙

为了能让节点上的gluster进程可以相互通信,需要关闭防火墙。

[root@192 ~]# systemctl status firewalld.service   用于查看防火墙的状态
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值