GlusterFS卷管理实战指南:从扩展卷到自我修复,全面掌握高效运维技巧

embedded/2025/2/22 19:14:49/

#作者:闫乾苓

文章目录

  • 1 扩展卷
  • 2 收缩卷
  • 3 更换故障brick
    • 3.1 更换纯分布式中的brick
    • 3.2 更换复制/分布式复制卷中的brick
  • 4 重新平衡卷
    • 4.1 重新平衡卷以修复布局变化
    • 4.2 重新平衡卷以修复布局并迁移现有数据
    • 4.3 显示重新平衡操作的状态
    • 4.4 停止正在进行的重新平衡操作
  • 5 停止卷
  • 6 删除卷
  • 7 触发复制卷自我修复

1 扩展卷

当集群在线且可用时,您可以根据需要扩展卷。例如,您可能希望向分布式卷添加一个块,从而增加分布并增加 GlusterFS 卷的容量。
类似地,也可以向分布式复制卷添加一组brick,从而增加 GlusterFS 卷的容量。

注意:
扩展分布式复制卷和分布式分散卷时,需要添加数量为副本数或分散数倍数的砖块。例如,要扩展副本数为 2 的分布式复制卷,需要添加 2 的倍数的砖块(例如 4、6、8 等)

扩展卷步骤:
(a)、如果要添加到卷的brick的服务器还没有加入 TSP ,请使用以下命令加入

gluster peer probe <SERVERNAME>

比如增加gfs05,gfs06到原由gfs01, gfs02, gfs03, gfs04组成的TSP中

# gluster peer probe gfs05
# gluster peer probe gfs06

(b)、使用以下命令添加brick:
gluster volume add-brick
比如分布式卷distributed-volume原由4个节点的各1个brick组成,先需要再增加2个节点的各1个brick到分布式卷distributed-volume中,执行命令如下:

# gluster volume add-brick distributed-volume gfs05:/data/glusterfs/gv0/brick1/brick gfs06:/data/glusterfs/gv0/brick1/brick

在这里插入图片描述
在这里插入图片描述
©、重新平衡卷以确保文件分发到新的brick

# gluster volume rebalance distributed-volume fix-layout start

在这里插入图片描述
如果想重新平衡卷及迁移数据,请执行以下命令:

# gluster volume rebalance distributed-volume start

详情请参考后面的“平衡卷”章节

2 收缩卷

当集群在线且可用时,可以根据需要缩小卷。例如,可能需要移除由于硬件或网络故障而无法访问分布式卷的块。
缩小分布式复制卷和分布式分散卷时,需要移除数量为副本数或条带数倍数的砖块。例如,要缩小副本数为 2 的分布式复制卷,需要移除 2 的倍数的砖块(例如 4、6、8 等)。此外,您尝试移除的砖块必须来自同一子卷(同一副本或分散集)。

使用启动选项运行 remove-brick将自动触发重新平衡操作,将数据从已移除的 bricks 迁移到卷的其余部分。

(a)、使用以下命令移除砖块:

gluster volume remove-brick <VOLNAME> <BRICKNAME> start

比如要删除上面为分布式卷distributed-volume增加的gfs05,gfs06 2个节点的brick

# gluster volume remove-brick distributed-volume gfs05:/data/glusterfs/gv0/brick1/brick gfs06:/data/glusterfs/gv0/brick1/brick start

在这里插入图片描述
(b)、使用以下命令查看移除brick操作的状态

# gluster volume remove-brick distributed-volume gfs05:/data/glusterfs/gv0/brick1/brick gfs06:/data/glusterfs/gv0/brick1/brick status

在这里插入图片描述
©、一旦状态显示“完成”,提交删除brick操作

# gluster volume remove-brick distributed-volume gfs05:/data/glusterfs/gv0/brick1/brick gfs06:/data/glusterfs/gv0/brick1/brick commit

在这里插入图片描述
(d)、使用以下命令检查卷信息:

# gluster volume info distributed-volume

在这里插入图片描述

3 更换故障brick

3.1 更换纯分布式中的brick

要替换仅分布式卷上的brick,请添加(扩展)新brick,然后移除(收缩)要替换的brick。
这将触发重新平衡操作,从而将数据从已移除的brick中移出。
具体步骤请参考前面“扩展卷”、收缩卷章节。

3.2 更换复制/分布式复制卷中的brick

本部分介绍将分布式复制卷rep-dis-volume-01中/data/glusterfs/gv0/brick1/brick-rep-dis-01 替换为/data/glusterfs/gv0/brick1/brick-rep-dis-01-new

(a)、原分布式复制卷rep-dis-volume-01 信息
在这里插入图片描述
原gfs01: /data/glusterfs/gv0/brick1/brick-rep-dis-01中的数据如下:
在这里插入图片描述
(b)、确保gfs01: /data/glusterfs/gv0/brick1/brick-rep-dis-01-new 中没有数据
©、执行replace-brick使用“commit force”选项替换 brick

# gluster volume replace-brick rep-dis-volume-01 gfs01:/data/glusterfs/gv0/brick1/brick-rep-dis-01  gfs01:/data/glusterfs/gv0/brick1/brick-rep-dis-01-new commit force

在这里插入图片描述
(d)、检查brick是否在线

# gluster volume status rep-dis-volume-01

在这里插入图片描述
(e)、也可以使用以下命令来跟踪brick替换修复的进度
在这里插入图片描述

4 重新平衡卷

使用 add-brick 命令扩展卷后,可能需要在服务器之间重新平衡数据。扩展或缩小卷后创建的新目录将自动均匀分布。对于所有现有目录,可以通过重新平衡布局和/或数据来修复分布。

本节介绍如何使用以下常见场景重新平衡存储环境中的 GlusterFS

  • 修复布局- 修复布局以使用新的卷拓扑,以便文件可以分发到新添加的节点。
  • 修复布局并迁移数据- 通过修复布局以使用新的卷拓扑并迁移现有数据来重新平衡卷。

4.1 重新平衡卷以修复布局变化

修复布局是必要的,因为对于给定的目录,布局结构是静态的。即使在将新砖块添加到卷后,现有目录中新创建的文件仍将仅分布在原始砖块中
使用以下命令将修复布局信息,以便可以在新添加的brick上创建文件。发出此命令后,所有已缓存的文件统计信息都将重新生效。

# gluster volume rebalance <volname> fix-layout start

4.2 重新平衡卷以修复布局并迁移现有数据

使用以下命令在任意一台服务器上启动重新平衡操作:

# gluster volume rebalance <VOLNAME> start

使用以下命令在任意一台服务器上强制启动迁移操作:

# gluster volume rebalance <VOLNAME> start force

重新平衡操作将尝试平衡节点间的磁盘使用情况,因此它将跳过移动会导致卷不平衡的文件。这会导致链接文件仍然留在系统中,因此可能会导致性能问题。可以使用参数覆盖此行为force。

4.3 显示重新平衡操作的状态

用以下命令检查重新平衡操作的状态:

# gluster volume rebalance <VOLNAME> status

完成重新平衡操作的时间取决于卷上的文件数量以及相应的文件大小。继续检查重新平衡状态,验证重新平衡的文件数量或扫描的文件总数是否持续增加。

重新平衡完成后,状态显示为completed
在这里插入图片描述

4.4 停止正在进行的重新平衡操作

如果需要,您可以停止重新平衡操作。使用以下命令:

# gluster volume rebalance <VOLNAME> stop

5 停止卷

使用以下命令停止该卷:

# gluster volume stop <VOLNAME>

比如:

# gluster volume stop rep-dis-volume-01

详细过程如下:
在这里插入图片描述

6 删除卷

使用以下命令删除卷:

# gluster volume delete <VOLNAME>

在删除卷前需要先停止卷,否则提示无法删除。
详细执行步骤如下:
在这里插入图片描述

7 触发复制卷自我修复

主动自我修复守护程序在后台运行,诊断问题并每 10 分钟自动对需要修复的文件启动一次自我修复。

仅对需要修复的文件触发自我修复:

# gluster volume heal <VOLNAME>

对卷的所有文件触发自我修复:

# gluster volume heal <VOLNAME> full

查看需要修复的文件列表:

# gluster volume heal <VOLNAME> info

查看已自我修复的文件列表

# gluster volume heal <VOLNAME> info summary

查看特定卷中处于脑裂状态的文件列表:

# gluster volume heal <VOLNAME> info split-brain

http://www.ppmy.cn/embedded/164420.html

相关文章

网页五子棋——对战后端

目录 GameHandler 创建请求响应对象 处理连接成功 玩家下线处理 处理落子请求 handleTextMessage putChess 落子 胜负判定 构造落子响应并返回 更新玩家分数 修改客户端代码 对战模块测试 在本篇文章中&#xff0c;我们继续实现对战模块的后端逻辑 GameHandler…

纯新手教程:用llama.cpp本地部署DeepSeek蒸馏模型

0. 前言 llama.cpp是一个基于纯C/C实现的高性能大语言模型推理引擎&#xff0c;专为优化本地及云端部署而设计。其核心目标在于通过底层硬件加速和量化技术&#xff0c;实现在多样化硬件平台上的高效推理&#xff0c;同时保持低资源占用与易用性。 最近DeepSeek太火了&#x…

优化 Flink 消费 Kafka 数据的速度:实战指南

在使用 Flink 消费 Kafka 数据时&#xff0c;你可能会遇到 消费速率较慢 的问题。本文将从 Kafka 并行消费、批量拉取、Checkpoint 频率、Consumer Poll 速率 以及 Flink 任务 Slot 资源 等多个方面&#xff0c;详细解析如何优化 Flink 消费 Kafka 的速度。 &#x1f525; 1. 增…

抗干扰利器,光纤无人机技术详解

光纤无人机技术是将光纤通信技术与无人机技术相结合的创新技术&#xff0c;其在抗干扰方面展现出了显著的优势。以下是对光纤无人机技术的详细解析&#xff1a; 一、技术基础与原理 光纤无人机技术主要通过光纤作为高速、低延迟的数据传输媒介&#xff0c;实现无人机拍摄的高…

【Gin-Web】Bluebell社区项目梳理3:社区相关接口开发

本文目录 一、接口详情1. 获取分类社区列表接口2. 根据id查询社区 二、值类型与引用类型 一、接口详情 跟社区有关的接口详情如下。 1. 获取分类社区列表接口 首先是Controller层&#xff0c;然后跳转到Logic层业务逻辑的开发。 这是Logic层&#xff0c;再做一次跳转&#…

D. C05.L08.贪心算法入门(一).课堂练习4.危险的实验(NHOI2015初中)

性价比的一题&#xff01;&#xff01;&#xff01; D. C05.L08.贪心算法入门&#xff08;一&#xff09;.课堂练习4.危险的实验(NHOI2015初中) 传统题1000ms256MiB 题目描述 小明最近在上化学课&#xff0c;他需要使用到 n 种化学物质来进行他的实验。在做实验的时候&…

【ROS2】【ROS2】RViz2源码分析(八):Display中订阅ROS2消息(使用Qt信号和槽传递ROS2消息)

【ROS】郭老二博文之:ROS目录 1、简述 RViz2 涵盖了 Qt 和 ROS2 的技术点,前面介绍 DisplaysPanel 时,主要分析了Qt相关部分,参见博客: 【ROS2】RViz2源码分析(七):DisplaysPanel 中的树状模型/视图 本篇博客,将会一起学习 RViz2 中如何使用 ROS2,以 Display 中订…

Spring Boot实现跨域

为什么会出现跨域问题 出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。 同源…