GlusterFS分布式文件系统

GlusterFS简介

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

GlusterFS特点

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

GlusterFS术语

  • Brick
  • Volume
  • FUSE
  • VFS
  • Glusterd

弹性HASH算法

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

GlusterFS的卷类型

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

分布式卷

  • 没有对文件进行分块处理
  • 通过扩展文件属性保存HASH值
  • 支持的底层文件系统由EXT3,EXT4,ZFS

分布式卷特点

  • 文件分布在不同的服务器,不具备冗余性
  • 更容易和了两件的扩展卷的大小
  • 单点故障会造成数据丢失
  • 依赖底层的数据保护

条带卷

  • 根据偏移量将文件分成N块(N个条带节点),轮询的存储在每个Brick Server节点
  • 数据被分割成更小块分布到服务器群中的不同条带区
  • 分布减少了负载且更小的文件加速了存取的速度
  • 没有数据冗余

复制卷

  • 同一文件保存一份或多副本
  • 因为保存副本,所以磁盘利用率较低
  • 若多个节点上的存储空间不一致,将安装木桶效应取最低节点的容量作为该卷的总容量

特点

  • 卷中所有的服务器均保存一个完整的副本
  • 卷的副本数量可由客户创建的时候决定
  • 至少有两个块服务器或更多服务器
  • 具备冗余性

分布式条带卷

  • 兼顾分布式卷和条带卷的功能
  • 主要用于大文件访问处理
  • 自少需要4台服务器

分布式复制卷

  • 兼顾分布式卷和复制卷的功能
  • 用于需要冗余的情况

部署GFS分布式存储系统

资源列表
echo "192.168.10.51 node1" >> /etc/hosts
echo "192.168.10.52 node2" >> /etc/hosts
echo "192.168.10.53 node3" >> /etc/hosts
echo "192.168.10.54 node4" >> /etc/hosts
echo "192.168.10.68 client" >> /etc/hosts
cat /etc/hosts

操作系统

IP

主机名

磁盘

挂载目录

Centos7

192.168.10.51

node1

/dev/sdb(3GB),/dev/sdc(4GB),/dev/sdd(5GB),/dev/sde(6G)

/b3 /ce/ d5 /e6

Centos7

192.168.10.52

node2

/dev/sdb(3GB),/dev/sdc(4GB),/dev/sdd(5GB),/dev/sde(6G)

/b3 /ce/ d5 /e6

Centos7

192.168.10.53

node3

/dev/sdb(3GB),/dev/sdc(4GB),/dev/sdd(5GB),/dev/sde(6G)

/b3 /ce/ d5 /e6

Centos7

192.168.10.54

node4

/dev/sdb(3GB),/dev/sdc(4GB),/dev/sdd(5GB),/dev/sde(6G)

/b3 /ce/ d5 /e6

Centos7

192.168.10.68

client

 修改主机名
#在四个节点执行
hostnamectl set-hostname node1-4
添加hosts主机解析
echo "192.168.10.51 node1" >> /etc/hosts
echo "192.168.10.52 node2" >> /etc/hosts
echo "192.168.10.53 node3" >> /etc/hosts
echo "192.168.10.54 node4" >> /etc/hosts
echo "192.168.10.68 client" >> /etc/hosts
cat /etc/hosts
挂载磁盘(在所有node节点操作)
fdisk /dev/sdb
mkfs.xfs /dev/sdb1
mkdiir /b3
mount /dev/sdb1 /b3
下载启动gfs(在所有node节点操作)
yum -y install centos-release-gluster
yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
systemctl start glusterd.service
systemctl enable glusterd.service
加入集群(在node1节点操作)
gluster peer probe node1
gluster peer probe node2
gluster peer probe node3
gluster peer probe node4
创建分布式卷
gluster volume create dis-volume node1:/e6 node2:/e6 force
#创建分布式卷,名字为dis-volume,使用node中的e6,和node2的e6
gluster volume info dis-volume
#查看分布式卷
gluster volume start dis-volume
#启动分布式卷
在客户机测试
yum -y install centos-release-gluster
yum -y install glusterfs glusterfs-fuse
mkdir -p /test/dis
mount -t glusterfs  node1:dis-volume /test/dis/
df -Th
node1:dis-volume        fuse.glusterfs   12G  188M   12G    2% /test/dis
创建分布式复制卷
gluster volume create dis-dist replica 2 transport tcp node1:/c4 node2:/c4 node3:/c4 node4:/c4 force
gluster volume start dis-dist
gluster volume info dis-dist
在客户机测试
mkdir -p /test/dis-rep
mount -t glusterfs node1:dis-dist /test/dis-rep
df -Th
node1:dis-dist          fuse.glusterfs  8.0G  147M  7.9G    2% /test/dis-rep
创建复制卷
gluster volume create rep-volume replica 2 node3:/d5 node4:/d5 force
gluster volume start rep-volume
gluster volume info rep-volume
在客户机进行测试
mkdir -p /test/rep
mount -t glusterfs node1:rep-volume /test/rep
df -Th
node1:rep-volume        fuse.glusterfs  5.0G   84M  5.0G    2% /test/rep

永久挂载

echo 'node1:rep-volume /test/rep glusterfs defaults,_netdev 0 0' >> /etc/fstab

node1:rep-volume
: 这部分指定了 GlusterFS 卷的服务器地址(node1)和卷名称(rep-volume)。这意味着您的 GlusterFS 卷是在名为 node1 的主机上,卷名为 rep-volume。
/test/rep
: 这是您在本地(即挂载该 GlusterFS 卷的客户端)想要挂载该卷的目录。挂载后,您可以通过访问 /test/rep 来查看和操作 GlusterFS 卷中的文件和目录。
glusterfs
: 指定了文件系统的类型为 GlusterFS,这是让系统知道应该如何处理这个挂载点。
defaults,_netdev
: 这些是挂载选项。
defaults 使用默认的挂载选项,这些选项通常包括 rw(读写权限)、suid、dev、exec、auto、nouser 和 async。
_netdev 是一个特殊选项,告诉系统这个设备需要网络连接,并且在网络初始化之后再进行挂载。这对于网络文件系统如 GlusterFS 是非常重要的,确保系统不会在启动过程中因网络尚未就绪而挂载失败。
0 0
: 最后的两个数字分别代表 dump 和 pass。0 表示不进行磁盘备份(dump)以及在系统fsck(文件系统检查)时不检查此文件系统(pass)。

相关推荐

  1. GlusterFS分布式文件系统

    2024-06-09 09:40:01       36 阅读
  2. Linux——GlusterFS分布式文件系统群集

    2024-06-09 09:40:01       30 阅读
  3. GlusterFS分布式文件系统群集

    2024-06-09 09:40:01       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-09 09:40:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-09 09:40:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-09 09:40:01       87 阅读
  4. Python语言-面向对象

    2024-06-09 09:40:01       96 阅读

热门阅读

  1. 821. 字符的最短距离

    2024-06-09 09:40:01       31 阅读
  2. 【力扣】 两个字符串的最小ASCII删除和

    2024-06-09 09:40:01       36 阅读
  3. git checkout file 撤销对该文件的所有修改

    2024-06-09 09:40:01       33 阅读
  4. echarts-for-react

    2024-06-09 09:40:01       37 阅读
  5. C# WPF入门学习主线篇(十一)—— 布局管理

    2024-06-09 09:40:01       30 阅读
  6. scss是什么安装使⽤的步骤

    2024-06-09 09:40:01       31 阅读
  7. openresty安装并使用lua进行业务逻辑处理

    2024-06-09 09:40:01       34 阅读
  8. C语言学习笔记 库文件

    2024-06-09 09:40:01       30 阅读
  9. 使用uniapp的canvas制作签名组件

    2024-06-09 09:40:01       33 阅读