#作者:闫乾苓
文章目录
- 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