GFS分布式存储详解 速成教程 干货!!


GlusterFS简介

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

GlusterFS特点

  • 扩展性和高性能
  • 高可用性
  • 全局统一命名空间
  • 弹性卷管理
  • 基于标准协议

GlusterFS术语

  • Brick
  • volume
  • FUSE
  • VFS
  • Glusterd

模块化堆栈式架构

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

GlusterFS工作原理

GlusterFS工作流程
弹性HASH算法

  • 通过HASH算法得到一个32位的整数
  • 划分为N个连续的子空间,每个空间对应—个Brick弹性
    HASH算法的优点
  • 保证数据平均分布在每一个Brick中
  • 解决了对元数据服务器的依赖,进而解决了单点故障以及访问瓶颈

GlusterFS的卷类型

分布式卷
条带卷
复制卷
分布式条带卷
分布式复制卷
条带复制卷
分布式条带复制卷

分布式卷

  • 没有对文件进行分块处理
  • 通过扩展文件属性保存HASH值
  • 支持的底层文件系统有EXT3、EXT4、ZFS、XFS等
  • 没有分块处理 文件只能在一个server中,不提升效率
    分布式卷的特点
  • 文件分布在不同的服务器,不具备冗余性
  • 更容易和廉价地扩展卷的大小
  • 单点故障会造成数据丢失
  • 依赖底层的数据保护
    创建分布式卷
  • 创建一个名为dis-volume的分布式卷,文件将根据HASH分布在
    server1:/dir1、server2:/dir2和server3:/dir3中
gluster yolume create dis-volume server1:/dir1 server2:/dir2 server3:/dir3

条带卷

  • 根据偏移量将文件分成N块(N个条带节点),轮询的存储在每个Brick Server节点
  • 存储大文件时,性能尤为突出
  • 不具备冗余性,类似Raid0
  • 从多个server中同时读取文件,效率提升
    条带卷的特点
  • 数据被分割成更小块分布到块服务器群中的不同条带区
  • 分布减少了负载且更小的文件加速了存取的速度
  • 没有数据冗余
    创建条带卷
  • 创建了一个名为Stripe-volume的条带卷,文件将被分块轮询的存储在Server1:/dir1和Server2:/dir2两个Brick中
 gluster volume create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2

复制卷

  • 同一文件保存一份或多分副本
  • 因为要保存副本,所以磁盘利用率较低
  • 若多个节点上的存储空间不一致,将按照木桶效应取最低节点的容量作为该卷的总容量
    复制卷的特点
  • 卷中所有的服务器均保存一个完整的副本
  • 卷的副本数量可由客户创建的时候决定
  • 至少有两个块服务器或更多服务器
  • 具备冗余性
    创建复制卷
    创建名为rep-volume的复制卷,文件将同时存储两个副本,分别在Server1:/dir1和Server2:/dir2两个Brick中
gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2

分布式条带卷

  • 兼顾分布式卷和条带卷的功能
  • 主要用于大文件访问处理
  • 至少最少需要4台服务器
    创建分布式条带卷
    创建了名为dis-stripe的分布式条带卷,配置分布式的条带卷时,卷中Brick所包含的存储服务器数必须是条带数的倍数(>=2倍)
gluster volume create dis-stripe stripe 2 transport tcp server1:/dir1
server2:/dir2 terver3:/dir3 server4:/dir4

分布式复制卷

  • 兼顾分布式卷和复制卷的功能
  • 用于需要冗余的情况
    分布式复制卷分布式复制卷
    兼顾分布式卷和复制卷的功能用于需要冗余的情况
    创建分布式复制卷
    创建名为dis-rep的分布式条带卷,配置分布式复制卷时

    中Brick所包含的存储服务器数必须是复制卷的倍数(>=2倍)
gluster volume create(disrep replica 2 transport tcp server1:/dir1 server2:
/dir2 server3:/dir3 server4:/dir4

GFS部署

先将gfsrepo库导入到所有的服务器实例的root目录下,安装GFS的相关的软件包 需要用到此库

为所有服务器都配置下列操作

cd /etc/yum.repos.d/
vi glfs.repo  编辑gifs的yum库
[GLFS]
name=glfs
baseurl=file:///root/gfsrepo 设置本地源路径
gpgcheck=0
enable=1
保存退出
vi /etc/hosts 剪辑本地映射文件 映射服务器节点名和ip
20.0.0.15 node1
20.0.0.16 node2
20.0.0.18 node3
20.0.0.19 node4
保存退出
yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
........完毕
systemctl start glusterd.service  开启服务
systemctl status glusterd.service
确认glusterfs已经在运行

下面的只要其中一台上执行即可

gluster peer probe node2 与其他服务器建立信任关系
gluster peer probe node3
gluster peer probe node4
gluster peer status
Number of Peers: 3 建立信任关系的成员

Hostname: node2
Uuid: df4c1840-dbb0-45c5-857c-8d1d1116906a
State: Peer in Cluster (Connected) 成员连接的状态

Hostname: node3
Uuid: b0c31b6f-4098-49de-8151-494d51489726
State: Peer in Cluster (Connected)

Hostname: node4
Uuid: 93e1a723-b3b7-41d6-887f-122309889a74
State: Peer in Cluster (Connected)
注意:需要所有服务器都处于Peer in Cluster (Connected)状态
gluster volume create dis_str stripe2 node1:/data/sdb1 node2:/data/sdb1 node3:/data/sdb1 node4:/data/sdb1 force
创建一个分布式条带卷试试看
gluster volume start dis_str
启用新建的卷
gluster volume stop dis_str
停用卷
gluster volume delete dis_str
删除卷 (删除前必须先停用)

客户机配置

和上面同样配置glfs库和hosts文件然后安装服务
yum -y install glusterfs lusterfs-fuse
mkdir -p /data/dis_str 创建挂载需要用到的文件
mount.glusterfs node1:dis_str /data/dis_str (挂载gfs储存)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值