关于具有“无限”磁盘的电子邮件服务器的建议?

关于具有“无限”磁盘的电子邮件服务器的建议?

我想设置一个可以容纳数百个帐户且电子邮件空间“无限”的电子邮件服务器。我知道没有无限的东西,但我觉得我可以随时对多个磁盘(或一堆服务器)进行 RAID。

为了说明我的需求:我可以从一台具有 500GB 空间的服务器开始,现在我需要配置或计划将来增加 x 个 500GB 驱动器(全部视为一个大驱动器)。我不知道如何正确地做到这一点,也不知道这是否是实现我目标的最佳方法。非常感谢您的建议。

简而言之:我如何最好地处理未来预期的电子邮件存储扩展?

答案1

正如其他人指出的那样,没有什么是无限的。所有存储产品都有其限制,您应该设置您作为系统管理员可以接受的限制。

如果您只对单邮件服务器架构感到满意,那么请构建一个具有大量磁盘的盒子,设置每个帐户的最大帐户数和最大邮箱大小,并让这些限制为人所知。

如果您愿意扩大主要的存储/前端架构,请提前考虑成本、设计和构建所需的时间以及即使在这种环境中也会存在的限制。

如果您的限制不适合您公司/客户,请寻找其他方式来提供他们所需的服务(例如让 Google 托管他们的电子邮件)。


电子邮件托管内部视图

从简单开始:一台服务器。一个巨型磁盘阵列,假设有 1000 个用户。
有些用户的收件箱里会有 1 封电子邮件。有些用户的收件箱里会有 100 万封电子邮件。
有些用户的收件箱里会有 1 兆字节的存储空间。其他用户的磁盘空间则会占用数 GB。

因此,我们有 1TB 的磁盘空间 (1000GB),并且我们预计服务器将承载 1000 名用户。我们可以为每个用户分配 1GB 的磁盘空间。这是合理的,因为 (a) 对于电子邮件来说,空间很大,(b) 我们可以为每个用户分配限额,即使每个用户都达到限额,也不会影响其他用户。

但有一天我们的用户想要更多空间——梅姨正在获取孙辈的视频,她的存储容量已经达到上限。由于她(和我们所有其他用户)拒绝删除任何电子邮件,我们不得不采取一些措施,但我们负担不起更多磁盘空间。

我们该怎么办?很简单:只需将每个人的限制增加到 2GB。使用相同的磁盘。我们可以解决这个问题过度承诺因为每当有一位 May 婶婶的收件箱塞满 2GB 的视频数据时,就会有一位 Joe 叔叔从不收任何电子邮件,而且只占用 1-2K 的磁盘空间。我们的用户很高兴,而我们也没有花更多的钱(这是 gmail、hotmail 等的做法)。


当然,总有一天,我们的服务器空间会用完。也许我们的梅姨账号太多了,或者我们卖掉了更多账号,需要把它们放到某个地方。我们现在该怎么办?!?

那么有两个选择:

  • 购买更多磁盘
    这是简单的解决方案 - 向服务器添加更多磁盘并在它们之间分割邮件存储(或者如果您使用 ZFS 或其他允许您扩大分区的东西,只需让邮件存储更大)。

  • 购买更多服务器
    这个有点复杂——基本上就是买一台新服务器,然后把新用户放到新机器上。
    不过,这并不能解决“太多的 Aunt May 占用磁盘”的问题——为此,你需要将其中一些用户移到新机器上(这可能很不方便)。通过将传入/传出的邮件按用户分成块来解决服务器的工作负载问题(但不能保证工作负载均匀分布)。

  • 投资适当的存储和处理架构 这是最好的(也是最昂贵的)选择:安装 SAN,并将多个头端邮件服务器连接到它。随着 SAN 的容量不断增加,您会不断添加磁盘并扩展分区(就像上面的“购买更多磁盘”中一样),并且随着入站/出站邮件工作负载的增加,您会添加更多头端服务器(位于某种负载平衡器后面)来处理邮件量。

如果您认真对待电子邮件托管,那么上面最后一条就是您必须要解决的问题。请注意,兔子洞会延伸得更远,因为此时您可能需要处理冗余。


一台邮件服务器永远不足以满足这样的需求。您需要大量的邮件服务器,连接到太平洋大小的存储后端,以满足用户对磁盘空间/邮件存储的极大需求。这需要对设计、设备和维护进行大量投资。
作为一名有过类似经历的人,我的建议是?如果可能的话,将邮件托管留给 Google。

答案2

对此没有标准方法,但我认为可以肯定的是,如果您想扩大用户数量和/或邮箱大小,“电子邮件服务器”是不够的。提供这种服务需要比设置带有大磁盘的标准电子邮件包更多的思考、资源和金钱。

相关内容