系统一种新的基于linux的邮件服务器集群系统

coremail邮件服务器  时间:2021-03-11  阅读:()

一种新的基于Linux的邮件服务器集群系统. txt吃吧吃吧不是罪再胖的人也有权利去增肥苗条背后其实是憔悴爱你的人不会在乎你的腰围尝尝阔别已久美食的滋味就算撑死也是一种美减肥最可怕的不是饥饿而是你明明不饿但总觉得非得吃点什么才踏实。 本文由贡献pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT或下载源文件到本机查看。

第29卷 2期Vol.29№2

计 算 机 工 程Computer Engineering

文章编号 1000—3428(2003)02—0081—02文献标识码 A

2003年2月February 2003

中图分类号 TP393

基金项目论文?

一种新的基于Linux的邮件服务器集群系统

周建国 郭成城 胡小群 晏蒲柳

武汉大学电子信息学院武汉 摘要 分析了目前Linux上各种流行的网络服务器集群系统提出了一种新的网络服务器集群系统的实现方法并详细介绍了该系统在Linux下的实现 同时还介绍了这种系统在电子邮件服务器上的应用。 关键词集群系统负载均衡 Netfilter服务器

A New E-mail Server Cluster System in Linux

ZHOU Jianguo GUO Chengcheng HU Xiaoqun YAN Puliu

College of Electronic Information Wuhan University Wuhan  【 Abstract】A new implementation method of network server cluster system is presented in thispaper by analyzing several kinds of popular network server cluster systems inLinux.This paper discusses the system' s implementation in Linux in detail. Finally,it discusses the system' s application inEmail server. 【Keywords】 Cluster system Load balancing Netfilter Server

当一个网站的访问量不断增长时网站系统的反应时间也将越来越慢。为了提供良好的服务质量 网站的管理者将不得不升级系统。除了对软件系统进行升级换代之外有时还不得不升级系统的硬件。这时系统管理者将面临着要么用一个功能更强大的服务器来代替现在的服务器要么增加一个新的服务器来组成一个集群系统的选择。随着PC机和中低档服务器的功能越来越强大价格越来越便宜组建由PC机或中低档服务器组成的集群系统逐渐成为当今的主流。本文将介绍一种新的 Linux下实现的集群系统(Local areaCluster) 并讨论这种系统的优缺点 以及这种系统在邮件服务器系统中的应用。

1 Linux下的服务器集群系统

Linux/Unix下的集群系统的研究在过去的几年里取得了丰硕的成果人们提出了各种不同的实现集群的方法主要有Round Robin DNS 、HTTP Redirect 、 Smart Client 、ActiveNetwork和Magic Routers等。 Round Robin DNS方法是用一个逻辑域名对应多个IP地址在进行域名解析的时候轮转地解析出这些IP地址从而达到负载分配的目的。这种系统实现起来简单服务器可以分布在整个Internet上但这种系统的容错性比较差而且当客户端系统或者客户端所在的自治域具有DNS缓存功能时很容易造成系统负载分配的不平衡。 HTTP Redirect技术利用HTTP协议支持的重定向功能 当系统接收到一个HTTP请求时服务器可以将这个请求重新导向到其他的服务器而不时返回响应的结果。这种技术使得服务器可以被分配到WAN上不需要额外的硬件设备系统能够高效地进行负载分配但这种技术只能用于Web服务器不能用于其他服务器。 Smart Client的核心思想是将负载分配的策略的实现由服务器端移到客户端 由客户端决定系统将向哪一个服务器发出请

求。这种系统实现起来很复杂而且需要定制客户端系统。 Active Network(主动网络)打破了传统网络只能被动传输信息的思想允许网络中的节点对流过其上的数据包执行

用户所需要的计算。将主动网络应用到负载分配上用户只需预先在网络设备上安装负载平衡策略的实现软件 自动实现网络的负载平衡但这种系统需要主动网络来支持而主动网络也仅仅处在实验阶段。 Magic Routers方法通过修改数据包的包头信息来将数据请求分配到不同的服务器中去这些修改操作在一个称之为Magic Router的设备中来完成。这种技术包括纯软件实现的系统如Linux Virtual Server,和由硬件来实现的系统如LocalDispatcher。这种修改可在数据链路层(如Bell-lab的One-IP技术) 、 IP层(如Linux Virtual Server)和传输层(如IBM的ShockAbsorber Linux Virtual Server中的KTCPVS)来实现。这种方法实现简单负载平衡的效率高能够采用多种负载分配算法系统可扩展性好能够动态增加和减少服务器的个数系统的兼容性好服务器本身可以是不同的系统但这种系统存在着瓶颈一旦Magic Router发生故障整个系统将不能工作 同时系统的可扩展性受制于Magic Router。 基于以上的分析借鉴Windows 2000系统的负载分配的思想作者提出了一种新的基于Linux的服务器集群系统 下面将详细地介绍我们的方法。

2 Localarea Cluster的实现

Localarea Cluster的主要设计思想是让服务器本身来决定是否处理接收到的数据包。当服务器从网络上接收到一个数据包时服务器将根据某种负载分配策略丢弃这个数据包或者接收这个数据包并将这个数据包交给上层处理。 2. 1Linux下IP数据包的传输流程为了在Linux系统下实现Localarea Cluster先来分析一下Linux下的TCP/IP协议栈的实现及数据包的运动轨迹。在Linux中 当一个数据包从网络适配器(包括以太网卡等各种

基金项目 武汉市科委重点项目资助  作者简介周建国 (1965) 男讲师现从事计算机网络的研究郭成城副教授胡小群博士生晏蒲柳教授、博导收稿日期 2002-01-25

—81—

进行网络数据收发的设备)上被完整地接收后 由系统交给一个称之为IP PacketHandler的处理函数进行处理这个函数在TCP/IP协议栈被初始化或内核模块被装入时注册到系统中。 IP协议的处理函数是ip_rcv() 在ip_rcv()中系统进行一些完整性检测 如果IP数据包的检测失败 系统将丢弃这个数据包 否则系统将调用函数ip_rcv_finish() 。在ip_rcv _finish() 函数中系统进行IP数据包的路由和转发工作。此后这个数据包将被发送到其它网段或被送到上层协议进行处理。以上是对数据包在IP协议中的运动的简单、粗略的分析从这个分析中可以看出通过在ip_rcv_finish()函数中拦截IP数据包然后按照我们预定的策略丢弃或接受特定的数据包从而达到负载分配的目的。 2.2 Localarea Cluster数据包的截获和操作在Linux 2.2.x及以前的内核中为了在ip_rcv_finish() 函数中截获数据包需要修改ip_rcv_finish()的代码然后重新编译内核 即在内核上打一个补丁。但在Linux 2.4.x内核中系统提供了一种机制可以用来截获数据包这种机制被称为NetFilter。NetFilter由一系列的HOOK组成这些HOOK是IP数据包在内核中运动的一些关键点。 目前总共有5个HOOK  PREROUTING 、POSTROUTING 、 INPUT 、 FORWARD、 OUTPUT。现在假设物理网络上来了一个IP数据包这个分组由ip_rcv函数接收该函数最后一个宏将控制权交给PREROUTING规则链处理。如果该分组没有被过滤则ip_rcv_finish()函数查路由表并且判断该分组是发给本地机器还是转发给另一个网络。如果是发给本地机器则调用ip_local_deliver() 该函数在最后调用防火墙宏处理INPUT规则链处理完后交给传输层直至应用层中的用户进

程。如果是转发在ip_rcv_finish()调用路由表函数ip_route_input()后将控制权交给ip_forward() 这个函数会通过防火墙宏来执行FORWARD规则链中的规则最后由 ip _forward_finish() 函数负责调用ip_send()将分组发出。但是发出之前会通过防火墙宏执行POSTROUTING中的规则然后将分组交给驱动程序放到物理网络上。现在还有一个HOOK (即OUTPUT)没有说 当本地机器要发送分组时 当然就会在POSTROUTING之前先处理OUTPUT规则链了。这些HOOK之间的关系如图1。

转发

HOOK1

口号(16位)为Pi 其2个字节分别为Pi1 、 Pi2服务器数目为n将该数据包的源IP地址和端口号进行如下计算然后对i其取模所得即为能处理这个数据包的服务器编号。这种实现方法比较简单但效率比较高。 A=Ai1*Ai2*Ai3*Ai4 ; B=Pi1*Pi2 ; i=(A+B)mod n; 2.3 Localarea Cluster实现需要考虑的其它问题为了实现Localarea Cluster 还需要解决一个问题怎样使交换机将数据转发到每一台服务器如果使用集线器 由于集线器向所有的端口转发数据包 因此LocalareaCluster的使用不存在任何问题。但是目前主流的网络连接设备是交换机而且Localarea Cluster规模的提高还有赖于高速、高性能网络交换机的使用。为此我们修改Localarea Cluster中的每一台服务器的IP地址和MAC地址使它们使用相同的IP地址和MAC地址这样当交换机转发数据时 将向每一个端口转发数据。 在LocalareaCluster系统中还涉及到服务器之间进行通信的问题。 由于Localarea Cluster中服务器具有相同的IP地址和MAC地址因此服务器之间不能够通过IP地址进行通信。为了在系统中实现服务器之间的通信可以采用两种方法使用多播地址和使用两块网卡的方法。使用两块网卡将增加系统的成本但系统实现比较简单。我们使用双网卡的方法采用双网卡一块对外一块对内。对内的网卡将用于服务器之间的通信 同时还用于服务器之间共享数据库和文件系统。 2.4Localarea Cluster的网络拓扑结构Localarea Cluster采用图2所示的网络拓扑结构。所有的服务器的对外网卡与交换机1相连交换机1通过路由器连接到Internet或直接连接到其它网络服务器的对内网卡通过交换机2相连其它的服务器(主要用于存储共享信息)也连接到交换机2上。

Internet

路由器

Route

交换机1

HOOK3

HOOK2

Route

S2

Sn

路由到本地

交换机2其它服务器

本地处理本地产生数据包

HOOK5

图2 Localarea Cluster的网络拓扑结构

3 Localarea Cluster的特性及应用

LocalareaCluster与其他的网络集群方案相比最大的优点是在LocalareaCluster

中不存在瓶颈设备并且网络的可用性高。只要Localarea Cluster中还有一台服务器在工作就可以向外提供服务。并且系统的安装和配置比较简单只要在服务器上安装一个内核可装载模块然后将服务器连接到作为集群的交换机上系统就可以开始工作。而且系统的可扩充性比较好当系统需要更多的处理能力时可以随时增加服务器。系统所能接受的最大服务器数(下转第106页) 目取决于局域网需要达到的能力。

图1各HOOK之间的关系

为了利用NetFilter提供的功能需要编写一个可装载内核模块在模块中实现我们的过滤策略以及服务器之间的同步机制然后将这个实现注册成为NetFilter PREROUTING规则链中的一个规则。 截获到数据包之后需要按照某种功能来丢弃或接受数据包。 目前我们采用的方法是将网络服务器S1,S2,…… Sn (参考图2)编号为0 1 2 …… n-1假设一个数据包的源IP地址(32位)为Ai其4个字节分别为Ai1、 Ai2、 Ai3、 Ai4 端

—82—

,理在lg(N +1) ?1个时间步内完成并行的加速比为N /(lg(N + 1) ? 1) 。 在此我们不考虑处理器之间的同步和通讯时间并且各个片段对的执行顺序正好是一个完全二叉树。 由于N一般为n (Phrap算法的输入片段数) 的平方关系 因此并行算法的加速比也可以写为n 2 /(lg( n 2 + 1) ? 1 ) ≈n 2 / 2 lg( n ) 。

中能处理的片段对并不多但又需要很多的时间步即二叉树的深度较高。数据集较小时线程的同步等代价和并行算法中取得并行性的部分所用时间会显得很突出数据集加大时并行的效果逐渐显现虽然加速比与理论分析有差距。

4算法的具体实现和测试数据

目前的工作主要是在曙光3000上的一个4处理器的节点用多线程进行改进。各个线程在分布处理完一个时间步内的所有片段对以后进行同步然后一起进入下一个时间步。我们用了一组随机片段集合来检测并行化后的Phrap程序结果如表1。

表1并行效果的测试数据

片段数690 1624260038797879查找overlap后可并行处理的片段对数8042 56117的片段对数2116 7310 12975 16083 61004串行构建组合关系的时间1  409s 40 163s

192 003s287 334s 1402 753s并行算法的时间1 572s 38 711s 174 895s 250 104s

1347 923s

5今后工作的展望

本文分析了Phrap程序中一个关键部分存在的可并行性并给出了相应的并行算法实际效果是在一定程度上降低了时间需求。鉴于Phrap程序在生物测序方面的重要性 以及生物信息学近来的飞速发展迫切需要对其作出优化。我们上述的工作为以后进一步的研究在理论上奠定了基础。 今后工作的主要方向是 (1)给定一个序列片段集合 定量分析其中可以并行的部分 (2)设计高效的并行算法来加速程序的运行。 参考文献

1 Green P.The Users Document of PHRAP 2 Waterman S. Introduction to ComputationalBiology,Maps,Sequences and Genomes.Chapman&Hall Press, 1997 3 Green P.Lecture onSequences Assembly.Washington University, 1998 4 Pedersen C N S.Algorithms inComputational Biology(Ph.D Thesis) . University of Aarhus,2000-03

实际上的并行效果并不如理论上的结果好主要是因为对于特定的数据文件并行性的可挖掘程度是不一样的有可能可并行的片段对只占总数的一小部分使得每个时间步

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

(上接第82页) Localarea Cluster的缺点在于 Localarea Cluster只能够用在局域网中。 由于Localarea Cluster要求交换机的工作方式类似于集线器 因此它降低了

交换机的工作效率。 我们将Localarea Cluster系统应用在开发的电话语音邮件(Tele-email)系统中采用如图2所示的网络拓扑结构。

Imap Clientwww等模块分别提供给用户不同的邮件访问方式。 以上这些模块作为分布式应用分别安装在不同的机器上(也可以集中安装在一台服务器上但效率较低) 即在S1,S2,……Sn服务器中分别安装Qmai l邮件系统和www服务器Apache 在与交换机2所连接的其它服务器中安装LDAP服务器和数据库服务器每台机器负责不同的功能以利于实现负载平衡。 实际应用的结果表明将该系统应用于电话语音邮件系统能够极大地提高整个电话语音邮件系统的性能。

Internet

MTA

IMAPwww服务www C l i entldap服务器Mai ldir

语音服务电信网手机电话

4结束语

目前系统只能够平均地分配网络负载到各个服务器中这要求系统中的各个服务器的性能基本一致 同时这也将导致服务器负载的不均匀。我们现在正在研究设计更好的负载分配策略以便更好地进行负载分配。同时我们也在研究提高交换机工作效率的方法以最大限度提高网络利用率 新的研究结果将另文发表。 参考文献

1 Anderson E. An Application of Fast Packet Interposing: The Magic Router .http://http.cs.berkeley.edu/~anders/projects/magicrouter 2 Daniel M,Kish D W, etal.A Scalble and Highly Available Web Server. In Proceeding of COMPCON, 1996-03 3Brisco T . DNS Support for Load Balancing.RFC 1794, 1995-04 4 CISCOLocalDirector.http://www.cisco.com/, 1996-10 5 Zhang Wensong. Linux Virtual Serverfor Scalable Network Services. http://www. linuxvirtualserver.org/Documents.html 6Chad Yoshikawa, Chun B,Eastham P.Using Smart Clients to Build ScalableServices.Usenix 97, 1997 7 Zhu Huican ,Tang Hong , Yang Tao .Demand-driver ServiceDifferentiation in Cluster-based Network Servers. IEEE Infocom,2001

POP3

邮件通知呼机

Remote Servers

Pop3 Client

图3电话语音邮件系统的总体结构

电话语音邮件系统MTA(邮件传输代理)用的是Qma i l  www服务器用的是ApacheLdap服务器用的是OpenLdap  Tele-email系统的总体框架如图3所示。虚线框以内是Teleemail的各个模块及它们之间的相互关系。 MTA负责从Internet接收邮件并将邮件投递到本地邮箱或转发至其他的邮件服务器(Remote Servers) 。Maildir是用户邮件存放目录我们将每个邮件用户目录下分4个子目录new、 cur 、tmp 、 wav 分别用来存放新邮件、最近邮件、暂存邮件、 语音邮件。 Ldap(轻量目录访问协议)服务器用来做邮件用户认证它存放着用户的口令、邮件存储目录等重要信息邮件的投递、用户访问都要用到这些信息。 POP3 、 IMAP 、

—106—

1

选择Vultr VPS主机不支持支付宝付款的解决方案

在刚才更新Vultr 新年福利文章的时候突然想到前几天有网友问到自己有在Vultr 注册账户的时候无法用支付宝付款的问题,当时有帮助他给予解决,这里正好顺带一并介绍整理出来。毕竟对于来说,虽然使用的服务器不多,但是至少是见过世面的,大大小小商家的一些特性特征还是比较清楚的。在这篇文章中,和大家分享如果我们有在Vultr新注册账户或者充值购买云服务器的时候,不支持支付宝付款的原因。毕竟我们是知道的,...

老薛主机入门建站月付34/月,年付345元,半价香港VPS主机

老薛主机怎么样?老薛主机这个商家有存在有一些年头。如果没有记错的话,早年老薛主机是做虚拟主机业务的,还算不错在异常激烈的市场中生存到现在,应该算是在众多商家中早期积累到一定的用户群的,主打小众个人网站业务所以能持续到现在。这不,站长看到商家有在进行夏季促销,比如我们很多网友可能有需要的香港vps主机季度及以上可以半价优惠,如果有在选择不同主机商的香港机房的可以看看老薛主机商家的香港vps。点击进入...

HostKvm($4.25/月)俄罗斯/香港高防VPS

HostKvm又上新了,这次上架了2个线路产品:俄罗斯和香港高防VPS,其中俄罗斯经测试电信CN2线路,而香港高防VPS提供30Gbps攻击防御。HostKvm是一家成立于2013年的国外主机服务商,主要提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。俄罗斯VPSCPU:1core内存:2G...

coremail邮件服务器为你推荐
急救知识纳入考试100%的大学生有学习现场急救知识的欲望吗kaixin.com开心网。www.kaixin.com是什么时间出来的。同ip网站查询我的两个网站在同一个IP下,没被百度收录,用同IP站点查询工具查询时也找不到我的网站,是何原因?18comic.fun有什么好玩的网站杰景新特杰德特这个英雄怎么样www.e12.com.cn有什么好的高中学习网?haole16.com国色天香16 17全集高清在线观看 国色天香qvod快播迅雷下载地址m.kan84.net那里有免费的电影看?dadi.tv1223tv影院首页地址是什么?1223tv影院在哪里可以找到?机器蜘蛛《不思议迷宫》四个机器蜘蛛怎么得 获得攻略方法介绍
什么是虚拟主机 域名升级访问中 域名查询系统 抗投诉vps主机 blackfriday 12306抢票助手 警告本网站美国保护 双拼域名 泉州移动 免费高速空间 电信虚拟主机 息壤代理 美国独立日 1元域名 独立主机 php服务器 日本代理ip 畅行云 申请免费空间 lamp的音标 更多