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/sde1
 
Node2节点:node2/192.168.91.103		  磁盘: /dev/sdb1			挂载点: /data/sdb1
											/dev/sdc1					/data/sdc1
											/dev/sdd1					/data/sdd1
											/dev/sde1					/data/sde1
 
Node3节点:node3/192.168.91.104		  磁盘: /dev/sdb1			挂载点: /data/sdb1
											/dev/sdc1					/data/sdc1
											/dev/sdd1					/data/sdd1
											/dev/sde1					/data/sde1
 
Node4节点: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
do
   echo -e "n\np\n\n\n\nw\n" | fdisk /dev/$VAR &> /dev/null
   mkfs.xfs /dev/${VAR}"1" &> /dev/null
   mkdir -p /data/${VAR}"1" &> /dev/null
   echo "/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.bak

vim 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 node4

gluster 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-fz
 
Volume 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.bak

vim 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卷(分布式复制卷)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/530190.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SVM向量支持机

1.通俗理解 svm:support vector machine目标:利用超平面将两类数据分割开来,这个超平面就是我们要设计的对象 如何设计?我们设计之后会有间隔,间隔越大分类效果就越好;距离决策边界最近的点我们成为支持向…

40.Python从入门到精通—Python3 JSON 数据解析 Python3 日期和时间 什么是时间元组? 获取当前时间 获取格式化的时间

40.Python从入门到精通—Python3 JSON 数据解析 Python3 日期和时间 什么是时间元组? 获取当前时间 获取格式化的时间 Python3 JSON 数据解析Python3 日期和时间什么是时间元组?获取当前时间获取格式化的时间 Python3 JSON 数据解析 Python3 中可以使用…

使用MongoDB 构建AI:轻松应对从预测式AI到生成式AI

毫无疑问,如今从生成式AI (GenAI )中获益最大的,是那些早已运用预测式AI (Predictive AI )的组织。 2023年6月,麦肯锡在2023年6月发布的《生成式人工智能的经济潜力》研究中也得出了与此相同的结论。 原因主要有以下几点: 内部文…

顺序表(C语言实现)

什么是顺序表 顺序表和数组的区别 顺序表本质就是数组 结构体初阶进阶 系统化的学习-CSDN博客 简单解释一下,就像大家去吃饭,然后左边是苍蝇馆子,右边是修饰过的苍蝇馆子,但是那个好看的苍蝇馆子一看,这不行啊&a…

Harmony鸿蒙南向驱动开发-MIPI CSI

CSI(Camera Serial Interface)是由MIPI联盟下Camera工作组指定的接口标准。CSI-2是MIPI CSI第二版,主要由应用层、协议层、物理层组成,最大支持4通道数据传输、单线传输速度高达1Gb/s。 物理层支持HS(High Speed&…

kettle经验篇:取出一个字符串中的两个数值

项目场景 在一个数据清洗、同步的需求中;有一个要求是判断两个数值是否在正常范围内,并根据判断结果给出异常标记。但这两个数值是以XML的格式存储在Oracle的CLOB字段中,且在同一个XML节点中。该节点的内容如下: "OD: 17.4 mmHg O…

2024Peak码支付系统网站源码

系统简介 Peak码支付-是专为个人站长打造的聚合免签系统,拥有卓越的性能和丰富的功能。用全新轻量化的界面UI,让您可以更加方便快捷地解决知识付费和运营赞助的难题。同时,它基于高性能SpeedPHPLayuiPearAdmin架构,提供实时监控和…

https的配置和使用(以腾讯云为例)

1、注册域名 2、获取证书 3、下载证书 下载下来的证书所有格式 4、在服务器上下载nginx并配置 nginx的配置文件 如下 server {listen 80;listen 443 ssl;server_name delegate.letspiu.net.cn;ssl on; #开启ssl#指定证书位置ssl_certificate /etc/ss…

低代码ARM计算机在IIoT中的采集控制生产面板

工业4.0的大潮下工业物联网(IIoT)已成为推动制造业转型升级的重要动力。其中,低代码ARM嵌入式计算机凭借其出色的性能、灵活的配置以及高度集成化的特点,在工业设备远程监控、维护与诊断方面发挥着关键作用。 一、远程监控与维护 …

【配电网故障定位】基于二进制蝗虫优化算法的配电网故障定位 12节点配电系统故障定位【Matlab代码#75】

文章目录 【获取资源请见文章第5节:资源获取】1. 配电网故障定位2. 二进制蝗虫优化算法3. 部分代码展示4. 仿真结果展示5. 资源获取 【获取资源请见文章第5节:资源获取】 1. 配电网故障定位 配电系统故障定位,即在配电网络发生故障的时候&am…

ArcGIS Server 10发布要素服务时遇到的数据库注册问题总结(一)

工作环境: Windows 7 64 位旗舰版 ArcGIS Server 10.1 ArcGIS Desktop 10.1 IIS 7.0 开始的时候以为10.1发布要素服务和10.0一样,需要安装ArcSDE,后来查阅资料发现不需要,数据库直连方式就可以了。 首先我来说一下发布要素服…

用Wireshark工具对gRPC接口进行本地抓包

前言: 本人一名敲代码的程序员,突然领导安排研究gRPC接口,并且抓包分析, 抓包工具试了Charles、mitmproxy都不行,浪费很多时间,最后使用Wireshark工具对本地启动的gRPC接口成功抓包,关于安装W…

AI智能客服机器人在医疗健康行业中的应用

随着科技的飞速发展,AI智能客服机器人已经逐渐渗透到我们生活的各个领域,而在医疗健康行业中,它的应用更是为人们带来了很多便利。那么,AI智能客服机器人在医疗健康行业中的应用是怎么样的呢?今天,我们就来…

stack和queue模拟实现

前言 上一期我们介绍了stack和queue的使用,本期我们来模拟实现一下他们! 本期内容介绍 容器适配器 deque介绍 为什么stack和queue的底层选择deque为默认容器? stack 模拟现实 queue 模拟实现 什么是容器适配器? 适配器是一种设…

Flutter之TabBar篇

总结了一下项目中用到的几种TabBar,针对不同的样式,有采用系统提供的,也有三方插件提供的,也有自定义的,效果如下(后续如果遇到新的样式,会不间断地记录更新,避免重复造轮子…&#…

大创项目推荐 深度学习 机器视觉 车位识别车道线检测 - python opencv

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习 机器视觉 车位识别车道线检测 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) …

Vue第三方组件使用

文章目录 一、组件传值二、elementui组件使用三、fontawesome图标 一、组件传值 1、父组件与孩子组件传值 在孩子组件中定义props属性,里面定义好用于接收父亲数据的变量。 孩子组件是Movie Movie.vue。注意看在Movie组件里面有props对象中的title和rating属性用…

2024 抖音欢笑中国年(三):编辑器技巧与实践

前言 本次春节活动中,我们大部分场景使用内部的 SAR Creator互动方案来实现。 SAR Creator 是一款基于 TypeScript 的高性能、轻量化的互动解决方案,目前支持了Web和字节内部跨端框架平台,服务于字节内部的各种互动业务,包括但不限…

C++string类的实现

string类 string不属于STL,早于STL出现 看文档 C非官网(建议用这个) C官网 文章目录 string类一.为什么学习string类?1.C语言中的字符串2. 两个面试题(暂不做讲解) 二.标准库中的string类1. string类(了解)2. string类的常用接口说明(注意下面我只讲解…

echarts 如何设置(dataZoom)多个图形的数据区域一起联动缩放响应

数据区域联动缩放需要用到 dataZoom 的专属事件 dispatchAction 实现多个数据区域联动缩放功能 <div style"width:100%;height:320px;" id"test01"></div> <div style"width:100%;height:320px;" id"test02"></…