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.