如何升级网络
软件也是一个非常重要的方面
在服务器上使用的操作系统和其他软件对性能也会有影响。虽然将他们升级为最新的版本非常具有诱惑力,但是同时也存在很多问题,并且会消耗一定的时间。如果升级的结果能够极大的提高文件共享的速度或者使得应用程序的反应速度更快的话,进行升级还是值得的。
最新发行的Windows Server 2003发行版就是一个很好的例子,在安全性和功能上有所增强的同时,普遍认为这是Windows 发行以来性能较好的版本,而微软也非常希望它的用户,尤其是那些还在使用NT(大约40%的服务器都是基于NT系统来安装的)的用户能够升级他们的系统。
当然,进行这样的升级还是需要一些成本的,但是好的一面是Windows Server 2003真的比NT和2000要快。当然,不升级服务器的硬件也可以获得这些收益。
对于新软件的不同版本来说,他们对硬件的最小需求可能会有所不同。我们针对常见系统和已经老化的主机系统进行了测试,看看将他们的操作系统软件升级到Windows Server 2003可能会有什么样的影响。
在客户端负载比较低的时候,几乎没有差别,所以对于小型网络来说,不值得进行升级。但是随着用户数量的增加,在吞吐量方面的差别还确实存在,而且是非常明显的。当然,你不仅是得到了更好的吞吐效率,还有更多的如文件和打印共享方面的改进也是使得现在的用户愿意迁移到新的操作系统上的原因。
例如,利用新的自动系统恢复(Automated System Recovery,ASR)功能选项来获得可用性,以及利用非常有用的映射复制(Shadow Copy)工具对重要的数据卷建立及时点的快速映象。一直以来,第三方的备份程序都提供这种服务,但是现在这种技术已经开始内置在操作系统中,使得如今的文件备份工作不需要求助于特定备份工具。
映射复制特征还允许用户使用Windows的浏览器来找寻各个文件的早期版本。
该软件还有一个SAN引导方面的特征,并且该软件已经改进成为分布式文件系统(Distributed File System--DFS),而且允许在多个服务器上创建一个逻辑的文件系统。
对于在服务器上运行应用程序这一点来说,随着处理器数量的增加,这些程序的性能也得到了明显的改善。当然它也支持更多的内存。另外,作为新操作系统的一部分,IIS6.0网页服务器的请求处理体系结构已经得到了修正,目前的这种体系结构使得网页服务器比以前的网页服务器更为强壮、而且功能更强。
对于这些改进以及其他改进的效果的量化依赖于所涉及到的应用程序,也许你希望得到这种改进的效果,因此为了明确的告诉你改进的大小,我们在一个两路的SMP服务器上进行了一次测试,测试内容是在该服务器上运行一个简单的基于网页的应用程序。
我们将操作系统从Windows 2000 Advanced Server 升级到Windows Server 2003,不论是安装一个处理器还是安装两个处理器,在处理请求的数量方面得到了很大程度的增加。在使用Windows Server 2003这个软件时,与使用一个处理器相比较而言,使用两个处理器在性能收益方面具有明显改进。
在IIS6.0中另一个关键的改变在于,它可以使用自我包含(self-contained)的工作进程来运行网站和应用程序,从而它们不会妨碍或者停止在服务器上运行的其他站点或程序。类似地,主要的web服务器程序以及相关的web管理服务各自都有专门的进程,使得那些应用程序很难降低服务器的性能。
在Windows Server 2003中,活动目录服务也得到了改进,并且具备了很多安全特征,包括新的改进具备了锁定服务器配置的能力,这主要为了减少连接到因特网上的服务器受到攻击的次数。
这些改进(包括文件共享以及应用程序性能的增强)都可以作为将系统升级到Windows Server 2003的强有力的理由。
如今,正如大多数公司所想要的那样,他们将这些升级工作变得相当的简单,他们在少数的硬件平台上将这些操作进行合并。这样一来,将新的软件迁移与硬件升级工作绑定在一起,使得在进行硬件升级的同时也就包含了软件的升级。
负载均衡
好了,在通过升级服务器的硬件和软件来改善网络性能和可用性方面,我们只能做这些工作。当然,还有另外一个办法可以实现相同的目标,在一个集群中的两个或者多个服务器上分散处理负载。
不幸的是,对于文件共享以及传统的客户端/服务器应用程序来说,采用这种方法需要特定的集群软件(并且还需要硬件),这是一个复杂而昂贵的选项。但是对于网页服务器集群来说却并不是这样,如果网页服务器采用这种方法则简单且费用也不高。
对于这种负载均衡集群来说,他们所必须实现的只是截获客户端的请求并将这些请求分散给构成集群的各个服务器(节点)。
我们将集群作为一个整体,给定一个虚拟的名字和IP地址,这好似是一个单个系统一样,并且可以使用各种不同的算法将客户端的请求重定向到其成员节点上。这些方法中最简单的方法也就是众所周知的round-robin算法,该算法通过依次向下一个服务器发送请求来实现负载均衡。
作为另外一种可以选择的方法,也可以将当前的请求定向到最不繁忙的服务器或者将其定向到活动会话数最少的服务器等等。 在集群中,仅仅只需要增加更多的节点就可以按照一定的比例来扩展其性能,同时可用性也会得到提高,因为在集群中,不论由于什么原因而导致其中一个节点失效时,其他的节点仍然可以正常工作。
有两种方法可以实现这种目的,一种方法是使用服务器上本身所带有的软件。Windows 2000 Server和Windows Server 2003都自带了负载均衡程序,在大多数的Linux中也带有这种程序,并且还有很多第三方的产品也可以使用。
另外一种实现方法是使用外部交换机,不是一个常见的二层交换机,而是一个能够在四层或者以上作出路由选择的交换机。这个交换机应该位于集群和局域网或者外围世界的连接之间,如果要得到最大吞吐量,路由需要以线速处理。
如果还考虑所有的其他硬件附件,那么负载均衡交换机的价格相当昂贵,但是与软件实现方法相比较而言,这种交换机确实有它的优势。例如,交换机可以处理运行各种不同应用程序的混合平台,而不需要在服务器上增加任何其他软件。
虽然许多交换机都包含处理数据复制的机制,但是大多数公司都是在前端web集群系统之后使用一个单一的数据库来处理这种情况。
使用交换机的另一个优势是能够构建额外的冗余——从节省空闲的电源到完成交换机的复制工作。它所能够实现的不仅仅是IP地址的均衡,还可以实现更多的工作。例如,有些产品可以接通URL以及应用程序的类型,有些更为智能,能够根据请求的内容来实现客户负载均衡。
然而,这种均衡配置起来非常麻烦,而且不能保证最后的结果是否值得。同样重要的是要具有"持续性"特征,例如,在一次事务处理的过程中,要确保现存的会话不会中途转换到一个新的服务器上。
必要的说明
最后,对于任何类型的网络扩展或者升级而言,需要强调的一点也是非常重要的一点,那就是我们需要一个面面具到的实现方法。这也是我们在本文中自始至终所强调的,如果服务器的其他部分不作改变或者支撑网络不进行升级的话,只是改变某个组件将只会带来非常有限的收益。
例如,要想从额外的局域网适配器中获得收益的话,就需要配备更快或者更多的处理器。不仅如此,你将会发现,改善基础设施的一部分和突出弱点没有什么差别,作出详细的规划并且进行充分的测试准备,然后才开始进行升级。
同样的,在同时升级几个组件的时候,不要期望性能的改善会累积,其结果可能会有相当大的不同。在我们的测试中,我们对一个老的基于奔腾III的服务器就做了多次建议性的更改。
在升级的过程中,我们所用到的材料如下:第二个处理器、将内存从128MB扩展到1GB,将标准的10/100Mbps 局域网适配器更换为吉比特以太网卡,用于配置RAID 0阵列的磁盘以及两个驱动器。
在每次单独进行改变的过程中,我们期望并且得到了很好的结果,但是我们将这些组件全部升级后,文件共享的性能仅仅增加了30%。
这多少让我们有些失望,但是我们还是能够理解的,因为我们不能改变的东西还有处理器的类型、总线的速度以及芯片等其他的东西。
也就是说,总的改进还是值得的。但是如果使用更高规格的硬件作为出发点的话,那性能还可以进一步改善。事实上,按照本专题所讨论的流程,任何想要改善或者扩展网络的人都可以从中获得类似的收益,甚至是更多的收益。
转载地址:http://www.chinaccna.com/networky/yit/200511/3288.html