linux – “设备上没有剩余空间”还有其他原因吗?

前端之家收集整理的这篇文章主要介绍了linux – “设备上没有剩余空间”还有其他原因吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在ubuntu服务器系统上使用Dirvish将hd备份到外部USB 3.0驱动器.直到几天前,一切正常,但现在每个备份都失败,“设备上没有剩余空间(28)”和“文件系统已满”.不幸的是,它并不那么简单:有>设备上免费500 GB.

细节:

rsync_error:

  1. rsync: write "/mnt/backupsys/shd/gesichert1/20130223_213242/tree/<SomeFilename1>.eDJiD9": No space left on device (28)
  2. rsync: writefd_unbuffered Failed to write 4 bytes to socket [sender]: Broken pipe (32)
  3. rsync: write "/mnt/backupsys/shd/gesichert1/20130223_213242/tree/<SomeFilename2>.RHuUAJ": No space left on device (28)
  4. rsync: write "/mnt/backupsys/shd/gesichert1/20130223_213242/tree/<SomeFilename3>.9tVK8Z": No space left on device (28)
  5. rsync: write "/mnt/backupsys/shd/gesichert1/20130223_213242/tree/<SomeFilename4>.t3ARSV": No space left on device (28)
  6. [... some more files ...]
  7. rsync: connection unexpectedly closed (2712185 bytes received so far) [sender]
  8. rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]

日志看起来像往常一样直到它命中:

  1. <SomeFilename1>
  2. <SomeFilename2>
  3. <SomeFilename3>
  4. <SomeFilename4>
  5. <PartOfAFilename>filesystem full
  6. write error,filesystem probably full
  7. broken pipe
  8. RESULTS: warnings = 0,errors = 1

但是,如上所述,设备上有很多空间:

  1. df -h
  2. /dev/sdg1 2.7T 2.0T 623G 77% /mnt/backupsys/shd

并且还有很多inode:

  1. df -i
  2. /dev/sdg1 183148544 2810146 180338398 2% /mnt/backupsys/shd

该设备安装为rw:

  1. mount
  2. /dev/sdg1 on /mnt/backupsys/shd type ext3 (rw)

该进程以root身份运行.

我正要说我没有改变任何东西,但那不是真的:
我已经为我备份的驱动器启用了acl:

  1. /dev/md0 on /mnt/md0 type ext4 (rw,acl)

这可能是问题吗?如果有,怎么样? root仍然可以完全访问这些文件.

编辑:

我刚检查了临时目录:

> / tmp只包含一个空的.webmin文件
> / var / tmp为空

这些目录所在的文件系统有足够的可用空间和inode:

  1. df -h
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/sda1 289G 55G 220G 20% /
  4.  
  5. df -i
  6. Filesystem Inodes IUsed IFree IUse% Mounted on
  7. /dev/sda1 19202048 167644 19034404 1% /

EDIT2:

目录非常大,但不是> 2 GB.备份失败的那个甚至不是最大的一个,它包含7530个文件.

EDIT3:

发布此问题时我不认为有关的一条信息:

在备份开始失败的前一天,我已经在备份的文件系统上激活了acls.我现在假设这触发了Dirvish(或rsync)认为所有文件都已更改,因此要复制而不是硬链接文件列表非常大.这可能意味着某些缓冲区太小.

今天,对空磁盘的完全备份工作完美无瑕.我接下来会尝试增量备份.这将显示激活acls是否是导致问题的原因.

解决方法

我的怀疑(参见EDIT3)显然是正确的:为文件系统添加acl支持使rsync / dirvish认为所有文件都已更改.因此,它不是进行增量备份而只是创建到现有文件的硬链接,而是尝试创建完整备份,当然因为硬盘没有足够的空间而失败.

所以错误信息实际上是正确的.

再次使用空备份磁盘启动后,增量备份将像以前一样工作.

猜你在找的Linux相关文章