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

news/2025/2/22 16:02:21

#作者:闫乾苓

文章目录

  • 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.niftyadmin.cn/n/5862497.html

相关文章

Ae:导入 3D 模型

在 After Effects 24.1 及更高版本中&#xff0c;可以直接将 3D 模型 3D Model导入到项目&#xff0c;并将其与其他 2D 和 3D 图层一起放入合成中。 3D 模型文件主要是通过描述几何结构、材质和纹理、动画、光源与摄像机、场景结构、物理属性&#xff08;某些文件格式&#xff…

LangChain:AI大模型开发与分布式系统设计

文章目录 第一部分&#xff1a;大模型与 LangChain 基础1.1 大语言模型概述1.2 LangChain 基础 第二部分&#xff1a;模型初始化与调用2.1 自定义大模型架构 第三部分&#xff1a;高级模型设计与优化3.1 提示工程与模型调优3.2 高效处理大规模数据 第四部分&#xff1a;分布式系…

Docker-技术架构演进之路

目录 一、概述 常见概念 二、架构演进 1.单机架构 2.应用数据分离架构 3.应用服务集群架构 4.读写分离 / 主从分离架构 5.引入缓存 —— 冷热分离架构 6.垂直分库 7.业务拆分 —— 微服务 8.容器化引入——容器编排架构 三、尾声 一、概述 在进行技术学习过程中&am…

蓝桥杯 Java B 组之背包问题、最长递增子序列(LIS)

Day 4&#xff1a;背包问题、最长递增子序列&#xff08;LIS&#xff09; &#x1f4d6; 一、动态规划&#xff08;Dynamic Programming&#xff09;简介 动态规划是一种通过将复杂问题分解成更小的子问题来解决问题的算法设计思想。它主要用于解决具有最优子结构和重叠子问题…

自动驾驶之BEV概述

1、为什么需要BEV&#xff1f; 自动驾驶需要目标在3D空间的位置信息&#xff0c;传统检测为2D图像上检测目标然后IPM投影到3D。所以无论如何3D结果才是我们最终想要的。 对于单个传感器&#xff1a;通过单目3D、深度估计等手段好像能解决这个问题&#xff0c;但是往往精度不高…

Spring Boot(十六):使用 Jenkins 部署 Spring Boot

Jenkins 是 Devops 神器&#xff0c;本篇文章介绍如何安装和使用 Jenkins 部署 Spring Boot 项目 Jenkins 搭建、部署分为四个步骤&#xff1b; 第一步&#xff0c;Jenkins 安装 第二步&#xff0c;插件安装和配置 第三步&#xff0c;Push SSH 第四步&#xff0c;部署项目 第…

ubuntu部署小笔记-采坑

ubuntu部署小笔记 搭建前端控制端后端前端nginx反向代理使用ubuntu部署nextjs项目问题一 如何访问端口号配置后台运行该进程pm2 问题二 包体过大生产环境下所需文件 问题三 部署在vercel时出现的问题需要魔法访问后端api时&#xff0c;必须使用https协议电脑端访问正常&#xf…