我的服务器电子邮件出现了问题。昨天,我们的电子邮件提供商停机超过 20 个小时,严重影响了我们的业务运营。
我们有大约 5TB 的存档电子邮件,用户经常在其中搜索过去的合同或其他信息。尽管数量巨大,但他们坚持保留所有电子邮件。当前设置使用 postfix/dovecot,使用 mdbox 格式。
我的任务是提高服务器的可靠性和性能。我提出的解决方案是:
分离新旧邮件:将旧邮件移至单独的存储,减少主服务器上的同步负载。
实现高可用性:在不同位置添加新的邮件服务器。如果一台服务器发生故障,另一台服务器应在第一台服务器恢复后接管并同步数据。
引入邮件代理:过滤传入的电子邮件并将其转发到两个服务器以实现冗余。
利用 Amazon S3 进行备份:利用现有的 S3 存储桶来存储旧电子邮件,与日期分离计划保持一致。
我正在考虑使用现有的 mdbox 和 rsync 来完成这些任务,因为我们目前使用 mdbox 进行邮件存储,使用 rsync 将所有邮件文件和其他文件备份到云存储。所以,我正在尝试使用现有的方法。但我还有一些问题:
简单的 rsync 是否足以同步电子邮件文件?如果邮件通过代理在不同时间到达,是否会创建重复条目?
如何使用 mdbox 有效地按年份划分电子邮件存储?
是否有更有效的工具可以在两个相同的邮件服务器之间设置 Dovecot 复制?
我还没有接触过邮件技术,如果您能提供任何建议或见解我将不胜感激。
谢谢
听起来你正在应对一个具有挑战性的情况。提高服务器的可靠性和性能,尤其是在有大量存档电子邮件的情况下,需要仔细规划和执行。以下是针对你提出的解决方案的一些见解和建议:
您可以使用 Dovecot 的筛选过滤或脚本按年份区分电子邮件,将特定日期之前的电子邮件移动到单独的存储位置。这可以通过创建一个脚本来实现,该脚本定期检查电子邮件时间戳并将较旧的电子邮件移动到不同的目录或存储系统。mdbox 管理:
为了更有效地管理 mdbox,请考虑配置 Dovecot 的 mdbox_rotate_size 和 mdbox_rotate_interval 设置,以控制何时将旧电子邮件移动到辅助存储。2. 实施高可用性服务器冗余:
通过设置两台配置相同的服务器并启用 Dovecot 的内置复制功能,可以实现高可用性。这将确保两台服务器之间的电子邮件同步。同步:
利用 Dovecot 的 dsync 工具进行持续复制。这通常比使用 rsync 进行实时同步更有效,因为 dsync 是专门为邮件数据同步而设计的。3. 引入邮件代理电子邮件过滤和分发:
考虑使用 HAProxy 或 Nginx 等软件设置邮件代理。这些工具可以将传入的电子邮件流量分发到两个服务器,从而确保冗余。重复的可能性:
使用 rsync 时要小心复制。正确管理邮件队列以防止重复条目至关重要。设置邮件代理来处理队列管理和重复数据删除逻辑可以帮助缓解此问题。4. 利用 Amazon S3 进行备份备份策略:
使用 Amazon S3 进行备份是个好主意,尤其是用于存储旧电子邮件。您可以使用 s3ql 或 rclone 等工具将 S3 与 Dovecot 集成,以高效地将旧电子邮件文件同步到 S3。Rsync 注意事项:
虽然 rsync 可用于定期备份,但请确保在流量较少的时段进行备份,以最大程度地减少服务器负载。考虑使用 --delete 和 --archive 标志进行高效备份,而无需冗余。