RH236GlusterFS排错
RHCSA专栏:戏说 RHCSA 认证
RHCE专栏:戏说 RHCE 认证
此文章(第十章 GlusterFS排错)收录在RHCA专栏:RHCA 回忆录
管理有故障的brick
课本练习(以练习来进行了解)
servera系统已经崩溃。该系统提供的惟一卷称为replvol,它是一个复制卷。使servera重新联机,然后查看该系统的自愈信息。
在验证所有文件都已正确恢复后,用/brick/brick-a2/brick替换servera上的原来的brick。
[root@workstation ~]# lab selfheal setup
1. 在您的serverb系统上,检查replvol卷上需要修复的文件列表。
[root@serverb ~]# gluster volume heal replvol info
Brick servera:/bricks/brick-a1/brick
Status: Transport endpoint is not connected
Brick serverb:/bricks/brick-b1/brick
/file2
/
…………
Number of entries: 26
2. 使您的servera系统恢复联机状态。不要重置这个系统,只要启动它。
3. 验证replvol卷的恢复状态。等待所有的文件被治愈。
[root@servera ~]# gluster volume heal replvol info
Brick servera:/bricks/brick-a1/brick
Number of entries: 0
Brick serverb:/bricks/brick-b1/brick
Number of entries: 0
4. 替换brick。
[root@servera ~]# gluster volume replace-brick replvol servera:/bricks/brick-a1/brick servera:/bricks/brick-a2/brick commit force
volume replace-brick: success: replace-brick commit force operation successful
5. 脚本评分。
[root@workstation ~]# lab selfheal grade
配置BitRot检测
启用BitRot检测
Red Hat Gluster存储提供了一个名为BitRot检测的特性。当启用时,卷上的所有文件将按规定的间隔擦洗,并计算校验和。这个校验和存储在砖块上文件的扩展属性中。如果自上次存储校验和以来文件发生了更改(根据changelog),则将计算并存储一个新的校验和。如果文件没有根据更改日志进行更改,但是计算的校验和与存储的校验和不匹配,则会在日志文件/var/log/glusterfs/bitd.log和/var/log/glusterfs/scrub.log中写入一个错误。
这允许管理员检测数据是否被错误的存储介质以静默方式损坏。该特性主要用于使用存储在JBOD上的数据块的卷,而不适用于存储在已经内置了错误检测(和纠正)的数据块上的卷,比如RAID6。
要对一个卷启用BitRot检测,可以使用命令gluster volume bitrot enable。可以使用命令gluster volume bitrot disable来取消对BitRot的检测。
配置BitRot检测
因为为所有文件计算校验和可能会对卷性能产生负面影响,特别是在较大的卷上,所以可以确定擦洗的频率,以及可同时擦洗的文件数量。
以下命令可以影响和查询BitRot检测守护进程的设置,以及相关的清理进程。
volume bitrot scrub status
显示指定卷BitRot检测的状态和设置。还列出了检测到的任何错误的文件。
volume bitrot scrub pause
暂停清洗指定的卷。这不会停止BitRot检测守护进程,而只是暂停擦洗进程。当存储带宽需要用于其他用途时,这可能很有用。
volume bitrot scrub resume
恢复指定卷的清洗过程。
volume bitrot scrub-throttle {lazy|normal|aggressive}
配置每个节点同时可以清除多少个文件。可能的值是lazy、normal和aggressive。
lazy允许一次删除一个文件。(默认属性)
normal允许一次删除两个文件,或(CPUS-4)/2,以较大的为准。
aggressive允许同时清除4个文件,或(CPUS-4)/2,以较大的为准。
volume bitrot scrub-frequency {hourly|daily|weekly|biweekly|monthly}
配置为校验和清除所有文件的频率。可能的值是每小时、每天、每周、双周和每月。
默认情况下是双周,即每两周一次。
恢复损坏的文件
当BitRot检测检测到一个损坏的文件时,它将根据它的GFID报告该文件,GFID是一个128位的数字,用32个十六进制数字表示。要定位该文件,可以使用find命令。不要忘记去掉报告的fid上的破折号。
在找到损坏的文件之后,在brick上的.glusterfs中删除损坏的文件和相关的文件。这两个都是通过上一个示例中的最后一个find命令找到的。如果任何其他硬链接被建立到损坏的文件,这些也需要被删除。
如果包含被损坏文件的块是复制卷的一部分,则可以通过触发修复(gluster volume heal )或等待自修复来恢复被损坏的文件。
如果损坏的文件不在复制的卷上,则需要从最近的备份中还原它。
课本练习
[root@workstation ~]# lab bitrot setup
1. 为replvol启用和配置BitRot检测。
[root@servera ~]# gluster volume bitrot replvol enable
volume bitrot: success
[root@servera ~]# gluster volume bitrot replvol scrub-frequency hourly
volume bitrot: success
[root@servera ~]# gluster volume bitrot replvol scrub-throttle aggressive
volume bitrot: success
2. 脚本评分。
[root@workstation ~]# lab bitrot grade
总结
以上就是【金鱼哥】对 GlusterFS排错的分享 。希望能对看到此文章的小伙伴有所帮助。
如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点,如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!