无缝电子邮件服务器迁移

无缝电子邮件服务器迁移

我正在将所有内容从服务器 A 迁移到服务器 B,其中包括电子邮件服务。

我已经设置了服务器 B 来接收我们域的邮件,用户身份验证正在运行,并且我还有一个脚本,该脚本运行从服务器 A 到服务器 B 的 Maildir 数据的 rsync,并进行必要的更改以适应 dovecot。在服务器 B 上配置的另一个测试域的邮件传递工作正常。

我现在的问题是如何在 DNS 缓存过期时同步和从服务器 B 切换到服务器 A,而无需(如果可能)将邮件传递到两个服务器。

有什么方法可以避免由于 DNS TTL 导致的“不一致”时期并无缝切换到新服务器?

答案1

开始同步你的电子邮件imapsync(该网站提供付费版本,但如果你谷歌一下,你会在 github 或其他地方找到免费的版本...)。然后你进行 DNS 切换。然后你再次使用 imapsync 同步。如果仍有邮件到达旧服务器,你可以再次同步,然后再次同步...直到所有邮件服务器都有新的 DNS 记录。

Imapsync 具有(优于 rsync 的)优势,它还可以执行各种其他操作,例如删除、设置特定日期范围(使得后续同步速度大大加快)...imapsync 提供了许多选项,您应该在投入“生产”之前对其进行一些试验。

关于不一致:您可以尝试将新的 dovecot 设置为旧 dovecot 的代理。这样,新的 dovecot 就可以看到旧 dovecot 看到的一切。但不确定同步是如何工作的。请查看 dovecot 文档。

答案2

在进行实际更改之前几天,将 DNS TTL 缩短到更短的时间怎么样?

然后,当您实际进行切换时,DNS缓存将很快过期。

答案3

如果您有时间和意愿在现有邮件服务器前面添加另一层,那么您可以透明地完成所有操作而不会出现任何停机时间。

1)设置一个新服务器(虚拟服务器很可能就可以)

2) 如果您还没有,请安装集中式用户管理,例如 OpenLDAP。或者对于您的情况,pam_mysql 之类的东西也可以。

3)安装毁灭将其用于代理 IMAP/POP 连接。Perdition 可以从中央用户管理处查找用户服务器位置。

4) 安装 Postfix 以将邮件传递到服务器 A 或 B。同样,Postfix 可以从集中位置查找服务器位置。

5) 创建一个迁移脚本,该脚本将使用 imapsync 或您选择的其他工具逐个用户复制邮件。然后,当用户迁移时,将用户现在位于服务器 B 的事实更新到集中位置。

相关内容