RH236GlusterFS排错

简介: RH236GlusterFS排错

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排错的分享 。希望能对看到此文章的小伙伴有所帮助。

如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点,如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!

目录
相关文章
|
关系型数据库 块存储
ceph 故障分析(backfill_toofull)
在执行了 ceph 扩容之前, 发现长时间内都具有下面的状态存在 参考下面信息 # ceph -s cluster dc4f91c1-8792-4948-b68f-2fcea75f53b9 health HEALTH_WARN 13 pgs backfill_toofull; 1 pgs degraded; 1 pgs stuck degraded
7001 0
|
块存储
【Openstack】排错:Cinder创建云硬盘状态错误解决
Cinder创建云硬盘状态错误,配置服务器时钟同步
3896 0
【Openstack】排错:Cinder创建云硬盘状态错误解决
|
Linux Windows
Linux工具篇-NFS 安装部署与使用
Linux工具篇-NFS 安装部署与使用
|
测试技术
在一台机器上使用gluster
在一台机器上使用gluster
92 0
|
存储 JSON Kubernetes
k8s配置glusterFS详解
k8s配置glusterFS详解
|
缓存 块存储 开发工具
CephFS 常用命令以及问题分析
最近公司的生产环境已经开始使用 CephFS 作为文件系统存储,记录一下使用过程中遇到的问题,已经一些常用的命令。
3156 0
|
监控
glusterfs 监控
这里以监控gv_KVM这个卷为例 1.启动 Profiling [root@192_168_174_68 ~]# gluster gluster> volume profile gv_KVM start Starting volume profile on gv_KVM has been successful 2.
1640 0