GFS部署实验

2024-04-10 09:20
文章标签 部署 实验 gfs

本文主要是介绍GFS部署实验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1、部署环境

​编辑

2、更改节点名称

3、准备环境

4、磁盘分区,并挂载

5. 做主机映射--/etc/hosts/

6. 复制脚本文件

7. 执行脚本完成分区

8. 安装客户端软件

1. 安装解压源包

 2. 创建gfs

3. 安装 gfs

4. 开启服务

9、 添加节点到存储信任池中

10、创建卷

1. 规划创建卷

2.创建分布式卷

3.创建条带卷

4. 创建复制卷

5.创建分布式条带卷

6.创建分布式复制卷

7.查看卷列表

11、部署客户端--7-1

1.复制文件并解压

2. 建立元数据

3.安装 

4.创建挂载目录

5. 给客户端做主机名映射

6.挂载Gluster文件系统

12、测试Gluster文件系统

1.在5个卷中写入文件

13、查看文件分布

1. 查看分布式文件分布

2.查看条带卷文件分布

3.查看复制卷分布

4.查看分布式条带卷分布

5.查看分布式复制卷分布

14.破坏性测试

1.挂起node2

15.客户端查看破坏结果

1.查看分布式数据

2.查看条带卷数据

3.查看复制卷数据

4.查看分布式条带卷数据

5.查看分布式复制卷数据

16、总结

1.查看GlusterFS卷

2.查看所有卷的信息

3.查看所有卷的状态

4.停止一个卷

5.删除一个卷,注意:删除卷时,需要先停止卷,且信任池中不能有主机处于宕机状态,否则删除不成功

6.设置卷的访问控制



1、部署环境

Node1节点:node1/192.168.91.102		  磁盘: /dev/sdb1			挂载点: /data/sdb1/dev/sdc1					/data/sdc1/dev/sdd1					/data/sdd1/dev/sde1					/data/sde1Node2节点:node2/192.168.91.103		  磁盘: /dev/sdb1			挂载点: /data/sdb1/dev/sdc1					/data/sdc1/dev/sdd1					/data/sdd1/dev/sde1					/data/sde1Node3节点:node3/192.168.91.104		  磁盘: /dev/sdb1			挂载点: /data/sdb1/dev/sdc1					/data/sdc1/dev/sdd1					/data/sdd1/dev/sde1					/data/sde1Node4节点:node4/192.168.91.105   	  磁盘: /dev/sdb1			挂载点: /data/sdb1/dev/sdc1					/data/sdc1/dev/sdd1					/data/sdd1/dev/sde1					/data/sde1=====客户端节点:192.168.91.100=====

给四个服务器,每台添加4块硬盘 

[root@localhost ~]# ls /dev/sd*

2、更改节点名称

node1(192.168.91.102)

[root@localhost ~] # hostnamectl set-hostname node1
[root@localhost ~] # bash

node2(192.168.91.103)

[root@localhost ~] # hostnamectl set-hostname node2
[root@localhost ~] # bash

node3(192.168.91.104)

[root@localhost ~] # hostnamectl set-hostname node3
[root@localhost ~] # bash

node4(192.168.91.105)

[root@localhost ~] # hostnamectl set-hostname node4
[root@localhost ~] # bash

3、准备环境

关闭防火墙和selinux

[root@node1 ~]# systemctl stop firewalld
[root@node1 ~]# setenforce 0

4、磁盘分区,并挂载

vim /opt/fdisk.sh
#!/bin/bash
NEWDEV=`ls /dev/sd* | grep -o 'sd[b-z]' | uniq`
for VAR in $NEWDEV
doecho -e "n\np\n\n\n\nw\n" | fdisk /dev/$VAR &> /dev/nullmkfs.xfs /dev/${VAR}"1" &> /dev/nullmkdir -p /data/${VAR}"1" &> /dev/nullecho "/dev/${VAR}"1" /data/${VAR}"1" xfs defaults 0 0" >> /etc/fstab
done
mount -a &> /dev/null

chmod +x /opt/fdisk.sh

5. 做主机映射--/etc/hosts/

echo "192.168.91.102 node1" >> /etc/hosts
echo "192.168.91.103 node2" >> /etc/hosts
echo "192.168.91.104 node3" >> /etc/hosts
echo "192.168.91.105 node4" >> /etc/hosts

6. 复制脚本文件

[root@node1 opt]# scp fdisk.sh node2:/opt/
[root@node1 opt]# scp fdisk.sh node3:/opt/
[root@node1 opt]# scp fdisk.sh node4:/opt/

7. 执行脚本完成分区

8. 安装客户端软件

一定要先解压源包,才能成功创建gfs

1. 安装解压源包

 2. 创建gfs

四台node服务器都要创建

cd /etc/yum.repos.d/
mkdir repo.bak
mv *.repo repo.bakvim glfs.repo[glfs]
name=glfs
baseurl=file:///opt/gfsrepo
gpgcheck=0
enabled=1

yum clean all && yum makecache

3. 安装 gfs

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 -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

4. 开启服务

systemctl start glusterd.service 
systemctl enable glusterd.service
systemctl status glusterd.service

9、 添加节点到存储信任池中

#只要在一台Node节点上添加其它节点即可

gluster peer probe node2
gluster peer probe node3
gluster peer probe node4gluster peer status

在7-2一台主机上添加信任,其他主机会自动添加

10、创建卷

1. 规划创建卷

============================根据以下规划创建卷=============================
卷名称 				卷类型				Brick
fenbushi	 		分布式卷			node1(/data/sdb1)、node2(/data/sdb1)
tiaodai	            条带卷			node1(/data/sdc1)、node2(/data/sdc1)
fuzhi			    复制卷			node3(/data/sdb1)、node4(/data/sdb1)
fbs-td			    分布式条带卷		node1(/data/sdd1)、node2(/data/sdd1)、node3(/data/sdd1)、node4(/data/sdd1)
fbs-fz				分布式复制卷		node1(/data/sde1)、node2(/data/sde1)、node3(/data/sde1)、node4(/data/sde1)

2.创建分布式卷

#创建分布式卷,没有指定类型,默认创建的是分布式卷[root@node1 ~]# gluster volume create fenbushi node1:/data/sdb1 node2:/data/sdb1 force
volume create: fenbushi: success: please start the volume to access data
[root@node1 ~]# gluster volume list
fenbushi
[root@node1 ~]# gluster volume start fenbushi 
volume start: fenbushi: success
[root@node1 ~]# gluster volume info fenbushi Volume Name: fenbushi
Type: Distribute
Volume ID: 0438fb36-e99c-4845-a702-18202498660a
Status: Started
Snapshot Count: 0
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: node1:/data/sdb1
Brick2: node2:/data/sdb1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
[root@node1 ~]# 

3.创建条带卷

[root@node1 ~]# gluster volume create tiaodai stripe 2 node1:/data/sdc1 node2:/data/sdc1 force
volume create: tiaodai: success: please start the volume to access data
[root@node1 ~]# gluster volume start tiaodai 
volume start: tiaodai: success
[root@node1 ~]# gluster volume info tiaodai Volume Name: tiaodai
Type: Stripe
Volume ID: f64b6b6a-dadd-427f-8806-6e7dff448b66
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: node1:/data/sdc1
Brick2: node2:/data/sdc1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
[root@node1 ~]# 

4. 创建复制卷

[root@node1 ~]# gluster volume create fuzhi replica 2 node3:/data/sdb1 node4:/data/sdb1 force
volume create: fuzhi: success: please start the volume to access data
[root@node1 ~]# gluster volume start fuzhi 
volume start: fuzhi: success
[root@node1 ~]# gluster volume info fuzhi Volume Name: fuzhi
Type: Replicate
Volume ID: 3cdffb32-a007-41c6-8e19-dbc17878ea12
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: node3:/data/sdb1
Brick2: node4:/data/sdb1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
[root@node1 ~]# 

5.创建分布式条带卷

[root@node1 ~]# gluster volume create fbs-td stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
volume create: fbs-td: success: please start the volume to access data
[root@node1 ~]# gluster volume start fbs-td
volume start: fbs-td: success
[root@node1 ~]# gluster volume info fbs-td Volume Name: fbs-td
Type: Distributed-Stripe
Volume ID: b389f9b9-12bf-4ffd-a05a-d4a126a37cb4
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: node1:/data/sdd1
Brick2: node2:/data/sdd1
Brick3: node3:/data/sdd1
Brick4: node4:/data/sdd1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
[root@node1 ~]# 

6.创建分布式复制卷

[root@node1 ~]# gluster volume create fbs-fz replica 2 node1:/data/sde1 node2:/data/sde1 node3:/data/sde1 node4:/data/sde1 force
volume create: fbs-fz: success: please start the volume to access data
[root@node1 ~]# gluster volume start fbs-fz
volume start: fbs-fz: success
[root@node1 ~]# gluster volume info fbs-fzVolume Name: fbs-fz
Type: Distributed-Replicate
Volume ID: f6913316-f886-4f4b-8e53-94feaf448587
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: node1:/data/sde1
Brick2: node2:/data/sde1
Brick3: node3:/data/sde1
Brick4: node4:/data/sde1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
[root@node1 ~]# 

7.查看卷列表

gluster volume list

11、部署客户端--7-1

1.复制文件并解压

2. 建立元数据

cd /etc/yum.repos.d/
mkdir repo.bak
mv *.repo repo.bakvim glfs.repo[glfs]
name=glfs
baseurl=file:///opt/gfsrepo
gpgcheck=0
enabled=1

[root@localhost opt]# yum clean all && yum makecache

3.安装 

yum -y install glusterfs glusterfs-fuse

4.创建挂载目录

mkdir -p /test/{fenbushi,tiaodai,fbs-td,fuzhi,fbs-fz}

5. 给客户端做主机名映射

192.168.91.102 node1
192.168.91.103 node2
192.168.91.104 node3
192.168.91.105 node4

6.挂载Gluster文件系统

#临时挂载

[root@localhost opt]# mount.glusterfs node1:fenbushi /test/fenbushi/
[root@localhost opt]# mount.glusterfs node1:tiaodai /test/tiaodai/
[root@localhost opt]# mount.glusterfs node1:fuzhi /test/fuzhi/
[root@localhost opt]# mount.glusterfs node1:fbs-td /test/fbs-td/
[root@localhost opt]# mount.glusterfs node1:fbs-fz /test/fbs-fz/

df   -h###查看挂载效果

12、测试Gluster文件系统

1.在5个卷中写入文件

cd /opt
dd if=/dev/zero of=/opt/demo1.log bs=1M count=40
dd if=/dev/zero of=/opt/demo2.log bs=1M count=40
dd if=/dev/zero of=/opt/demo3.log bs=1M count=40
dd if=/dev/zero of=/opt/demo4.log bs=1M count=40
dd if=/dev/zero of=/opt/demo5.log bs=1M count=40

[root@localhost opt]# cp /opt/demo* /test/fenbushi/
[root@localhost opt]# cp /opt/demo* /test/tiaodai/
[root@localhost opt]# cp /opt/demo* /test/fuzhi/
[root@localhost opt]# cp /opt/demo* /test/fbs-td/
[root@localhost opt]# cp /opt/demo* /test/fbs-fz/

13、查看文件分布

1. 查看分布式文件分布

没有数据分片

1.  因为我们之前做分布式卷的时候,指定就是node1和node2的sdb1磁盘

2.  所以我们查看文件分布的时候,要对应之前创建卷的时候的分布

2.查看条带卷文件分布

数据被分片

3.查看复制卷分布

数据备份了

4.查看分布式条带卷分布

数据被分布式存储;数据被分片

5.查看分布式复制卷分布

14.破坏性测试

1.挂起node2

15.客户端查看破坏结果

1.查看分布式数据

2.查看条带卷数据

3.查看复制卷数据

因为我们把复制卷坐在了node3和node4上

所以,我们把node4挂起

4.查看分布式条带卷数据

5.查看分布式复制卷数据

16、总结

##### 上述实验测试,凡是带复制数据,相比而言,数据比较安全 #####

#扩展其他的维护命令:

1.查看GlusterFS卷

gluster volume list 

2.查看所有卷的信息

gluster volume info

3.查看所有卷的状态

gluster volume status

4.停止一个卷

gluster volume stop dis-stripe

5.删除一个卷,注意:删除卷时,需要先停止卷,且信任池中不能有主机处于宕机状态,否则删除不成功

gluster volume delete dis-stripe

6.设置卷的访问控制

#仅拒绝
gluster volume set dis-rep auth.deny 192.168.80.100

#仅允许
gluster volume set dis-rep auth.allow 192.168.80.*      #设置192.168.80.0网段的所有IP地址都能访问dis-rep卷(分布式复制卷)

这篇关于GFS部署实验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/890665

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Linux部署中的文件大小写问题的解决方案

《Linux部署中的文件大小写问题的解决方案》在本地开发环境(Windows/macOS)一切正常,但部署到Linux服务器后出现模块加载错误,核心原因是Linux文件系统严格区分大小写,所以本文给大... 目录问题背景解决方案配置要求问题背景在本地开发环境(Windows/MACOS)一切正常,但部署到

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server