linux – 确定GlusterFS数据损坏的原因
将数据写入我在两台服务器上配置的复制GlusterFS卷时,我一直遇到数据损坏.
我设置的配置如下: >服务器正在运行Ubuntu 16.04和GlusterFS v3.10.6 features.scrub: Active features.bitrot: on features.inode-quota: on features.quota: on nfs.disable: on 当大型目录从其中一台客户端计算机上的本地文件系统复制到任一配置的GlusterFS卷时,数据损坏表明它是自我的.当为复制的文件和源文件计算md5校验和并且比较两者时,许多校验和不同. 在GlusterFS卷上手动触发自我修复显示没有确定要进行修复的文件.另外,查看gluster卷的输出bitrot< volname>擦除状态和/var/log/glusterfs/bitd.log和/var/log/glusterfs/scrub.log中的输出日志似乎没有识别任何错误. 这些问题最近才显现出来,最近大约一周后这两个卷被大约10个客户大量使用. 我已经尝试使卷脱机并且已经测试了直接通过底层本地文件系统将数据写入每个块,并且无法重现这些问题. 为了进一步调试该问题,我在VirtualBox中的VM上配置了类似的设置,但无法重现该问题.因此,我对这些错误的原因造成了相当大的损失. 任何有关我可以采取的进一步调试步骤的建议或GlusterFS和我的配置的已知问题将不胜感激. 解决方法
在无法使GlusterFS正常运行之后,我决定将我的设置移动到NFS,每小时左右同步一个主控主机和镜像,以便在主服务器发生故障时提供一定程度的故障转移.
最近我们在提供镜像的服务器上执行维护,结果发现我们在该服务器上的NFS上存在类似的数据损坏问题. 在对可能的损坏原因进行大量调试后,我们最终将其跟踪到硬件卸载到网络接口,之后我发现我们偶尔也会通过SSH获得断开连接:数据包损坏错误. 查看SSH错误的可能原因,我发现以下Unix& Linux问题:packet_write_wait Broken pipe even leaving top running? 关于此线程的一些讨论表明,当分段和rx / tx校验和传递给接口时,错误的网络接口驱动程序可能会导致数据包损坏. 在禁用rx / tx和分段卸载(遵循以下博客文章中的说明:How to solve ssh disconnect packet corrupt problems)并在网络负载较重的情况下测试服务器后,我发现SSH上的SSH错误和数据损坏消失了. 由于我不再在服务器上配置GlusterFS,因此我无法验证这是否是我们遇到的数据损坏的原因.但是,考虑到我们迁移到NFS之后其中一个服务器上存在问题,很可能这可能是导致我们出现问题的原因. 另外,网络接口驱动程序正在使用e1000e驱动程序.随后我在RHEL错误跟踪器上找到了以下讨论:Bug 504811 – e1000 silently corrupting data这表明由于硬件卸载到网络接口(例如使用e1000e驱动程序的某些卡)而导致数据包损坏. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – CentOS 6.5 mdadm Raid 1 – raid数据检查期间的内
- linux – 如何拥有特定于用户的主机文件
- linux – 如何将/ dev / sda挂载并格式化为不同的/ dev / n
- 不能为虚拟电脑 Kali-Linux-2019.2 打开一个新任务
- linux – 私有用户组是否对POSIX ACL有益?
- linux – 启用了粘滞位的nfs安装目录中符号链接到可执行文件
- 为什么linux命令(iostat)中的每秒读取数(r / s)始终为零?
- LDAPS无法在Samba 4.3.11-Ubuntu中运行
- linux – 当尝试从本地Ubuntu SSH到Amazon EC2服务器时,为什
- 管理用户和组 day4 (20190930)