GlusterFs分布式文件系统(带操作)
它具有强大的横向扩展能力,能够通过添加更多的存储节点来提升存储容量和性能。它采用了弹性哈希算法(EC),摒弃了传统的元数据服务器,从而实现了真正的分布式存储架构。这使得 GlusterFs 在处理大规模数据存储时表现出色,广泛应用于云计算、大数据存储等领域。
目录
分布式复制卷(Distributed Replicate Volume)
分布式条带卷(Distributed Striped Volume)
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
更多推荐
所有评论(0)