wxzself经验分享 Domino电子邮件集群系统

0
(0)

1 简介

因为工作单位需要面向学生提供免费电子邮件服务。而经过筛选,选择了Lotus 公司的Domino服务器,因为它在一台服务器上集成了目录服务、邮件服务、网站、数据库系统,还支持脚本与Java开发。

我们首先设计了几个网页导航,分别指向创建邮箱、登录系统、使用帮助等。在一台服务器上安装并运行Domino,为全校学生提供免费服务。但是,几个月时间,大约有6000人登入了系统,其中本校2000人,其它学校4000人,这时服务器已经不堪重荷,已经无法对用户进行正常响应。因此,我们决定实现一套集群系统,可以往系统中任意追加服务器来支持不断加大的需求。

2 系统概念

Domino 邮件系统的核心包括三部分,一是收藏全部用户的目录,二是支持 Web、 SMTP 、 POP3、 IMAP的邮件服务,三是各个用户的邮件数据库(NSF)。下面是系统架构图:

3 关键技术

1)集群模型:我们的集群模型要求支持邮件数据库的集群、Web访问集群、同时支持故障恢复机制。

2)数据库集群,由于各个邮件数据库都在不同的服务器上,所以,专门设计了一个集群用户表进行管理:

用户名称口令磁盘限额所属服务器邮箱数据库路径
wxzaaa64www1Mail/wxz.nsf
bbbbbb10www2Mail/bbb.nsf

此用户表需要在每个集群服务器上存放,通过数据库同步保证所有服务器数据集相同。

集群服务器管理,它也需要一张分布于各个服务器上的表:

服务器名称IP总磁盘容量最大用户数量最大可用磁盘容量最小空闲磁盘容量任务负载率(%)
www1202.200.28.398000010000700001000060
www2202.200.28.40600006000500001000040

这里的限额只要超出,那么服务器就将拒绝接受新用户。任务负载率是指不同服务器的硬件性能比率,全部相加应该为100,比如上面的这张表显示的60% 和40%表示两台服务器的硬件处理速度有差别,所以,前一台服务器应当承担60%的用户负荷,而后一台应当承担40%的用户负荷。

任何一台服务器如果修改了这张表,也将在所有服务器上强制进行复制同步。由于Domino的数据库在复制支持上是非常强大的,因此,我们的所有数据同步算法都与复制有关。

3)WEB用户注册流程(可在任意一台服务器上完成):

输入帐号及口令,进行合法、唯一校验

根据服务器的限额,计算出此用户应当归属的服务器

是本服务器          是其它服务器

URL重定向到目标服务器

创建用户、设置限额

将注册信息追加到集群用户表,对用户显示注册成功

集群用户表与其它所有服务器进行数据库复制,进行数据同步

注册成功

4)WEB用户登录流程(可在任意一台服务器上完成):

输入帐号及口令,进行合法、唯一校验

根据集群用户表,计算出此用户应当归属的服务器

是本服务器        是其它服务器

URL重定向到目标服务器

打开用户邮件数据库

登录成功

5)WEB用户删除流程(可在任意一台服务器上完成):

输入帐号及口令,进行合法、唯一校验

根据集群用户表,找到用户记录

从集群用户表中删除用户

集群用户表与其它所有服务器进行数据库复制,进行数据同步

从用户所在服务器删除邮件数据库

删除成功

6)集群服务器损坏恢复流程(可在任意一台服务器上完成):

集群用户表与其它所有服务器进行数据库复制,进行数据同步,将丢失的集群数据表还原

从还原的集群用户表中找到所有属于本服务器的用户,进行帐号、口令复原以及邮件数据库重建

恢复成功

需要指出的是,系统恢复的只是用户的邮件数据库、口令等,没有考虑损坏的邮件数据库,实际上邮件已经全部丢失。

4 其它集群技术的讨论

1)邮件服务集群,邮件服务的集群设计到两个方面,首先是在DNS中设置邮件系统的MX记录例如:

主机格式优先级
Mail1corp.comMX10
Mail2corp.comMX11

其次Domino 有一个特点就是可将发错服务器的邮件再次发送到正确的服务器上,因此接收邮件时无需集群。

2)目录服务集群,目录服务本身就是最好的集群系统,只要配置好就可以了。

5 后记

此系统是在条件不容许的情况下,利用集群技术充分利用一些普通设备以满足学生需要。后来发展为三台低档服务器,用户数量接近两万,经过多年使用,非常稳定可靠。

本文记录的日期为1996年8月

这篇文章有用吗?

点击星号为它评分!

平均评分 0 / 5. 投票数: 0

到目前为止还没有投票!成为第一位评论此文章。

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注