电子邮件服务器上的“无限”磁盘的build议?

我正在设置一个电子邮件服务器,可以容纳数百个帐户与“无限”的电子邮件空间。 我知道没有无限制的东西,但是在我的印象之中,我可以随心所欲地RAID几个磁盘(或者一堆服务器)。

为了certificate我的需要:我现在可以从一台500GB空间的服务器开始,现在我需要一些额外的x个500GB驱动器的configuration或计划(所有这些都被看作是一个大的驱动器)。 我不知道如何正确地做到这一点,或者如果这是我的目标的最佳途径。 您的build议将非常感激。

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

正如其他人所指出的,没有什么是无限的。 所有的存储产品都有其限制,您应该设置一个系统pipe理员的限制。

如果您只适合使用单一邮件服务器架构,那么请构build一个包含大量磁盘的框,为每个帐户设置最大数量的帐户和最大邮箱大小,并让这些限制为人所知。

如果您对扩展主要存储/前端架构感到满意,可以预先考虑成本,devise和构build它的时间以及即使在这种环境下也会出现的局限性。

如果您的限制不适合您的公司/客户寻求提供他们需要的服务的其他方式(如让Google托pipe他们的电子邮件)。


从电子邮件主机内部查看

从简单起步:一台服务器。 一个GIANT磁盘arrays,并说1000个用户。
有些用户在收件箱中会收到1封电子邮件。 一些将有一百万。
有些将使用一兆字节的存储空间。 其他人会啃千兆字节的磁盘。

所以,我们有1TB的磁盘(1000GB),我们预计服务器可以容纳1000个用户。 我们可以为每个用户提交1GB的磁盘。 这是合理的,因为(a)电子邮件有很大的空间,(b)我们可以限制每个用户,如果每个用户达到限制,他们仍然不会影响其他用户。

但有一天,我们的用户需要更多的空间 – 梅妈妈正在获取孙子的video,而且她正在达到她的存储限制。 由于她(和我们所有的其他用户)拒绝删除任何电子邮件,我们必须做些事情,但我们买不起更多的磁盘。

我们做什么? 简单:只需将每个人的限制提高到2GB即可。 使用相同的磁盘。 我们可以摆脱这种过度承诺,因为对于May Aunt每个在她的收件箱里塞满了2GB的video数据的人来说,乔叔叔从来没有收到任何电子邮件,只使用了1-2K的磁盘空间。 我们的用户很高兴,而且我们没有花更多的钱(这是Gmail,Hotmail等)。


当然,当我们在这个服务器上的空间不足时,这一天就会到来。 也许我们有太多的五月姑妈,或者我们卖了更多的帐户,需要把它们放在某个地方。 我们现在干什么?!?

那么有两个select:

  • 购买更多的磁盘
    这是简单的解决scheme – 将更多的磁盘添加到服务器,并在它们之间拆分邮件存储(或者如果您使用的是ZFS或其他可以让您增加分区的东西,只是使邮件存储更大)。

  • 购买更多的服务器
    这个比较复杂一些,基本上就是买一台新的服务器,把新的用户放在新的机器上。
    但是,这并不能解决“太多的阿姨可能会占用磁盘空间”这个问题 – 因为你需要将其中的一些移动到新的机器上(这样做很麻烦)。 它通过将传入/传出邮件分解成用户块来解决服务器的工作负载问题(尽pipe不能保证工作负载均匀分布)。

  • 投资一个适当的存储和处理体系结构这是最好的(也是最昂贵的)select:投入一个SAN,并连接几个头端邮件服务器。 在填充SAN时,您不断添加磁盘并扩展分区(就像上面“购买更多磁盘”一样),随着入站/出站邮件工作量的增加,您将添加更多的头端服务器(位于负载平衡器某种)来处理邮件的数量。

上面的最后一个要点是,如果你认真对待电子邮件,你可以期望得到的地方。 请注意,兔子的洞进一步,因为在那一刻,你可能需要处理冗余。


一个邮件服务器是永远不够的这样的事情。 您需要一个公制的连接,连接到太平洋大小的后端存储,以满足用户对磁盘空间/邮件存储的渴望。 这是在devise,设备和维护方面的大量投资。
我的build议是作为曾经在那里做过的人吗? 如果可能,将邮件托pipe给Google。

这里没有标准的配方,但我认为可以肯定的是,如果你想扩大到用户和/或邮箱大小的大数字,“电子邮件服务器”是不够的。 提供这种服务比用大磁盘build立一些标准的电子邮件包需要更多的思想,资源和金钱。