如何升级网络
内存的作用
在对服务器的处理器进行升级的时候,速度、缓存的大小都是需要考虑的重要因素。通常说来,早期的芯片只有很少的缓存可以用于加速对内存的访问。
在奔腾II或者奔腾III的芯片上,二级缓存的大小一般位于64KB到512KB之间 ,但是,这种现象目前已经开始改变,在英特尔最近生产的产品中,可以有几兆的缓存。例如,至强MP处理器带有512KB的二级缓存,另外还有2MB的三级缓存可以使用。
至于高端的产品,如64位的Itanium 2 可以拥有高达6MB的三级缓存,并且无论在什么情况下,谈到应用程序的性能时,由于有额外的缓冲内存都会使其性能有很大的不同,如同通常意义下增加额外的内存一样。
现在,内存的价格不再象原来那样高的惊人。你可以在服务器上安装更多的内存。即使是在一个初级的文件和打印服务器上,也没有必要节约,一般说来它们的指定内存都不少于512MB。
倒不是有很多情况需要用这么多的内存。在共享外部文件的过程中,网络操作系统(Windows, Netware,Linux等)要利用扩展的RAM来实现数据的缓存。这些过程是通过软件来自动实现的,在任何时候,即使每次只是向客户传输少量的数据,他们也是首先将大块的数据从磁盘读入到内存,然后再进行传输工作。
由于在内存中有很多的数据,所以在下一次出现满足要求的请求时,服务器就不用再回到磁盘去读取数据而是直接传输数据,这样就加快了访问的速度。类似地,文件更新过程也是先将文件缓存到内存中,最后才写到磁盘上,这样就减少了读写磁盘的次数。
为了测试扩展的内存对一般的Windows server 文件服务器吞吐量的影响,我们在一个早期生产的双奔腾III处理器的服务器上进行了试验,原来这个服务器的RAM为256MB,现在将这个服务器的内存大小加倍,我们看到,在高负载时文件共享的性能有了25%以上的改善。
假如将其内存升级到1GB将会得到更多的收益,但是改善的程度不是随着内存大小的增加而成正比。这是因为我们所测试的服务器原来所安装的局域网接口是10/100Mbps的接口,这就限制了它所能够处理的客户请求数量。
在我们为其安装了第二块网络适配器,再将其扩展的内存加到512MB的时候,系统的性能有了极大的改善,这说明了在进行任何升级之前必须要充分考虑到要对其他组件进行升级的重要性。
在我们的网络扩展指南的第二部分中,我们将考虑存储、软件以及负载均衡等方面的内容。
在升级网络的时候,存储是另一个主要考虑的硬件,我们首先考虑是将磁盘直接绑定在文件服务器上。作为一种新的技术SCSI可以用于此处,例如,最近生产的Ultra320 产品,就可以为服务器提供高达每秒320MB的数据存取速率。
SCSI技术支持一个控制器控制多个设备,这在存储阵列技术中是非常重要的一点,另外SCSI技术还是一种非常可靠和稳定的技术。
然而,由于ATA驱动器最近在能力和速度方面所取得的进步以及最近引入的串行ATA(SATA)产品也开始具有这方面的特性,使得SCSI技术的优势逐渐有所减弱,在低端产品中这一点尤其明显,在低端产品中SCSI产品的成本差异是主要的影响因素。
要想提高系统的性能,选择从ATA磁盘升级到SCSI产品的代价是非常昂贵的,但是,转向使用SATA产品还是一个性价比非常合适的办法。这种转换需要一个新的存储控制器以及替换所用的驱动器,如今SATA磁盘的容量可以达到100GB以上,并且其转速可以达到10,000rpm。
这一点很重要,因为转速是决定性能的最主要因素。当然,由于需要使用新的磁盘,所以你需要对数据进行全面的备份和恢复,这项工作需要时间,而且由此产生的中断也需要作为一种成本因素考虑在升级成本之中。
假如你考虑升级到磁盘阵列,这也是提高存储分系统性能和可用性的另一种方法。
使用阵列来保证可靠性
在使用存储阵列的情况下,数据将被分段写到多个磁盘驱动器上。使用这种技术就可以实现并行的读写数据,这与串行访问--数据全部写在一个驱动器上--相比较而言,具有更高的吞吐率。
可以有很多办法来配置磁盘阵列,有的方法可以增加额外的性能,有的方法则会实现更好的冗余备份,而有的方法则具备这两者的优点。这些不同的配置方法也就是大家所共知的RAID(独立冗余磁盘阵列)分级配置,最常见的实现方法就是RAID 0 和RAID5。
正如刚才所描述的一样,在使用RAID0阵列技术的情况下,数据将被简单的分成几段,分别写到不同的磁盘上。这种情况没有非凡的硬件需求,而且在大多数网络操作系统中都有软件来支持这种技术。
在这种情况下SCSI和ATA磁盘都可以使用(甚至可以将他们混合在一起使用),假如你想要以比较低的成本来提高存储性能的话,使用这种技术则是一种很好的选择。然而,在RAID0阵列中没有冗余,因此假如一旦其中一块硬盘损坏或者磁盘出现故障,那么所有与之相关的数据都将丢失。
在使用RAID5阵列技术的情况下,由于有额外的错误校正信息交叉在数据中,所以在出现错误时可以利用失效磁盘上的信息以及控制RAID软件等手段来重建数据。
至于不利的一方面,RAID 5并不一定改善存储的性能。在一个安装有硬件RAID控制器的文件共享服务器上我们进行了测试,其结果表明,与个别地访问磁盘(一种称为JBOD——完全磁盘束)相比较而言,将文件共享服务器设置为RAID 0的分段集合时,整个吞吐量只有小幅(7.5%)改进。
但是当相同的系统配置为RAID 5时,系统的吞吐量经常要比JBOD配置还要差,在系统的负载较低时这一点表现的尤其明显。
包括Windows在内,有些操作系统也支持RAID 5技术,但是假如你要求它的性能,那么你最好还是寻求专业的RAID控制器。很明确的是,你需要一个热切换磁盘,这样服务器可以不用关机就可以操作。虽然RAID控制器会占用一定的服务器CPU,但是它可以提供额外的缓存工具,并且在某些情况下,一旦出现停电时它还可以提供电池备份以维护缓存中的内容。
要求增加RAID支持的成本和工作量各不相同。例如,有些提供商在他们的服务器主板上集成了必要的电路,这样一来假如想要使用RAID技术,只需要增加一个很小的硬件进行连接即可。但是,大多数的提供商都要求在服务器中增加一个插件适配器和特定的驱动器支架。假如你想要实现热切换而不停机的话,则需要增加一个外部的驱动器机架。
从技术的角度考虑的话,我们既可以使用ATA磁盘也可以使用SCSI磁盘来创建一个存储阵列。然而,假如使用SATA驱动器来实现存储阵列,你会受到磁盘数量的限制,因为这些磁盘只能放在服务器的内部而不能放在服务器的外部。
除了小型网络之外,对于所有的网络来说,SCSI是一个最好的选择,但是这样一来你会花费大量的金钱,而性能的提高却很小。对于大多数公司来说,他们主要考虑的是如何提高存储的吞吐量,因此最好的选择应该是SAN。
假如使用SAN技术,用于存储的磁盘则不仅仅是绑定到单个的服务器上,而是分散在一个仅仅用于存储的网络上,当然,服务器也是连接在这个网络上。从传统意义上来说,使用这种技术需要使用价格昂贵的光纤通道硬件,但是大约从去年开始,使用普通以太网交换机的基于IP技术的SAN开始引入,从而可以大大降低SAN技术的成本。