总结:我以为我的 2 个 SSD 上出现了静态数据损坏错误,但我认为是在读取数据后发生的。我该如何诊断故障部件在哪里?
我的 ML 训练算法打开了数千个文件(只读),昨天其中一个文件显示已损坏。然而,当我开始探索 3 个副本(2 个 SSD 和 1 个 HDD 上各一个)之间的差异时,事情变得更加奇怪。所有日期和大小都完全匹配,但 md5sum 显示 10 个文件存在差异。
更奇怪的是,在我确保所有 3 个副本都同步(使用带校验和的 rsync)后,1 个 SSD 上的另一个文件随机显示损坏。因此,我比较了 md5sum,发现它是 3 个副本中奇怪的一个。但是,当我 2 分钟后再次测试时,md5sum 与其他 2 个匹配。这表明磁盘(静态数据)上没有损坏。
我该如何找出问题所在?我将运行一个长时间的内存测试(一年前已经通过了),但我不确定我还能做什么。
眼镜
- Dell T7500(A18 BIOS - 戴尔最新产品)
- 2个至强X5675
- 64GB(4x16GB ECC)
- 驱动器:
- 三星 850 EVO 250GB (SSD FW:EMT03B6Q)
- 三星 860 EVO 500GB(SSD FW:RVT01B6Q)
- WD Blue 4TB(硬盘固件:80.00A80)
- 所有 3 个驱动器均连接到:
- IO Crest 4 端口 SATA III PCIe 2.0 x2 控制器卡绿色,SI-PEX40057(芯片组 Marvell 88SE9230)
- 因为主板是 SATA 2.0,我需要更高的吞吐量,所以使用。考虑到戴尔的 BIOS 限制,这是我唯一可以启动的 SATA 卡。
输出free -h
(缓存已满,因为我刚刚在所有 3 个驱动器上运行了新的 md5sums 匹配)
total used free shared buff/cache available
Mem: 62G 1.2G 312M 11M 61G 61G
Swap: 2.0G 0B 2.0G
输出sudo lshw -C memory
(根据手册,我可以确认 4 根内存条位于正确的插槽中。MB DIMM 1 和 2,Riser DIMM 1 和 2)
*-firmware
description: BIOS
vendor: Dell Inc.
physical id: 0
version: A18
date: 10/15/2018
size: 64KiB
capacity: 1984KiB
capabilities: pci pnp apm upgrade shadowing escd cdboot bootselect edd int13floppytoshiba int13floppy720 int5printscreen int9keyboard int14serial int17printer acpi usb biosbootspecification netboot
*-cache:0
description: L1 cache
physical id: 700
size: 384KiB
capacity: 384KiB
capabilities: internal write-back unified
configuration: level=1
*-cache:1
description: L2 cache
physical id: 701
size: 1536KiB
capacity: 1536KiB
capabilities: internal varies unified
configuration: level=2
*-cache:2
description: L3 cache
physical id: 704
size: 12MiB
capacity: 12MiB
capabilities: internal varies unified
configuration: level=3
*-cache:0
description: L1 cache
physical id: 702
size: 384KiB
capacity: 384KiB
capabilities: internal write-back unified
configuration: level=1
*-cache:1
description: L2 cache
physical id: 703
size: 1536KiB
capacity: 1536KiB
capabilities: internal varies unified
configuration: level=2
*-cache:2
description: L3 cache
physical id: 705
size: 12MiB
capacity: 12MiB
capabilities: internal varies unified
configuration: level=3
*-memory
description: System Memory
physical id: 1000
slot: System board or motherboard
size: 64GiB
capabilities: ecc
configuration: errordetection=multi-bit-ecc
*-bank:0
description: DIMM DDR3 1333 MHz (0.8 ns)
product: 9965516-433.A00LF
vendor: AMD
physical id: 0
serial: CF38EF94
slot: DIMM 1
size: 16GiB
width: 64 bits
clock: 1333MHz (0.8ns)
*-bank:1
description: DIMM DDR3 1333 MHz (0.8 ns)
product: 9965434-110.A00LF
vendor: AMD
physical id: 1
serial: 2D25C605
slot: DIMM 2
size: 16GiB
width: 64 bits
clock: 1333MHz (0.8ns)
*-bank:2
description: DIMM DDR3 Synchronous [empty]
vendor: FFFFFFFFFFFF
physical id: 2
serial: FFFFFFFF
slot: DIMM 3
width: 64 bits
*-bank:3
description: DIMM DDR3 Synchronous [empty]
vendor: FFFFFFFFFFFF
physical id: 3
serial: FFFFFFFF
slot: DIMM 4
width: 64 bits
*-bank:4
description: DIMM DDR3 Synchronous [empty]
vendor: FFFFFFFFFFFF
physical id: 4
serial: FFFFFFFF
slot: DIMM 5
width: 64 bits
*-bank:5
description: DIMM DDR3 Synchronous [empty]
vendor: FFFFFFFFFFFF
physical id: 5
serial: FFFFFFFF
slot: DIMM 6
width: 64 bits
*-bank:6
description: DIMM DDR3 1333 MHz (0.8 ns)
product: 9965434-110.A00LF
vendor: AMD
physical id: 6
serial: 2E25EB05
slot: RISER DIMM 1
size: 16GiB
width: 64 bits
clock: 1333MHz (0.8ns)
*-bank:7
description: DIMM DDR3 1333 MHz (0.8 ns)
product: 9965434-110.A00LF
vendor: AMD
physical id: 7
serial: 2F25DC05
slot: RISER DIMM 2
size: 16GiB
width: 64 bits
clock: 1333MHz (0.8ns)
*-bank:8
description: DIMM DDR3 Synchronous [empty]
vendor: FFFFFFFFFFFF
physical id: 8
serial: FFFFFFFF
slot: RISER DIMM 3
width: 64 bits
*-bank:9
description: DIMM DDR3 Synchronous [empty]
vendor: FFFFFFFFFFFF
physical id: 9
serial: FFFFFFFF
slot: RISER DIMM 4
width: 64 bits
*-bank:10
description: DIMM DDR3 Synchronous [empty]
vendor: FFFFFFFFFFFF
physical id: a
serial: FFFFFFFF
slot: RISER DIMM 5
width: 64 bits
*-bank:11
description: DIMM DDR3 Synchronous [empty]
vendor: FFFFFFFFFFFF
physical id: b
serial: FFFFFFFF
slot: RISER DIMM 6
width: 64 bits
更新 1
戴尔的内置系统诊断程序运行时没有问题(我停止它进行内存测试,而是使用 memtest86 进行测试)。
顺利完成 memtest86 v4 的 1-8 项测试。
我编写了一个 Python 脚本来获取目录中所有 md5sum 的字典,并同时对 3 个副本运行该脚本(但每个驱动器仅使用 1 个线程*)。它发现了 7 个新的差异(共 3000 个文件)。这些差异大致均匀分布在 3 个驱动器中(因此这不仅仅是 SSD 的问题)。当我回去检查 7 个奇怪的差异时,每个 md5sum 现在都与其他 2 个匹配。
目前的想法:
- 我认为问题可能是由 2/3 个工作人员同时访问每个驱动器的文件引起的,但是我现在已经做了一些测试,发现在顺序访问时仍然会出现错误。
- SATA 卡有某种问题。我将把所有 3 个驱动器重新连接到主板,然后再次运行相同的测试。
似乎是 SATA 卡将所有 3 个驱动器直接连接到 MB 后,现在已对其进行了 3 次测试,md5sum 差异为 0。看来 SATA 卡有问题,注定要扔掉。
答案1
来自评论...
成功运行戴尔内置系统诊断程序
确认 BIOS 当前版本为 A18
成功运行 memtest 且无错误,内存已正确安装以进行内存交叉
将 SATA 驱动器重新配置到主板上,而不是 PCIe SATA 卡,然后进行测试
已下载
Samsung Magician
并将检查 SSD 固件更新(1)
(1)强烈怀疑我们会在这里找到一些东西
来自IO Crest 4-port SATA III PCIe 2.0 x2 Controller Card Green, SI-PEX40057
手册这里,我们看到特殊的 Linux 安装说明......
内核版本为 2.6.19 及以上的 Linux 发行版包含 IDE/ATA 设备的内置驱动程序。在大多数发行版中,内核默认不会加载内置 IDE/ATA 设备的驱动程序。在 Linux 中启用对 IDE/ATA 设备的支持的步骤如下:
Enabling support for IDE/ATA devices during a Clean Installation of Linux
To enable support during a Clean Installation of Linux:
1. Boot from the Linux Installation CD/DVD
2. Select Installation and press Enter
3. Type the following command into the Boot Options command line:
ata_generic.all_generic_ide=1
4. Press Enter to continue with the Linux OS installation
Enabling Support for IDE/ATA Device on an Existing Installation of Linux
To enable support during a Existing Installation of Linux:
1. Login as root.
2. Right-click the Desktop and select Open in Terminal.
3. Type the following commands:
ls
cd/boot/grub
vim menu.lst
4. Type the following command at the end of the kernel line for the title
paragraph that lists the version information for the Linux distribution.
ata_generic.all_generic_ide=1
5. Browse to File and select Save.
6. Reboot the system for the changes to take effect.
更新#1:
怀疑有缺陷的 PCIe SATA 卡已从系统中移除。