外部驱动器备份因不明原因失败

我们已设置自动备份,并根据指南将 /var/discourse/shared/standalone/uploads/var/discourse/shared/standalone/backups 迁移到了外部驱动器。因此,我们的 app.yml 配置如下:

volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log
  - volume:
      host: /path/to/external/uploads
      guest: /shared/uploads
  - volume:
      host: /path/to/external/backups
      guest: /shared/backups

管理员收到“备份失败”的提示,相关日志(保留期为一个月)可在此处查看:https://paste.eccologic.net/?e137640f6febfb22#9N8ksCpRqMVGevM7dGzPhp7DSpHTGdkifJHfZwbgVu2E

该错误提示出现得毫无明显原因,因为备份文件似乎已成功创建。执行 ls -la /path/to/external/backups/default/ 的输出如下:

total 322618
drwxrwxrwx 2 root root         0 Sep 27  2019 .
drwxrwxrwx 2 root root         0 Jun 27  2019 ..
-rwxrwxrwx 1 root root 327798879 Mai  1 04:21 xxx-yyyy-2021-05-01-020805-v20210420015635.tar.gz

您是否知道这里可能出现了什么问题?我们的 Discourse 版本为 2.7.0.beta8 (656b0ae39e)。备份设置如下:

这可能是权限问题。尝试将目录设置为所有人可写。

你指的是哪个目录?包含备份的目录(/path/to/external/backups/default)已经对所有用户可写(参见上面的 ls -la 输出)。

仅在 44 秒后失败。

gzip 会创建第二个文件,并在完成后删除未压缩的文件。这意味着您至少需要 327 MB 的可用磁盘空间。由于这是外部驱动器,错误消息可能会被掩盖。推测:您的磁盘空间可能不足?

我们正在 SAMBA 共享上挂载 gocryptfs,并且应该有充足的可用空间。df -h 的输出如下:

Filesystem                            Size  Used Avail Use% Mounted on
udev                                  1,9G     0  1,9G   0% /dev
tmpfs                                 385M  1,5M  384M   1% /run
/dev/mapper/hermes--vg-root            36G   21G   14G  60% /
tmpfs                                 1,9G     0  1,9G   0% /dev/shm
tmpfs                                 5,0M     0  5,0M   0% /run/lock
tmpfs                                 1,9G     0  1,9G   0% /sys/fs/cgroup
/dev/sda1                             704M  215M  439M  33% /boot
//xxx.file.core.windows.net/storage2  5,0T  491M  5,0T   1% /mnt/storage2/cipher
/mnt/storage2/cipher                  5,0T  491M  5,0T   1% /mnt/storage2/plain
tmpfs                                 385M     0  385M   0% /run/user/1000

值得注意的是,在我选择“是(不包含上传)”后,手动备份成功了——日志见此处。因此,故障确实可能与压缩的数据量有关。

随后,我将备份移回内部驱动器,现在即使包含上传内容,手动备份也能正常工作——日志见此处

看来该故障与我们特定的 gocryptfs / SAMBA 配置有关。不过,如果任何人有进一步调查的建议,我很乐意听取。例如,究竟是什么导致 gzip 报错“操作不允许”。