目录

GlusterFs 的卷类型及作用和优缺点

分布式卷(Distributed Volume)

复制卷(Replicate Volume)

条带卷(Striped Volume)

分布式复制卷(Distributed Replicate Volume)

分布式条带卷(Distributed Striped Volume)

前提准备:

操作步骤正式开始

在四台node节点上

10. 在客户端上安装客户端工具


GlusterFs 是一个开源的分布式文件系统,它具有强大的横向扩展能力,能够通过添加更多的存储节点来提升存储容量和性能。它采用了弹性哈希算法(EC),摒弃了传统的元数据服务器,从而实现了真正的分布式存储架构。这使得 GlusterFs 在处理大规模数据存储时表现出色,广泛应用于云计算、大数据存储等领域。

GlusterFs 的卷类型及作用和优缺点

分布式卷(Distributed Volume)

作用:将数据分布存储在多个存储节点上,通过在多个砖块(Brick,即存储节点上的一个目录)上进行数据条带化,提高存储容量。比如,当有多个磁盘时,数据会分散存储在这些磁盘上,而不是集中在一个磁盘。

优点

  • 简单易部署,能快速扩展存储容量,存储利用率高。
  • 单个节点故障不影响整体数据完整性,数据可用性高。

缺点

  • 没有数据冗余机制,一旦数据所在节点全部故障,数据丢失风险高。
  • 读写性能提升不明显,受限于单个节点性能。

复制卷(Replicate Volume)

作用:主要用于数据冗余备份。它会将数据同时复制到多个存储节点上,一般常见的是双副本或三副本。例如,在一个三副本的复制卷中,数据会在三个不同的存储节点上各保存一份。

优点

  • 数据可靠性极高,多个副本保障数据在节点故障时不丢失。
  • 读性能较好,可从多个副本读取数据,提高读取速度。

缺点

  • 存储成本高,存储空间利用率低,需为副本占用额外空间。
  • 写性能受影响,需同时写入多个副本,增加写入时间。

条带卷(Striped Volume)

作用:通过将数据分割成小块,并行存储在多个存储节点上,显著提升数据的读写性能。它就像多条车道并行行驶的高速公路,数据可以同时在多个节点上进行读写操作。

优点

  • 读写性能出色,适合处理大量读写请求,能快速响应。
  • 充分利用多节点资源,提升系统整体运行效率。

缺点

  • 数据容错性差,一旦有节点故障,数据完整性受影响,甚至丢失。
  • 扩容复杂,需重新规划条带化策略。

分布式复制卷(Distributed Replicate Volume)

作用:结合了分布式卷和复制卷的特点。既实现了数据在多个存储节点上的分布存储,又保证了数据的冗余备份。在提高存储容量的同时,确保数据的高可靠性。

优点

  • 兼顾存储容量扩展和数据高可靠性,适用于大规模存储场景。
  • 数据可用性和容错性强,应对节点故障能力出色。

缺点

  • 存储成本相对较高,存在副本占用空间。
  • 配置和管理相对复杂,运维难度增加。

分布式条带卷(Distributed Striped Volume)

作用:综合了分布式卷和条带卷的优势。不仅将数据分布存储在多个节点上,还通过条带化提高读写性能。适用于既需要高存储容量,又对读写性能有较高要求的场景。

优点

  • 存储容量和读写性能都得到显著提升,满足大型数据中心需求。
  • 横向扩展能力强,可通过添加节点持续提升性能和容量。

缺点

  • 数据容错性一般,节点故障可能导致数据丢失。
  • 运维难度较大,对技术人员要求高。

前提准备:

1. 准备五台centos,其中四台作为node节点,一台作为客户端

2. node1:192.168.180.110-添加四块硬盘

    node2:192.168.180.120-添加四块硬盘

    node3:192.168.180.130-添加三块硬盘

    node4:192.168.180.140-添加三块硬盘

主机名 IP 挂载磁盘 挂载目录
node1 192.168.180.110 /sdb,/sdc,/sdd,/sde /b3,/c4,/d5,/e6
node2 192.168.180.120 /sdb,/sdc,/sdd,/sde /b3,/c4,/d5,/e6
node3 192.168.180.130 /sdb,/sdc,/sdd /b3,/c4,/d5
node4 192.168.180.140 /sdb,/sdc,/sdd /b3,/c4,/d5

3. 关闭防火墙(所有)

setenforce 0 && systemctl stop firewalld && systemctl disable firewalld

操作步骤正式开始

在四台node节点上

1. 磁盘分区

#node1:
fdisk /dev/sdb
fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde

#node2:
fdisk /dev/sdb
fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde

#node3:
fdisk /dev/sdb
fdisk /dev/sdc
fdisk /dev/sdd

#node4:
fdisk /dev/sdb
fdisk /dev/sdc
fdisk /dev/sdd

2. 格式化分区

#node1:
mkfs.xfs /dev/sdb1
mkfs.xfs /dev/sdc1
mkfs.xfs /dev/sdd1
mkfs.xfs /dev/sde1

#node2:
mkfs.xfs /dev/sdb1
mkfs.xfs /dev/sdc1
mkfs.xfs /dev/sdd1
mkfs.xfs /dev/sde1

#node3:
mkfs.xfs /dev/sdb1
mkfs.xfs /dev/sdc1
mkfs.xfs /dev/sdd1

#node4:
mkfs.xfs /dev/sdb1
mkfs.xfs /dev/sdc1
mkfs.xfs /dev/sdd1

3. 创建挂载目录以及挂载分区

#node1:
mkdir /b3
mkdir /c4
mkdir /d5
mkdir /e6
mount /dev/sdb1 /b3
mount /dev/sdc1 /c4
mount /dev/sdd1 /d5
mount /dev/sde1 /e6

#node2:
mkdir /b3
mkdir /c4
mkdir /d5
mkdir /e6
mount /dev/sdb1 /b3
mount /dev/sdc1 /c4
mount /dev/sdd1 /d5
mount /dev/sde1 /e6

#node3:
mkdir /b3
mkdir /c4
mkdir /d5
mount /dev/sdb1 /b3
mount /dev/sdc1 /c4
mount /dev/sdd1 /d5

#node4:
mkdir /b3
mkdir /c4
mkdir /d5
mount /dev/sdb1 /b3
mount /dev/sdc1 /c4
mount /dev/sdd1 /d5

#查看挂载情况
df -lh

4. 修改hosts文件以及主机名

#所有node节点
vim /etc/hosts
192.168.180.120 node1
192.168.180.130 node2
192.168.180.140 node3
192.168.180.150 node4

#节点分别修改
hostnamectl set-hostname node1 && bash
hostnamectl set-hostname node2 && bash
hostnamectl set-hostname node3 && bash
hostnamectl set-hostname node4 && bash

5. 安装glusterfs软件

#所有节点,使用本地yum源
yum install -y createrepo

#上传软件包并解压
yum install -y unzip
unzip gfsrepo.zip
mv gfsrepo /

createrepo /gfsrepo

6. 🚨注意!这一步很重要,删除原有的包,并安装依赖以及软件,一定得是本地yum源

#删除原有的包
yum remove glusterfs-api.x86_64 glusterfs-cli.x86_64 glusterfs.x86_64 glusterfs-libs.x86_64 glusterfs-client-xlators.x86_64 glusterfs-fuse.x86_64 -y

#安装依赖
yum install -y glusterfs-client-xlators glusterfs-libs glusterfs glusterfs-fuse glusterfs-libs

#安装软件
yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

注意!会有安装不成功的情况发生,不过不用管,我们还是构建glusterfs-yum源去下载,至于为什么要多出这一段多余的步骤,我也不清楚,但不这样做的话下载不成功。

7. 🚨这一步也很重要,构建glusterfs-yum源

vim /etc/yum.repos.d/gfs.repo
[gluster]
name=gluster
enabled=1
gpgcheck=0
baseurl=file:///gfsrepo

#刷新
yum clean all

#重新删除安装
yum remove glusterfs-api.x86_64 glusterfs-cli.x86_64 glusterfs.x86_64 glusterfs-libs.x86_64 glusterfs-client-xlators.x86_64 glusterfs-fuse.x86_64 -y

yum install -y glusterfs-client-xlators glusterfs-libs glusterfs glusterfs-fuse glusterfs-libs

yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

#安装成功后,开启软件
systemctl enable glusterd
systemctl start glusterd

8. 在node1上添加其他节点

gluster peer probe node1
gluster peer probe node2
gluster peer probe node3
gluster peer probe node4

#查看群集状态
gluster peer status

9. 创建卷(在node1上)

#创建分布式卷
gluster volume create dis-volume node1:/e6 node2:/e6 force
gluster  volume info dis-volume
gluster volume start dis-volume

#创建条带卷
gluster volume create stripe-volume stripe 2 node1:/d5 node2:/d5 force
gluster  volume info stripe-volume
gluster volume start stripe-volume

#创建复制卷
gluster volume create rep-volume replica 2 node3:/d5 node4:/d5 force
gluster  volume info rep-volume
gluster volume start rep-volume

#创建分布式条带卷
gluster volume create dis-stripe stripe 2 node1:/b3 node2:/b3 node3:/b3 node4:/b3 force
gluster  volume info dis-stripe
gluster volume start dis-stripe

#创建分布式复制卷
gluster volume create dis-rep replica 2 node1:/c4 node2:/c4 node3:/c4 node4:/c4 force
gluster  volume info dis-rep
gluster volume start dis-rep

只要看到success就是创建成功!⭐


10. 在客户端上安装客户端工具

#使用本地yum源下载
yum -y install glusterfs glusterfs-fuse

11. 创建挂载点

mkdir -p /test/{dis,stripe,rep,dis_and_stripe,dis_and_rep}

12. 修改hosts文件

vim /etc/hosts
192.168.180.120 node1
192.168.180.130 node2
192.168.180.140 node3
192.168.180.150 node4

13. 挂载gluster文件系统

mount -t glusterfs node1:dis-volume /test/dis
mount -t glusterfs node1:stripe-volume /test/stripe
mount -t glusterfs node1:rep-volume /test/rep
mount -t glusterfs node1:dis-stripe /test/dis_and_stripe
mount -t glusterfs node1:dis-rep /test/dis_and_rep
Logo

更多推荐