通过 rsync 备份到 NFS 时读取错误

通过 rsync 备份到 NFS 时读取错误

我正在将 Linux 机器备份到通过 NFS 安装的 NAS。我正在使用 rsync(作为以下方案的一部分)http://www.mikerubel.org/computers/rsync_snapshots/使用硬链接)。也就是说,我 ssh 进入 machine_being_backed_up,启动我的 rsync 命令,它会备份文件大约一个小时左右,然后冻结服务器(例如,需要物理重启;这非常不方便,因为服务器在城里的另一栋楼里,所以需要时间重启)最后的错误是(实际名称已匿名):

some/path/file1.gz
rsync: read errors mapping "/home/some/path/file1.gz": Input/output error (5)
some/path/file2.gz
rsync: read errors mapping "/home/some/path/file2.gz": Input/output error (5)
some/path/file3.gz

这可能表明我尝试备份的机器上的硬盘驱动器有一些错误扇区,对吗?或者该错误可能是由于 NFS 连接太慢或在安装 NFS 驱动器时选择了错误的选项(使用 rw、soft、intr 选项安装)引起的?有没有办法让这些输入/输出错误跳过/导致这些文件失败,而不是冻结系统(这样我就不必穿过城镇去重启服务器)?


更新:我昨天打开了 SMART,并进行了短自检和长自检,没有报告错误(昨天我无法提及这一点,因为长测试在晚上 7 点左右结束,并且计算机在午夜左右崩溃了,所以我可以登录,直到今天早上我才能现场重新启动)。

我还尝试将有问题的文件 rsync 到同一驱动器上的另一个分区,没有出现任何错误。我现在尝试直接 rsync 到 NAS(而不是使用 NFS 安装 NAS)。


更新(10 月 3 日):我已将硬盘移至另一台机器,大约 2 周没有出现任何错误。而旧机器每天都会出现此类错误。我猜另一台机器的主板或内存有错误(还没有时间完全诊断和查明问题)。

答案1

事实上,它确实会物理冻结机器,这强烈表明这是硬件错误的症状。不过,我认为坏扇区不会导致机器挂起,因此它可能不太容易诊断。

要查看问题是否出在磁盘上,请尝试在本地读取受影响的文件(通过 SSH 登录并使用cat /home/path.to.file > /dev/null),但如果此方法有效,并不一定意味着磁盘表面没有问题(它可能处于临界状态,有时可读,有时则不可读)。如果您还没有这样做,请运行 SMART 监控工具并观察扇区重新映射计数是否增加 - 这将表明磁盘表面不是处于最佳状态(对于现代大容量驱动器,重新映射几个扇区并不罕见,但大量扇区重新映射则表明存在严重问题)。

这可能是文件系统损坏,但我再次不希望这会导致机器完全挂起 - 或者如果情况严重到导致文件系统驱动程序崩溃,我希望控制台上出现内核崩溃消息,而不是机器停止运行。您可以使用 fsck 来检查这一点,但请确保您当前可以读取的所有内容都已备份,以防损坏情况非常严重,以至于尝试修复它会使情况变得更糟(这种情况很少见,但我见过这种情况,特别是当您使用的是实验性文件系统或测试版而不是经过试用和测试的版本时)。

硬件冻结时要检查的另一件事是 CPU 和 RAM 是否正常。它们可能有故障和过热 - 不会严重到导致正常运行出现问题,可能是运行 rsync 一段时间后产生的额外负载导致某些东西超出了极限。如果这是问题所在,运行内存测试和 CPU“老化”测试可能会突出显示这一点。您的 I/O 控制器也可能是同样的可疑因素,尽管我不确定您将如何进行测试。

答案2

听起来源机器上的文件系统或硬盘有问题,而且不受 的rsync控制。试试这个:

$ cp /home/some/path/file1.gz /home/some/path/file1_bak.gz
...

然后再次运行rsync(使用新文件)以查看是否有效。如果不行,请查看--exclude--exclude-from选择备份所有剩余数据尽快,然后,使用 检查硬盘状态,如有必要,SMART运行。fsck

答案3

我遇到了同样的问题,并在复制大文件(多 MB)时收到相同的错误消息同步NTFS在下面Raspbian GNU/Linux 8.0(杰西)。之前在 Windows 下,磁盘运行了几分钟都没问题。我推断问题可能与软件有关。

  • 我首先尝试按顺序读取文件,假设NTFS实施不支持映射(2)正确。这同样失败了。
  • 然后我尝试替换基于内核的NTFS实施NTFS-3G。这使我能够毫无问题地复制文件。

相关内容