电子邮件服务器在 NFS 重新挂载时重新发送电子邮件

电子邮件服务器在 NFS 重新挂载时重新发送电子邮件

我在 Debian 服务器上运行 postfix/dovecot,并在基于 NFS 的 maildir 后端使用虚拟客户端。我的问题是,每隔一段时间,NFS 连接就会重置,我的客户端会重新收到他们服务器存储的所有电子邮件。我已经指示那些可以的人不要在服务器上保留电子邮件的副本,但有些人就是不想这样做。NFS 服务器也是基于 Debian 的,我没有遇到其他系统访问数据的问题。直到最近,一切都正常,只有一位管理员(我)有权更改系统。我正在寻找想法,因为我已经用完了,谷歌搜索没有找到这种错误的结果,我的日志没有显示任何可以查明问题的内容。我不认为它是基于网络或时间的,我每天都使用 rsync 来使 nfs 时间和电子邮件服务器时间尽可能接近同步。大多数时候,它们的间隔小于 0.6 秒。网络似乎没有拥塞,因为我没有丢失数据包,即使在非常繁忙时也只有 20ms 的最大延迟。

谢谢

我的系统

NFS 服务器(独立服务器)Debian 7 双 1Gbps 以太网全双工(桥接,iperf 报告我的服务器为 3.8Gbps,平均延迟为 2ms,最大延迟为 20ms 双 4x Infiniband(当前用于将备份存储服务器连接到主 NFS,但最终将用于所有内部服务器到服务器的通信)10TB 存储用于存储 VM 信息并为电子邮件服务器提供文件共享)

电子邮件服务器(从 Xenserver 虚拟域运行)Debian 6 双 1 Gbps 以太网(以全双工方式绑定到与 NFS 相同的 Cisco L3 交换机)10GB 存储

Xenserver(托管虚拟机的裸机服务器,HA 设置中有三台)32GB RAM 双四 AMD Opteron 双 120GB raid 1(用于 Xenserver 启动和本地存储等)双 4x Infiniband(由于 Xenserver 不支持 Infiniband 或 OFED 堆栈,因此尚未工作)四 1Gbps 以太网,所有 4 条链路都与 NFS 连接到同一个 L3 Cisco 交换机

答案1

尝试使用ntp来保持时间同步。这应该始终将时间保持在几毫秒内。您可以使用或不使用外部时间源来对等服务器。如果您使用其中一个本地时钟,请使用fudge将状态更改为 8 左右的值。如果您同时使用两者,请将它们调整到不同的层次。

使用 rsync 保持时间戳同步,会引发一个问题:您是否将邮件发送到一台服务器,并从另一台服务器读取。Postfix 应将邮件发送到您的用户使用 Dovecot 访问的同一 Maildir。无需复制。如果您要复制,则可能会覆盖删除的内容。Maildir 存储在 NFS 上工作良好。如果存储在 NFS 上,其他存储机制可能无法正常工作。

如果您使用自动挂载来挂载用户的目录,则可能会在 dovecot 仍缓存数据时卸载目录。最好只挂载 NFS 共享。或者,您可以增加自动挂载超时。

相关内容