AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1218238
Accepted
bob8e443
bob8e443
Asked: 2020-03-19 11:14:37 +0800 CST2020-03-19 11:14:37 +0800 CST 2020-03-19 11:14:37 +0800 CST

间歇性数据损坏,如何诊断?

  • 772

TL;DR:我以为我在 2 个 SSD 上遇到了静态数据损坏错误,但我认为是在读取数据之后。如何诊断故障部分在哪里?

我的 ML 训练算法打开了数千个文件(只读),昨天其中一个文件显示已损坏。然而,当我开始探索 3 个副本(2 个 SSD 和 1 个 HDD 各 1 个)之间的差异时,事情变得更加奇怪。所有日期和大小都完美匹配,但 md5sum 显示 10 个文件存在差异。

更奇怪的是,在我确保所有 3 个副本都同步(使用带有校验和的 rsync)之后,1 个 SSD 上的不同文件随机显示损坏。所以我比较了 md5sum,它是 3 个副本中的奇数个。但是,当我在 2 分钟后再次对其进行测试时,md5sum 与另外 2 个匹配。这表明它不是磁盘损坏(静态数据)。

我该如何找出失败的原因?我将运行一个很长的 memtest(之前通过,一年前),但我不确定我还能做什么。

眼镜

  • 戴尔 T7500(A18 BIOS - 来自戴尔的最新版本)
  • 2x 至强 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 个驱动器上运行了新的 md5sum 匹配)的输出

          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,竖管 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 个驱动器上运行 3 次,md5sum 差异为 0。看起来 SATA 卡是片状的,注定要被扔进垃圾桶。

ssd hard-drive data-corruption memory-test
  • 1 1 个回答
  • 375 Views

1 个回答

  • Voted
  1. Best Answer
    heynnema
    2020-03-19T19:19:41+08:002020-03-19T19:19:41+08:00

    从评论...

    • 成功运行戴尔的内置系统诊断程序

    • 确认 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 卡。

    • 0

相关问题

  • 硬盘过热严重

  • 自 10.10 起适用于 SSD 的最佳 FS [重复]

  • 有没有办法强制特定文件仅存在于 RAM 中?

  • 如何优化 SSD 的操作系统?

  • Ubuntu 是否支持与 SSD 一起使用的 TRIM 命令?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve