作为一种通信方式,电子邮件变得越来越重要。因此,为企业选择一种全面的电子邮件服务器至关重要。各个企业都需要一个强健而易于管理的电子邮件系统以及来自系统厂商的可靠的技术支持。今天,ISP和IT部门面临两个重要问题:1. 邮件信息流量和邮件访问操作的数量与复杂性每天都在增加,因而需要一种强劲的、可扩展的系统。2. 随着电子邮件成为主要商业通信媒介,电子邮件系统必须提供运营商级的可用性,达到五个九(99.999%)正常运行时间的要求。但是,这两种需求无法通过一台服务器来实现。群集对于现代大规模部署是必不可少的,但是由于高数据修改率、复杂的数据处理以及必须支持的多种访问方式(如POP3、IMAP4以及WebMail),因此构建邮件服务器群集比构建Web服务器群集要复杂得多。上一代邮件服务器(90年代初开发的邮件服务器)通过将用户账户进行分区来提供可扩展性,用户账户即一个群集中的每一台服务器在本地硬盘上创建的账户。一台目录服务器保存每个账户的位置信息,而邮件复用器、邮件路由器或前端服务器等设备则根据目录信息将用户连接引导到合适的服务器。尽管这类系统可以有效地进行扩展(主要受目录服务器的性能和可扩展性的限制),但是它没有改善站点的可用性,群集中任何一台服务器出现故障都会使群集上的所有账户无法使用。这种群集常常被称之为静态群集。另一类系统则试图利用共享文件系统(如NFS文件服务器)以及几台并行运行的邮件服务器来解决高可用性问题。甚至在一些服务器瘫痪的情况下,这种配置仍可以使站点提供对所有账户的访问。这类系统存在的问题是数据同步。传统的同步方式是基于文件系统锁的,系统锁不仅使所有文件操作速度降低到1/4或1/5,而且在与共享文件系统一起使用时也不可靠。最新的系统由群集控制器来实现账户级同步,该群集控制器使用一种特殊的服务器间协议来保证任何账户每次只被一个群集成员直接使用。
如果群集成员A已经打开账户X,而群集成员B试图打开同一账户,群集控制器就指示群集成员B连接到服务器A,并将服务器A用作代理服务器访问账户数据。每个群集成员间的同步是利用更快速的多线程技术代替文件系统锁来实现的。与不可靠的文件锁不同,账户级锁定不会在文件系统中留下痕迹,因此,如果任何一台服务器出现故障的话,无需进行清除工作。这类群集常常被称为动态群集。这种设计使群集可以在任何成员出现故障的情况下继续运行,只要至少有一台服务器没出现故障的话,就可以提供对所有账户的访问。如果群集控制器服务器出现故障的话,其他群集成员可以承担控制器的任务。这种动态群集虽然达到或超过99.999%可用性要求,但仍可以提供线性可扩展性,因为同步开销很少,只涉及到账户打开期间的一个快速的事务处理。动态群集的可扩展性只受到共享文件系统性能的限制,并且动态群集可以采用快速的高端文件服务器或群集文件系统。由于动态群集高度集成的本质,因此可以提供单服务器映像特性,使群集管理像单服务器管理那样简单。对于500万以上ISP类型的账户配置来说,可以部署超级群集。超级群集是动态群集组成的一个静态群集:它可以提供几乎无限的静态群集(利用群集前端服务器来实现)的可扩展性和动态群集(用作后端系统)的高可用性。