Rest-server + Goofys + S3

I’m currently running a few rest-server on bare-metal and local storage. To improve availability and reduce cost I’m considering different strategies.

Mounting a S3 bucket (Wasabi) with Goofys is one of the possibly solutions. Goofys has some limitations in order to achieve the best performance. From what I understand it shouldn’t make a difference but I had hoped some developer can confirm.

List of non-POSIX behaviors/limitations:

  • only sequential writes supported
  • does not store file mode/owner/group
    use --(dir|file)-mode or --(uid|gid) options
  • does not support symlink or hardlink
  • ctime, atime is always the same as mtime
  • cannot rename directories with more than 1000 children
  • unlink returns success even if file is not present
  • fsync is ignored, files are only flushed on close
  • creating files larger than 1TB

Is any of those limitations incompatible with rest-server?

I don’t see any compatibility problems here. In detail:

  • rest-server only write files once from start to end
  • as long as the filemode is ignored and does not return an error, that is chmod must fail silently, rest-server should work
  • no symlinks needed
  • filetimes are not used
  • there are no directories that will be renamed. Note that this limitation prevents you from manually moving a restic repository later on.
  • The rest-server only tries to delete files which should still exist. If the files didn’t exit and don’t cause an error that shouldn’t be a problem as far as I remember.
  • rest-server fully writes the file, flushes it to disk and the closes it. All this happens before the upload is considered as successful. Thus flush-on-close will lead to the same result.
  • restic will break if any pack file is larger than 4GB. So no problem here either.
1 Like

Thank you for the detailed response.