将 S3 存储桶配置为 Dovecot sdbox 的备用存储

将 S3 存储桶配置为 Dovecot sdbox 的备用存储

我正在尝试使用 S3 存储桶来长期存储电子邮件,使用 Dovecot 提供服务,并使用 cron 作业将doveadm altmove所有超过几周的内容转移到其他存储中。我能够使用以下 Dovecot 配置来实现这一点

# doveconf
mail_location = sdbox:~/sdbox:ALT=/var/s3mail/%n

/var/s3mail我选择的 S3 存储桶的根目录在哪里,安装有s3fs-fuse

这可以将旧邮件移动到备用存储,从而释放邮件服务器的空间。但是,当我尝试使用电子邮件客户端在邮箱文件夹之间移动旧邮件(存储在 S3 上)时,Dovecot 失败并显示以下日志消息:

link(/var/s3mail/[SOURCE_PATH], /var/s3mail/[DEST_PATH]/.temp....) failed: Operation not supported

鉴于link我猜测这是 S3 或 s3fs-fuse 文件系统功能的不足。

如果不通过 s3fs-fuse 和上述配置,我该如何实现使用 S3 存储桶进行替代存储的最终目标,最好不要改变存储方法(sdbox)?

或者,是否有配置可以更改 Dovecot 在文件夹之间移动电子邮件的方式,以便不使用硬链接?我可以将符号链接与 s3fs-fuse 一起使用,但不能使用硬链接。(我认为link错误意味着 Dovecot 试图创建硬链接,但这可能是误解。我对 Dovecot 的实现不太了解。)

答案1

EFS 可以工作,并且实际上似乎比 S3 更适合电子邮件托管,所以我现在正在使用它。

答案2

FWIW你可以使用奥博克斯S3存储来执行此操作。实际上,您可以将所有内容存储起来,obox并使用生命周期规则自动将较旧的对象推送到更便宜的存储中。

我更喜欢使用 FUSE 安装的 S3 存储桶,因为我一直觉得它很笨拙。S3 的速度对于 IMAP 来说足够快,而且比 EFS 便宜。

鉴于 Dovecot 已声明 Dovecot 3 只采用闭源方式(请参见底部的视频)这一页),迁移到另一台服务器可能是有意义的。

相关内容