我在Ubuntu服务器系统上使用Dirvish将HD备份到外部USB 3.0驱动器。直到几天前,一切工作都很好,但是现在每个备份都失败,并且“设备(28)上没有剩余空间”和“文件系统已满”。不幸的是,事情并非如此简单:设备上有超过500 GB的可用空间。
细节:
rsync_error:
rsync: write "/mnt/backupsys/shd/gesichert1/20130223_213242/tree/<SomeFilename1>.eDJiD9": No space left on device (28)
rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32)
rsync: write "/mnt/backupsys/shd/gesichert1/20130223_213242/tree/<SomeFilename2>.RHuUAJ": No space left on device (28)
rsync: write "/mnt/backupsys/shd/gesichert1/20130223_213242/tree/<SomeFilename3>.9tVK8Z": No space left on device (28)
rsync: write "/mnt/backupsys/shd/gesichert1/20130223_213242/tree/<SomeFilename4>.t3ARSV": No space left on device (28)
[... some more files ...]
rsync: connection unexpectedly closed (2712185 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]
日志看起来几乎和往常一样,直到命中为止:
<SomeFilename1>
<SomeFilename2>
<SomeFilename3>
<SomeFilename4>
<PartOfAFilename>filesystem full
write error, filesystem probably full
broken pipe
RESULTS: warnings = 0, errors = 1
但是,如上所述,设备上有很多空间:
df -h
/dev/sdg1 2.7T 2.0T 623G 77% /mnt/backupsys/shd
而且还有很多索引节点:
df -i
/dev/sdg1 183148544 2810146 180338398 2% /mnt/backupsys/shd
设备安装为rw:
mount
/dev/sdg1 on /mnt/backupsys/shd type ext3 (rw)
该进程以root身份运行。
我要说的是我没有做任何更改,但这不是很正确:我已经为要备份的驱动器打开了acl:
/dev/md0 on /mnt/md0 type ext4 (rw,acl)
可能是问题所在吗?如果是,怎么办?root仍然拥有对文件的完全访问权限。
编辑:
我刚刚检查了临时目录:
- / tmp仅包含一个空的.webmin文件夹
- / var / tmp为空
这些目录所在的文件系统具有足够的可用空间和inode:
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 289G 55G 220G 20% /
df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 19202048 167644 19034404 1% /
编辑2:
目录很大,但不大于2 GB。备份失败的备份甚至不是最大的备份之一,它包含7530个文件。
编辑3:
发布此问题时,我认为不相关的一个信息:
备份开始失败的前一天,我已在备份的文件系统上激活了ACL。我现在假设这触发了Dirvish(或rsync)以为所有文件都已更改,因此要复制而不是硬链接的文件列表很大。这可能意味着某些缓冲区太小。
如今,完全备份到空磁盘的工作已完美进行。接下来,我将尝试增量备份。这将显示激活acls是否是问题的原因。