多个压缩文件中存在 CRC 错误

多个压缩文件中存在 CRC 错误

我有一台服务器,它使用另一台服务器进行自我备份duplicity(实际上是duply)。完整备份大约有 330 个 1 GB 的文件。完整备份顺利完成,但第二天增量备份以“CRC 校验失败”终止。在备份服务器上,几个文件似乎有问题:

# gzip *20170530* --test

gzip: duplicity-full-signatures.20170530T032515Z.sigtar.gz: invalid compressed data--crc error

gzip: duplicity-full.20170530T032515Z.vol139.difftar.gz: invalid compressed data--crc error

gzip: duplicity-full.20170530T032515Z.vol139.difftar.gz: invalid compressed data--length error

gzip: duplicity-full.20170530T032515Z.vol146.difftar.gz: invalid compressed data--crc error

gzip: duplicity-full.20170530T032515Z.vol169.difftar.gz: invalid compressed data--crc error

gzip: duplicity-full.20170530T032515Z.vol171.difftar.gz: invalid compressed data--crc error

gzip: duplicity-full.20170530T032515Z.vol171.difftar.gz: invalid compressed data--length error

gzip: duplicity-full.20170530T032515Z.vol193.difftar.gz: invalid compressed data--crc error

gzip: duplicity-full.20170530T032515Z.vol223.difftar.gz: invalid compressed data--crc error

gzip: duplicity-full.20170530T032515Z.vol224.difftar.gz: invalid compressed data--crc error

gzip: duplicity-full.20170530T032515Z.vol233.difftar.gz: invalid compressed data--crc error

gzip: duplicity-full.20170530T032515Z.vol301.difftar.gz: invalid compressed data--crc error

gzip: duplicity-full.20170530T032515Z.vol310.difftar.gz: invalid compressed data--crc error

gzip: duplicity-full.20170530T032515Z.vol310.difftar.gz: invalid compressed data--length error

gzip: duplicity-full.20170530T032515Z.vol53.difftar.gz: invalid compressed data--crc error

gzip: duplicity-full.20170530T032515Z.vol53.difftar.gz: invalid compressed data--length error

gzip: duplicity-full.20170530T032515Z.vol63.difftar.gz: invalid compressed data--crc error

gzip: duplicity-full.20170530T032515Z.vol63.difftar.gz: invalid compressed data--length error

如果只有一个文件有错误,我会重试,希望这是一个随机错误。但是……13 个文件都有错误?我该如何调试?

两台服务器都是 Debian 8。Duplicity 是 0.6.24,使用 apt 安装;所有依赖项都相同,但 paramiko 除外,已为它安装了 1.16.0。

主服务器的日志确实显示了一些 SATA 内容,但这会导致文件悄无声息地损坏吗?完整备份不会因为 I/O 错误或其他原因而停止吗?以下是日志中写入内容的示例:

May 31 06:49:11 acheloos kernel: [1887359.720042] ata3.00: exception Emask 0x50 SAct 0x40000 SErr 0x280900 action 0x6 frozen
May 31 06:49:11 acheloos kernel: [1887359.720472] ata3.00: irq_stat 0x08000000, interface fatal error
May 31 06:49:11 acheloos kernel: [1887359.720870] ata3: SError: { UnrecovData HostInt 10B8B BadCRC }
May 31 06:49:11 acheloos kernel: [1887359.721255] ata3.00: failed command: READ FPDMA QUEUED
May 31 06:49:11 acheloos kernel: [1887359.721639] ata3.00: cmd 60/40:90:ac:3b:d8/00:00:2e:00:00/40 tag 18 ncq 32768 in
May 31 06:49:11 acheloos kernel: [1887359.721639]          res 40/00:94:ac:3b:d8/00:00:2e:00:00/40 Emask 0x50 (ATA bus error)
May 31 06:49:11 acheloos kernel: [1887359.722430] ata3.00: status: { DRDY }
May 31 06:49:11 acheloos kernel: [1887359.722927] ata3: hard resetting link
May 31 06:49:11 acheloos kernel: [1887360.040025] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
May 31 06:49:11 acheloos kernel: [1887360.041846] ata3.00: configured for UDMA/133
May 31 06:49:11 acheloos kernel: [1887360.041859] ata3: EH complete

答案1

May 31 06:49:11 acheloos kernel: [1887359.720870] ata3: SError: { UnrecovData HostInt 10B8B BadCRC }

总结一下,发生了不可恢复的错误,并且丢失了一些数据。主机中有多少个驱动器?通常的原因是驱动器损坏,因此第一步是更换驱动器,然后转到 RAM,然后是控制器本身(通过主板)。

smartctl --health /dev/sda您还可以使用(更改驱动器名称)和从驱动器查询 SMART 数据smartctl --all /dev/sdahttps://www.faqforge.com/linux/get-the-disk-health-status-with-smart-monitor-tools-on-debian-and-ubuntu-linux/更详细地描述这一点。您正在寻找任何递增的错误计数器。

您可以通过备份到备用驱动器来测试是否是驱动器问题,并查看这些文件是否损坏。您也可以运行badblocks(https://linux.die.net/man/8/badblocks) 来查看现有驱动器是否有问题。如果您可以先腾出驱动器,那么破坏性测试会更好,但工作量更大。

此时,如果您对驱动器进行的备份已损坏,则现有数据也很可能已损坏。如果现有数据损坏,您需要考虑恢复方案。

有点奇怪的是,这并没有通过你的备份工具冒出来变成一个错误,尽管它可能的它正在忽视它们。

相关内容