什么是PC服务器服务器是指具有固定的地址,并为网络用户提供服务的节点,它是实现资源共享的重要组成部分。作为网络的节点,服务器存储并处理网络上80%的数据和信息,因此也被称为网络的灵魂。服务器可以分为两大类:一部分是IA(IntelArchitecture)服务器,主要以Intel的CPU为主;另一部分是比IA服务器性能更高的机器,如RISC/Unix服务器等。PC服务器在IA的范围之内,可以看作是IA-32(应用32位CPU的IA)服务器,是PC与服务器相结合的新产物。PC服务器在外型设计、内部结构、基本配置、操作接口和操作方式,以及价格与高端PC相仿。这造就了PC服务器在部件的搭配和选择的灵活性,且管理和维护更加方便。借助以上优势,在各种架构的服务器相互竞争的环境下,PC服务器阵营始终不败并不断扩大。PC服务器的分类从应用领域来看,PC服务器大致可分为入门级应用、工作组级应用、部门级应用和企业级应用四类。(1)入门级应用PC服务器主要是针对基于WindowsNT或NetWare网络操作系统的用户,可以充分满足办公室型的中小型网络用户的文件共享、数据处理、Internet接入及简单数据库应用的需求。(2)工作组级应用PC服务器是支持单CPU结构的应用服务器,可支持大容量的ECC内存和增强服务器管理功能的SM总线,功能全面、可管理性强、且易于维护,可以满足中小型网络用户的数据处理、文件共享、Internet接入及简单数据库应用的需求。(3)部门级应用PC服务器一般都是双CPU结构。集成了大量的监测及管理电路,具有全面的服务器管理能力,可监测如温度、电压、风扇、机箱等状态参数,结合标准服务器管理软件,使管理人员及时了解服务器的工作状况。同时,大多数部门级应用PC服务器具有优良的系统扩展性,能够满足用户在业务量迅速增大时能够及时在线升级系统,充分保护了用户的投资。它是企业网络中分散的各基层数据采集单位与最高层的数据中心保持顺利连通的必要环节,可用于金融、邮电等行业。(4)企业级应用PC服务器是高档服务器,普遍采用二到四个CPU结构,拥有独立的双PCI通道和内存扩展板设计,具有高内存带宽,大容量热插拔硬盘和热插拔电源,具有超强的数据处理能力。这类产品具有高度的容错能力及优良的扩展性能,可作为替代传统小型机的大型企业级网络的数据库服务器。企业级应用PC服务器适合运行在需要处理大量数据、高处理速度和对可靠性要求极高的金融、证券、交通、邮电、通信等行业。下面以高端的PC服务器为例,分核心、存储、外部I/O和特性四部分简要介绍PC服务器的技术。一、核心本文中所定义的核心为CPU、内存和芯片组三大块。PC服务器应用在各行各业,为了满足不断增长的运算需求,现代高端的PC服务器普遍采用了双/多CPU的架构(SMP),内存和芯片组也使用了特殊设计。1、CPU-SMPPC服务器中的双/多CPU多以SMP形式出现。SMP(对称多处理)全称是SymmetricalMultiProcessing,是一种广泛应用于服务器、图形工作站等高端运算领域的并行处理技术。它使用两颗或多颗CPU同时进行工作,这种架构中,同时有多个CPU运行软件的单一复本,可提高运算效率。一些对CPU要求较高的软件中,SMP架构性能凸现,大幅度领先于单CPU架构。PC服务器普遍采用8路CPU的SMP架构,8路以上服务器大多采用大型机中的NUMA架构。SMP技术对CPU是有要求的:首先,CPU中必须有APIC(可编程中断控制器)单元,这也是SMP技术的基本保证。CPU可以彼此发送中断信息完成信息交换,并可以相互进行协调控制。除了CPU内置的APIC单元外,主板上还要安装一个I/OAPIC以处理I/O设备引起的中断。这也是支持SMP的CPU价格昂贵的原因。其次用来组建SMP架构的CPU核心必须完全相同,且频率一致,否则无法点亮系统。下图为采用XeonCPU的典型SMP架构。我们看到,4颗CPU使用一条3.2GB/s的总线与北桥芯片连接,北桥芯片又和内存连接,所以每颗CPU分得了800MB/s的内存带宽。XeonCPU的典型SMP架构AMD的Opteron大家一定也不陌生,它也是一款服务器的CPU。由于其内部集成了内存控制器,所以每颗CPU拥有了独立的内存通道,是一种高性能的SMP架构。在IBM、HP等厂商的鼎力支持下,Opteron快速发展,并抢占了一部分Intel的市场,下图为4路Opteron的SMP架构。CPU之间用6.4GB/s的HT总线连接,每颗CPU可得到5.4GB/s的独立带宽,达到了比Xeon架构更强的I/O能力。4路Opteron的SMP架构2、内存-ECC内存的稳定性直接影响到整机的稳定性,为了保证服务器的工作稳定,在服务器中使用的内存都要求有ECC功能。ECC是(ErrorCheckingandCorrecting)错误检查和纠正。它同SMP一样,也是一种服务器中的内存纠错技术。ECC和奇偶校验(Parity)类似。绝大多数错误ECC可以纠正,而Parity只能检测到错误。经过ECC的纠错,计算机的操作指令才可以继续执行。ECC内存使用额外的bit存储一个用数据加密的代码。当数据被写入内存,相应ECC的代码与此同时也被保存下来。在读取数据时,原ECC代码就会和读数据时产生的ECC代码做比较。结果相同,则被视为无错;结果不同,则两个代码被译码,继续找到出错的那一位数据。出错的数据被抛弃,内存控制器随即再写入正确的数据。这就是ECC内存的工作原理,这一过程中虽然传输速度会受到一定影响,但在“稳定压倒一切”的服务器中,ECC起到了重要作用。ECC技术集成在内存中,要占用内存位宽。DDR内存的标准位宽是64位,加入ECC后,位宽为64+64÷8=72位。早期的SIMM内存,标准位宽是32位,加入ECC后为32+32÷8=36位。位宽的增加对内存颗粒要求更高,所以服务器的ECC内存价格不斐。3、芯片组相比技术含量较高的CPU等其它部件,芯片组只是为它们提供稳定的平台支持。服务器芯片组厂商中规模较大是通讯芯片制造商Broadcom旗下的子公司ServerWorks,是Intel服务器的主要芯片组供货商。ServerWorks崛起之时正逢Intel服务器芯片组业务处于青黄不接之时。当时其产品因为技术的瑕疵与支持Rambus内存技术而受创,因而Intel芯片组想打开服务器市场举步维艰。但随后Intel大力研发DDR内存芯片组抢回了一定的市场份额。为了区别于PC和Rambus内存的芯片组,Intel在服务器芯片组使用了不同的命名方式:E7XXX和E8XXX,E7XXX表示IA-32架构,E8XXX表示以Itanium为主的IA-64高端芯片组。无论是E7还是E8,它们都抛弃了Rambus而转向双通道DDR,特别是E7500,首次在SMP架构中使用了双通道DDR,加速了DDR技术的成熟和普及。此外,一些一线主板厂商利用其强大的研发能力使875P也支持双Xeon,拓展了高端PC服务器主板的选择范围。最近,由于Intel的积极研发,使其下一代64位Xeon(Nocona)也有了合适的双路平台——E7525。E7500AMD也一样,推出了许多自家的芯片组,并且得到了其它厂商的协助。AMD8XXX,nVIDIA的nForce4和HP的F8等芯片组,都是Opteron不错的搭档。由于Opteron集成了内存控制器,所以基于Opteron的服务器芯片组性能差别不大,大多是靠功能去竞争。二、存储这里的存储主要指PC服务器的硬盘及其接口和RAID。1、硬盘现代PC服务器中普遍采用了高转速、大单碟容量、大缓存、SCSI接口的硬盘,为了缩短数据寻道时间和读取数据的延迟,同时也增加硬盘内部传输率。高转速指盘片每分钟10000转,甚至一些高端硬盘采用了15000转,相对于桌面级的7200转硬盘,性能猛增。单碟指硬盘中的每一个盘片,单碟容量大说明该盘片的数据密度高,自然在寻找数据上时花费时间少,也是增强硬盘性能的重要途径。硬盘缓存运行于内存和硬盘盘之间,硬盘读写的数据都要经过缓存。缓存可以记录下读写频率高的数据,并将其存储,系统再次调用时可直接从缓存中找到,加快读取速度。但其结构复杂,成本高,使用现有工艺在有限的面积内不可能做的很大。上述技术在PC服务器的硬盘中大量运用,所以服务器硬盘价格非常高。在服务器硬盘方面,希捷一直是领航者,在许多关键技术上都有突破,一些具有代表性的产品让人记忆犹新。比如第一块万转硬盘(Cheetah4LP)和第一块15000转硬盘(CheetahX15),以及高性能的Cheetah15K3。希捷15K3硬盘在服务器硬盘发展的同时,始终伴随发热和噪音问题。这些问题迫使制造商开发新技术,也让一些设计不成熟的产品退出市场。上面提到的首款15000转CheetahX15,就是由于技术上的不成熟被高端的10000转硬盘超越。b、硬盘接口在PC中常见的PATA(ParallelATA,并行ATA)接口大家一定很熟悉,速度最快的PATA133接口,峰值带宽是133MB/s,明显不能满足数据吞吐量大的服务器的需求。首先要介绍的是在服务器领域广泛采用的SCSI硬盘接口。SCSI的全名是SmallComputerSystemInterface,(小型计算机系统专用接口),是为了小型计算机(现指服务器和高端工作站)设计的扩充接口。它同ATA一样,也是逐步发展来的技术。它可以让计算机驳接其它设备以提高系统性能或增加新功能,例如硬盘、光驱、扫描仪等。SCSI接口具有速度快,CPU占用率少的特点。目前在服务器领域普及的SCSI接口Ultra160MSCSI是在Ultra2SCSI(80MB/s)基础上使用双倍传输时钟(在时钟的上升沿和下降沿同时传输数据),带宽为160MB/s。高端的Ultra320MSCSI可以提供320MB/s的带宽,有效解决了硬盘传输频率的问题。由于SCSI接口使用的是独立的控制器(ATA则集成在主板中),控制器上有类似CPU硬盘控制的功能芯片,分担了CPU负担,所以读写数据时CPU占用率少。下图为一款Ultra320M的控制卡。SCSI可连接7至15部设备,可用性高于ATA的最多4部。Ultra320M的控制卡第二个要介绍的是在ATA基础上演变而来的SATA(SerialATA,串行ATA)技术。SATA采用串行点对点方式进行数据传输,接口及连接线针脚较少,成本较低。SATA可以广泛应用于硬盘、光驱等存储设备,并会逐渐取代传统的PATA连接方式。点对点传输模式保证每块硬盘150MB/s;从理论值来看,第一代串行ATA硬盘比传统的并行ATA133的133MB/s硬盘的接口传输速度没有多大变化,但从长远来看,第二代串行ATA产品的接口速率就会达到300或600MB/s,远远超过并行ATA硬盘的接口速度。SATA的数据线只有7芯,密度远小于PATA的80芯减小了信号串扰,也有利于机箱内部的散热。从Intel的ICH5南桥芯片开始,SATA控制器已集成,不需要像SCSI那样加插控制卡,进一步降低成本。目前IBM、希捷等厂商已推出多款SATA硬盘,鼎力支持SATA,但新技术,需要一定时间普及。综上所述,SATA是SCSI最大的竞争对手,PC服务器中已开始有厂商运用SATA技术。3、RAIDRAID(RedundantArrayofInexpensiveDisk)是廉价冗余磁盘阵列技术的缩写。它的原理是利用若干个小型硬盘驱动器加上控制器组成一个大的存储系统,从使用者来看是一个大硬盘。由于有多个驱动器并行工作,大大提高了存储可靠性和数据传输率。RAID技术在PC服务器中应用非常广泛。最常见的RAID形式是RAID0,它是最高性能的RAID。它将一个数据拆分成两个大小相等的块,分别写入两个硬盘。读取时,每个硬盘只读出一个块,再由控制器合成整体,如果一个块出问题,整个数据将不可用。RAID0需要最少2个硬盘,可提高工作效率。此外,对数据安全要求高的用户可组建RAID1,它是最可靠的RAID。它将