部署 GlusterFS 群集

目录

一、GFS部署

1.1.环境

1.2.更改节点名称

1.3.节点进行磁盘挂载,安装本地源 

1.4.添加节点创建集群 

1.5.根据规划创建卷  

1.6. 部署gluster客户端 

1.7. 破坏性测试 

挂起 node2 节点或者关闭glusterd服务来模拟故障

复制卷,在node3和node4上的,关闭node4


一、GFS部署

1.1.环境


Node1节点:node1/192.168.190.101		  磁盘: /dev/sdb1			挂载点: /data/sdb1
											/dev/sdc1					/data/sdc1
											/dev/sdd1					/data/sdd1
											/dev/sde1					/data/sde1
 
Node2节点:node2/192.168.190.105		  磁盘: /dev/sdb1			挂载点: /data/sdb1
											/dev/sdc1					/data/sdc1
											/dev/sdd1					/data/sdd1
											/dev/sde1					/data/sde1
 
Node3节点:node3/192.168.190.103		  磁盘: /dev/sdb1			挂载点: /data/sdb1
											/dev/sdc1					/data/sdc1
											/dev/sdd1					/data/sdd1
											/dev/sde1					/data/sde1
 
Node4节点:node4/192.168.190.104   	  磁盘: /dev/sdb1			挂载点: /data/sdb1
											/dev/sdc1					/data/sdc1
											/dev/sdd1					/data/sdd1
											/dev/sde1					/data/sde1
 
=====客户端节点:192.168.190.102=====

1.2.更改节点名称

 hostnamectl set-hostname node1
 bash

hostnamectl set-hostname node2
 bash

hostnamectl set-hostname node3
 bash

hostnamectl set-hostname node4
 bash

1.3.节点进行磁盘挂载,安装本地源 

1.关闭防火墙
[root@node1 ~] # systemctl stop firewalld
[root@node1 ~] # setenforce 0
 
2.磁盘分区,并挂载
[root@node1 ~] # 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
 
:wq
 
[root@node1 ~] # chmod +x /opt/fdisk.sh
[root@node1 ~] # cd /opt/
[root@node1 /opt] # ./fdisk.sh
 
3.修改主机名,配置/etc/hosts文件
[root@node1 /opt] # echo "192.168.190.101  node1" >> /etc/hosts
[root@node1 /opt] # echo "192.168.190.105 node2" >> /etc/hosts
[root@node1 /opt] # echo "192.168.190.103 node3" >> /etc/hosts
[root@node1 /opt] # echo "192.168.190.104 node4" >> /etc/hosts
[root@node1 /opt] # ls
fdisk.sh  rh
[root@node1 /opt] # rz -E
rz waiting to receive.
[root@node1 /opt] # ls
fdisk.sh  gfsrepo.zip  rh
[root@node1 /opt] # unzip gfsrepo.zip 

4. 安装、启动GlusterFS(所有node节点上操作) 
[root@node1 /opt] # cd /etc/yum.repos.d/
[root@node1 /etc/yum.repos.d] # ls
local.repo  repos.bak
[root@node1 /etc/yum.repos.d] # mv * repos.bak/
[root@node1 /etc/yum.repos.d] # ls
repos.bak
[root@node1 /etc/yum.repos.d] # vim glfs.repo
 
[glfs]
name=glfs
baseurl=file:///opt/gfsrepo
gpgcheck=0
enabled=1
 
:wq
 
[root@node1 /etc/yum.repos.d] # yum clean all && yum makecache
已加载插件:fastestmirror, langpacks
正在清理软件源: glfs
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
已加载插件:fastestmirror, langpacks
glfs                                                                  | 2.9 kB  00:00:00     
(1/3): glfs/filelists_db                                              |  62 kB  00:00:00     
(2/3): glfs/other_db                                                  |  46 kB  00:00:00     
(3/3): glfs/primary_db                                                |  92 kB  00:00:00     
Determining fastest mirrors
元数据缓存已建立
 
[root@node1 /etc/yum.repos.d] # yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
 
[root@node1 /etc/yum.repos.d] # systemctl start glusterd.service 
[root@node1 /etc/yum.repos.d] # systemctl enable glusterd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/glusterd.service to /usr/lib/systemd/system/glusterd.service.
 
[root@node1 /etc/yum.repos.d] # systemctl status glusterd.service
● glusterd.service - GlusterFS, a clustered file-system server
   Loaded: loaded (/usr/lib/systemd/system/glusterd.service; enabled; vendor preset: disabled)
   Active: active (running) since 二 2021-03-02 19:45:10 CST; 764ms ago
 Main PID: 51664 (glusterd)
   CGroup: /system.slice/glusterd.service
           └─51664 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO
 

 

 

1.4.添加节点创建集群 

添加节点到存储信任池中(仅需在一个节点上操作,我这里依旧在node1节点上操作)

[root@node1 ~] # gluster peer probe node1
peer probe: success. Probe on localhost not needed
[root@node1 ~] # gluster peer probe node2
peer probe: success. 
[root@node1 ~] # gluster peer probe node3
peer probe: success. 
[root@node1 ~] # gluster peer probe node4
peer probe: success. 
 
[root@node1 ~] # gluster peer status
Number of Peers: 3

Hostname: node2
Uuid: af72a77e-7e11-457d-9706-76d467bd583c
State: Peer in Cluster (Connected)

Hostname: node3
Uuid: b9734bc8-f293-4705-9363-d4802149f8a5
State: Peer in Cluster (Connected)

Hostname: node4
Uuid: ad7032d2-774f-4d7c-b480-43ddf299ff1a
State: Peer in Cluster (Connected)

1.5.根据规划创建卷  

创建分布式卷
#创建分布式卷,没有指定类型,默认创建的是分布式卷
gluster volume create fenbushi node1:/data/sdb1 node2:/data/sdb1 force

[root@node1 yum.repos.d]#gluster volume create fenbushi node1:/data/sdb1 node2:/data/sdb1 force
volume create: fenbushi: success: please start the volume to access data
[root@node1 yum.repos.d]#gluster volume list
fenbushi
[root@node1 yum.repos.d]#gluster volume start fenbushi
volume start: fenbushi: success
[root@node1 yum.repos.d]#gluster volume info fenbushi 
 
Volume Name: fenbushi
Type: Distribute
Volume ID: 1c0a63e6-4da6-4d99-885d-670c613b35b2
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

创建条带卷
#指定类型为 stripe,数值为 2,且后面跟了 2 个 Brick Server,所以创建的是条带卷

[root@node1 ~]#gluster volume create tiaodaijun stripe 2 node1:/data/sdc1 node2:/data/sdc1 forcevolume create: tiaodaijun: success: please start the volume to access data
[root@node1 ~]#gluster volume list 
fenbushi
tiaodaijun
[root@node1 ~]#gluster volume start tiaodaijun 
volume start: tiaodaijun: success
[root@node1 ~]#gluster volume info tiaodaijun 
 
Volume Name: tiaodaijun
Type: Stripe
Volume ID: 0f6aae69-17d3-4057-b540-64c077283e0d
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

 

创建复制卷
#指定类型为 replica,数值为 2,且后面跟了 2 个 Brick Server,所以创建的是复制卷

[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 list 
fenbushi
fuzhi
tiaodaijun
[root@node1 ~]#gluster volume start fuzhi 
volume start: fuzhi: success
[root@node1 ~]#gluster volume list fuzhi
fenbushi
fuzhi
tiaodaijun
[root@node1 ~]#gluster volume info fuzhi
 
Volume Name: fuzhi
Type: Replicate
Volume ID: 2b934144-45a5-4978-8724-2580f7696f55
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

 

创建分布式条带卷
#指定类型为 stripe,数值为 2,而且后面跟了 4 个 Brick Server,是 2 的两倍,所以创建的是分布式条带卷

[root@node1 ~]#gluster volume create fenbushi-tiaodai stripe 2 node1:/data/sdd1/ node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
volume create: fenbushi-tiaodai: success: please start the volume to access data
[root@node1 ~]#gluster volume list 
fenbushi
fenbushi-tiaodai
fuzhi
tiaodaijun
[root@node1 ~]#gluster volume start fenbushi-tiaodai 
volume start: fenbushi-tiaodai: success
[root@node1 ~]#gluster volume info fenbushi-tiaodai 
 
Volume Name: fenbushi-tiaodai
Type: Distributed-Stripe
Volume ID: ba04645b-86e7-419f-b5fa-ab6569958f22
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

 

创建分布式复制卷
指定类型为 replica,数值为 2,而且后面跟了 4 个 Brick Server,是 2 的两倍,所以创建的是分布式复制卷

[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 list 
fbs-fz
fenbushi
fenbushi-tiaodai
fuzhi
tiaodaijun
[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: 2c539124-02dc-42e8-98e6-9eccc735d95d
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

 

1.6. 部署gluster客户端 

部署Gluster客户端(192.168.190.102)

1.安装客户端软件

[root@promote ~]#systemctl stop firewalld
[root@promote ~]#setenforce 0
 
[root@promote ~]#cd /opt
[root@promote opt]#ls
rh
[root@promote opt]#rz -E
rz waiting to receive.
[root@promote opt]#ls
gfsrepo.zip  rh
[root@promote opt]#unzip gfsrepo.zip 
 
[root@promote opt]#cd /etc/yum.repos.d/
[root@promote yum.repos.d]#ls
local.repo  repos.bak
[root@promote yum.repos.d]#mv *.repo repos.bak/
[root@promote yum.repos.d]#ls
repos.bak
[root@promote yum.repos.d]#vim glfs.repo
 
[glfs]
name=glfs
baseurl=file:///opt/gfsrepo
gpgcheck=0
enabled=1


[root@promote yum.repos.d]#yum clean all && yum makecache
 
[root@promote yum.repos.d]#yum -y install glusterfs glusterfs-fuse

2.创建挂载目录

[root@promote yum.repos.d]# mkdir -p /test/{fengbushi,fenbushi-tiaodai,fbs-fz,tiaodaijun,fuzhi}
[root@localhost test]# ls
fbs-fz            fengbushi  tiaodaijun   fenbushi-tiaodai  fuzhi

3.配置 /etc/hosts 文件

[root@localhost test]# echo "192.168.190.101 node1" >> /etc/hosts
[root@localhost test]# echo "192.168.190.105 node2" >> /etc/hosts
[root@localhost test]# echo "192.168.190.103 node3" >> /etc/hosts
[root@localhost test]# echo "192.168.190.104 node4" >> /etc/hosts

4.挂载 Gluster 文件系统
#临时挂载

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

[root@localhost test]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   50G  3.7G   47G    8% /
devtmpfs                 897M     0  897M    0% /dev
tmpfs                    912M     0  912M    0% /dev/shm
tmpfs                    912M   26M  887M    3% /run
tmpfs                    912M     0  912M    0% /sys/fs/cgroup
/dev/sda1                5.0G  179M  4.9G    4% /boot
tmpfs                    183M  4.0K  183M    1% /run/user/42
tmpfs                    183M   48K  183M    1% /run/user/0
node1:fbs-fz              40G   65M   40G    1% /test/fbs-fz
node1:tiaodaijun          40G   65M   40G    1% /test/tiaodaijun
node1:fuzhi               20G   33M   20G    1% /test/fuzhi
node1:fenbushi-tiaodai    80G  130M   80G    1% /test/fenbushi-tiaodai
node1:fenbushi            40G   65M   40G    1% /test/fengbushi

 

 1.7.测试 Gluster 文件系统

1.卷中写入文件,客户端操作

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

ls -lh /opt

 cp /opt/demo* /test/fengbushi/
 cp /opt/demo* /test/fenbushi-tiaodai/
 cp /opt/demo* /test/fuzhi/
 cp /opt/demo* /test/fbs-fz/
 cp /opt/demo* /test/tiaodaijun/

 

查看分布式文件分布 

 

 查看条带卷文件分布

查看复制卷分布

查看分布式条带卷分布 

查看分布式复制卷分布 

1.7. 破坏性测试 

挂起 node2 节点或者关闭glusterd服务来模拟故障

[root@node2 ~]# systemctl stop glusterd.service

 

条带卷,无法访问,不具备冗余 

复制卷,在node3和node4上的,关闭node4

[root@node4 ~]#init 0
客户端,仍然存在

 

分布式复制卷,具有冗余

带有复制数据的,数据都比较安全  

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

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

相关文章

基于springboot+vue+Mysql的药品商超管理系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

c++ 谷歌glog日志库使用

效果如图: 本次使用qt环境演示,相关库文件和头文件下载链接:https://download.csdn.net/download/bangtanhui/89108477 将相关库文件和头文件,丢到工程目录下 然后需要在工程pro文件当中引入库文件和头文件: …

LMDeploy 推理部署工具

一. 大模型部署面临的挑战 1. 计算量巨大 大模型参数量巨大,前向推理时需要进行大量计算。 2. 内存开销巨大 大模型在推理过程中,以FP16为例,20B模型仅加载参数就需40G显存,175B模型更是需要350G显存。同时在推理过程中&#xff…

JVM内存模型深度剖析

JDK体系结构 Java语言的跨平台特性 JDK整体结构及内存模型 JVM虚拟机 JVM主要由以下三个部分组成 类装载子系统:负责将Java类文件加载到运行时数据区中.并在运行时由类加载器创建Java类对象.运行时数据区:运行时数据区是JVM用于存储数据的内存区域.它包括方法区,堆,栈,本地方…

使用VPN时,Java程序无法访问远程网络的解决办法

应用场景: 电脑连接VPN之后,Java程序无法连接远程服务,比如第三方接口、远程数据库连接、远程微服务等。我个人遇到的情况有连接海康威视SDK,influxdb以及一些微服务。 解决办法: 启动Java时加入参数:-D…

ChatGPT与生成式AI:教育领域内新的浪潮与挑战

随着ChatGPT和其他生成式AI技术,如GPT-3.5、GPT-4的出现,我们正见证教育领域一场前所未有的变革浪潮。这些技术不仅推动了教育方式的进步,也为学习者带来了全新的机遇和挑战。 NO.1教育变革的新浪潮 生成式AI技术,特别是ChatGPT&…

Microsoft Visio 参与者 [actor] - 人的形状图标

Microsoft Visio 参与者 [actor] - 人的形状图标 1. 更多形状 -> 搜索形状2. 参与者References 1. 更多形状 -> 搜索形状 2. 参与者 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

【RAG实践】基于LlamaIndex和Qwen1.5搭建基于本地知识库的问答机器人

什么是 RAG LLM 会产生误导性的 “幻觉”,依赖的信息可能过时,处理特定知识时效率不高,缺乏专业领域的深度洞察,同时在推理能力上也有所欠缺。 正是在这样的背景下,检索增强生成技术(Retrieval-Augmented…

(学习日记)2024.04.11:UCOSIII第三十九节:软件定时器

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

自动驾驶中的多目标跟踪_第四篇

自动驾驶中的多目标跟踪:第四篇 附赠自动驾驶学习资料和量产经验:链接 在上篇,我们得到了杂波背景下单目标状态的后验概率表达式。在不进行近似的情况下,是无法应用到实际场景中的。因此,在这一节,我们来讨论如何进行…

【Java 刷题记录】双指针

双指针 1. 移动零 283. 移动零 - 力扣(LeetCode) 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: n…

anaconda命令行创建虚拟环境并为其安装jupyter notebook同时指定jupyter notebook保存位置

查看有哪些虚拟环境(一个环境一个版本的python或者其他库) winr快捷键 输入cmd conda env list应该是进入conda的安装路径,但是我们已经添加环境变量 可以看到只有base默认的环境 我们现在新建虚拟环境 python版本为你需要的 conda create -…

Java 那些诗一般的 数据类型 (下篇)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能接…

Redis系列之主从复制集群搭建

在上一篇博客,我们已经知道怎么搭建一个redis单机版,这篇博客基于之前的基础,来搭建一个redis主从同步,本博客框架是一主二从,一个主节点,其它两个从节点 实验环境 CentOS7Xshell6XFtp6Redis6.2.2 主从关…

Java特性之设计模式【外观模式】

一、外观模式 概述 外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性 这种模式涉及到一…

未来的技术发展趋势

文章目录 前言一、人工智能技术势必聚焦安全能力二、单云环境逐渐让位于多云环境三、后量子密码或将在美大范围普及总结前言 2023 年,与网络空间安全息息相关的人工智能等技术发展迅猛,新的信息安全时代已然拉开大幕。在目睹了 ChatGPT、“星链”和量子通信等技术展现出的巨…

python画图Matplotlib和Seaborn

python画图Matplotlib和Season 一、Matplotlib1、介绍2、安装3、内容二、Seaborn1、介绍2、安装3、内容一、Matplotlib Matplotlib官网 1、介绍 Matplotlib 是一个 Python 的绘图库,用于创建高质量的二维图表和一些基本的三维图表。它广泛应用于科学计算、数据分析、工程学和…

Fecify 商品标签功能

关于商品标签 商品标签是指商家可以在展示商品时,自己创建一个自定义标签,可自定义某个关键词或短语。这样顾客在浏览商城时,只需要通过标签就能看到更直观的展示信息。 商品标签可以按照用户的属性、行为、偏好等进行分类,标签要…

【2024年5月备考新增】《软考案例分析答题技巧(2)进度、成本》

2.3 项目进度管理 项目进度管理过程:规划进度管理-定义活动-排列活动顺序-估算活动持续时间-制定进度计划-控制进度。 紧前关系绘图法 紧前关系绘图法(前导图法、PDM、单代号网络图、AON):利用节点表示活动,用箭线表示活动逻辑。 箭线图法 箭线图法(ADM、双代号网络…

抖去推---短视频矩阵系统源头开发商

作为短视频矩阵系统的开发者,你需要掌握以下开发优势: 短视频矩阵系统核心剪辑优势主要包括: 1. 多渠道覆盖:可以同时管理多个平台,包括抖音、快手、微信视频号等,实现多渠道覆盖,提高曝光率。…