读/写 2.6.32-22-server 时文件损坏(发生在多个内核中)

读/写 2.6.32-22-server 时文件损坏(发生在多个内核中)

我遇到一个问题,服务器运行一段时间后(大约一周/几天),服务器会开始读取损坏的数据。例如,当我在全新启动后运行文件的 sha1sum 时,它保持不变。然而,过了一段时间,我会开始遇到段错误,从那时起,每当我读取这个文件时,我都会得到不同的 sha1sum。

我已经用长测试检查了 SMART,并且运行了扩展的 memtest86+(12 次)

我的lspci如下:

00:00.0 主机桥:Advanced Micro Devices [AMD] RS780 主机桥
00:01.0 PCI 桥:Advanced Micro Devices [AMD] RS780 PCI 到 PCI 桥 (int gfx)
00:06.0 PCI 桥:Advanced Micro Devices [AMD] RS780 PCI 至 PCI 桥(PCIE 端口 2)
00:07.0 PCI 桥:Advanced Micro Devices [AMD] RS780 PCI 至 PCI 桥(PCIE 端口 3)
00:11.0 SATA 控制器:ATI Technologies Inc SB700/SB800 SATA 控制器 [AHCI 模式]
00:12.0 USB 控制器:ATI Technologies Inc SB700/SB800 USB OHCI0 控制器
00:12.1 USB 控制器:ATI Technologies Inc SB700 USB OHCI1 控制器
00:12.2 USB 控制器:ATI Technologies Inc SB700/SB800 USB EHCI 控制器
00:13.0 USB 控制器:ATI Technologies Inc SB700/SB800 USB OHCI0 控制器
00:13.1 USB 控制器:ATI Technologies Inc SB700 USB OHCI1 控制器
00:13.2 USB 控制器:ATI Technologies Inc SB700/SB800 USB EHCI 控制器
00:14.0 SMBus:ATI Technologies Inc SBx00 SMBus 控制器(rev 3c)
00:14.1 IDE 接口:ATI Technologies Inc SB700/SB800 IDE 控制器
00:14.3 ISA 桥:ATI Technologies Inc SB700/SB800 LPC 主控制器
00:14.4 PCI 桥:ATI Technologies Inc SBx00 PCI 到 PCI 桥
00:14.5 USB 控制器:ATI Technologies Inc SB700/SB800 USB OHCI2 控制器
00:18.0 主机桥:Advanced Micro Devices [AMD] K10 [Opteron、Athlon64、Sempron] HyperTransport 配置
00:18.1 主机桥:Advanced Micro Devices [AMD] K10 [Opteron、Athlon64、Sempron] 地址映射
00:18.2 主机桥:Advanced Micro Devices [AMD] K10 [Opteron、Athlon64、Sempron] DRAM 控制器
00:18.3 主机桥:Advanced Micro Devices [AMD] K10 [Opteron、Athlon64、Sempron] 杂项控制
00:18.4 主机桥:Advanced Micro Devices [AMD] K10 [Opteron、Athlon64、Sempron] 链路控制
01:05.0 VGA 兼容控制器:ATI Technologies Inc Radeon HD 3300 Graphics
01:05.1 音频设备:ATI Technologies Inc RS780 Azalia 控制器
02:00.0 以太网控制器:Atheros Communications Atheros AR8121/AR8113/AR8114 PCI-E 以太网控制器(rev b0)
03:00.0 FireWire(IEEE 1394):VIA Technologies, Inc. 设备 3403

我真的需要一些帮助,你知道是什么原因造成的吗?这真的让我很沮丧,因为它似乎完全随机触发,直到我重新启动才会消失。我还使用 KVM 进行虚拟化,并使用 MD 进行此服务器上的软件 RAID,处理器是 Phenom II X4 965。然而,我不认为这是软件 raid,因为这会影响非 raid 分区上托管的文件,所以我不知道。

更新21 Jun 10 好的,刚刚更换了主板。仍然有相同的错误。我没有发现任何 CPU 错误;所有磁盘都通过智能测试报告正常。有人知道这可能是什么吗?我在这里抓狂了。

更新2010 年 6 月 22 日 所以我检查了日志并尝试了另一个文件系统,结果还是一样。顺便说一下,这也都是在主机虚拟机上发生的。

答案1

我的直觉告诉我这是硬件问题,可能与热有关(因为它在运行一段时间后出现)。最有可能是南桥或相关硬件有问题。

考虑在南桥上运行一些广泛的交易测试,或者干脆更换主板。

您的操作系统保持稳定但出现随机 IO 错误通常可以排除 CPU/内存问题,因为这些错误往往会导致操作系统与其他软件一起崩溃。但内核的大部分内容是在启动时从磁盘读取的,并且从未被交换出去,因此即使无法从磁盘正确读取,Linux 系统也可以出奇地稳定。

答案2

损坏是发生在主机本身还是客户机上?qemu-kvm 中有一个已知错误,会导致大型虚拟磁盘中的数据损坏(请参阅https://bugs.launchpad.net/ubuntu/+source/qemu-kvm/+bug/574665例如)

答案3

我同意 @pehrs 的观​​点,值得研究一下热方面的问题,因为问题会随着时间的推移逐渐显现。你用的是什么类型的服务器?如今大多数机架式服务器都配备了大量传感器,可用于监控硬件健康状况。查看流明传感器。如果是戴尔服务器,则戴尔奥姆萨软件包可能会有所帮助。我相信其他大公司也有自己的专有软件包。

我还不如抛出一些其他的想法——这些想法与你描述的场景并不相符,即问题在一段时间后才出现,但它们不会造成伤害。

就错误日志而言,您是否在磁盘或 RAID 子系统的日志中收到任何错误消息?或者在 dmesg 中?Linux软件-RAID HOTWO包含一些有关您要查找的错误类型的信息。诸如电缆损坏之类的问题可能不会显示在驱动器的 SMART 自检中,但您肯定会看到一些记录的错误消息。

RAID 配置是什么?/proc/mdstat 中有什么东西吗?如果(例如)服务器有 3 个驱动器 RAID 5,并且其中一个驱动器损坏,则可能会导致问题。

另外,请检查主板/SCSI 卡/等的固件版本,看看它是否是最新的,或者是否有任何与磁盘 I/O 相关的错误已修复。

相关内容