使用三星 NVME 驱动器读取大文件时出现奇怪的不一致

使用三星 NVME 驱动器读取大文件时出现奇怪的不一致

我有一台新机器,配有 2 个三星 M.2 硬盘(一个是三星 SSD 960 PRO 1TB,另一个是 512GB 版本)。主板是 ASRock X99 Taichi。安装内核为 4.10.0-37 的 Ubuntu 17.04 没有任何问题。在操作过程中,我在读取大型文件时注意到一些奇怪的错误,这些文件似乎已损坏。在反复从远程复制文件后,我注意到 SHA1 和 MD5 校验和完全不一致。

事实上,我可以通过以下方式在两个驱动器上重现这种行为:生成一个足够大且内容随机的文件

$ dd if=/dev/urandom iflag=fullblock of=output.dat  bs=1G  count=4
4+0 Datensätze ein
4+0 Datensätze aus
4294967296 Bytes (4.3 GB, 4.0 GiB) kopiert, 21.2289 s, 202 MB/s

在文件上运行 MD5 或 SHA1 会产生不一致的哈希值:

$ sha1sum output.dat 
c6a00127512741fa54555bee23eb05bbf5b09be1  output.dat
$ sha1sum output.dat
70c256358f8bc77a8c43c4cc0f03611cce4c6599  output.dat
$ md5sum output.dat 
37f5694f9fa6e9869a3214053b539207  output.dat
$ md5sum output.dat
134d060edb5c392597cd8c8ddf5e1b5a  output.dat

奇怪的是,如果我对较小的文件(例如dd if=/dev/urandom iflag=fullblock of=output.dat bs=1G count=1)执行此操作,则看不到此行为(哈希值一致)。我尚未找到触发此行为的任何特定文件大小。

我已经更新了 BIOS 并对 RAM 进行了内存检查 - 一切似乎都正常。我不确定如何进一步诊断这个问题。

中没有出现任何输出dmesg。再次重申,我在这里使用随机生成的文件重现了这种行为,但如果实际文件足够大,我也会在实际文件中看到相同的行为。光盘格式为 ext4 和 ext3。两个光盘都显示了这种行为。

答案1

好的,问题似乎与 ASRock X99 Taichi 主板有关,该主板似乎无法正确处理四通道模式。在 BIOS 中禁用四通道模式(或在前 4 个插槽中插入 RAM)解决了该问题。我不推荐任何人使用这款主板。它给我们带来了一些非常奇怪、非常难以调试的问题。

相关内容