dum*_*uch 15 linux ubuntu filesystems rsync
我在 Ubuntu 服务器系统上使用 Dirvish 将高清备份到外部 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]
Run Code Online (Sandbox Code Playgroud)
日志看起来和往常一样,直到它命中:
<SomeFilename1>
<SomeFilename2>
<SomeFilename3>
<SomeFilename4>
<PartOfAFilename>filesystem full
write error, filesystem probably full
broken pipe
RESULTS: warnings = 0, errors = 1
Run Code Online (Sandbox Code Playgroud)
但是,如上所述,设备上有很多空间:
df -h
/dev/sdg1 2.7T 2.0T 623G 77% /mnt/backupsys/shd
Run Code Online (Sandbox Code Playgroud)
而且还有很多inode:
df -i
/dev/sdg1 183148544 2810146 180338398 2% /mnt/backupsys/shd
Run Code Online (Sandbox Code Playgroud)
该设备安装为 rw:
mount
/dev/sdg1 on /mnt/backupsys/shd type ext3 (rw)
Run Code Online (Sandbox Code Playgroud)
该进程以 root 身份运行。
我正要说我没有改变任何东西,但这并不完全正确:我已经为要备份的驱动器打开了 acl:
/dev/md0 on /mnt/md0 type ext4 (rw,acl)
Run Code Online (Sandbox Code Playgroud)
这可能是问题吗?如果是,如何?root 仍然可以完全访问这些文件。
编辑:
我刚刚检查了临时目录:
这些目录所在的文件系统有足够的可用空间和 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% /
Run Code Online (Sandbox Code Playgroud)
编辑2:
目录很大,但不大于 2 GB。备份失败的那个甚至不是最大的一个,它包含 7530 个文件。
编辑3:
发布此问题时我认为不相关的一项信息:
在备份开始失败的前一天,我在备份的文件系统上激活了 acl。我现在假设这触发了 Dirvish(或 rsync)认为所有文件都已更改,因此要复制而不是硬链接的文件列表非常大。这可能意味着某些缓冲区太小。
今天,对空磁盘的完整备份完美无缺。接下来我将尝试增量备份。这将显示激活 acls 是否是问题的原因。
我的怀疑(参见 EDIT3)显然是正确的:向文件系统添加 acl 支持使 rsync/dirvish 认为所有文件都已更改。因此,它不是进行增量备份,而是创建到现有文件的硬链接,而是尝试创建完整备份,但由于硬盘没有足够的空间来进行备份,这当然失败了。
所以错误信息实际上是正确的。
使用空备份磁盘重新启动后,增量备份的工作方式与以前一样。
| 归档时间: |
|
| 查看次数: |
69931 次 |
| 最近记录: |