Posts Tagged 服务器
细说高端服务器
高端服务器作为与网络关系最为密切的硬件产品之一,是在网络环境下提供网上客户机共享资源(包括查询、存储和计算等)的设备。它具有高可靠性、高性能、高 吞吐能力和大内存容量等特点,并且具备强大的网络功能和友好的人机界面,是以网络为中心的现代计算环境的关键设备。随着互联网的高速发展,高端服务器在整 个信息高速公路基础结构中的作用越发重要。
高端服务器综述
服务器可以细分为两部分:一部分是IA(Intel Architecture)服务器,也就是我们常说的PC服务器或NT服务器;另一部分是比IA服务器性能更高的机器,如RISC/Unix服务器等,这种服务器被称为高端服务器。高端服务器的种类很多,从小型机、大型机到巨型机都有。
高端服务器领域的竞争很激烈,国外品牌有IBM、HP、Sun、SGI等实力雄厚的大公司。国内的曙光公司背靠国家智能中心、中科院计算所,是"国家 863"计划的试点企业。诸如"曙光1000"、"曙光2000—I"和"曙光2000—II"等超级服务器称得上是里程碑式的产品。曙光的产品不仅仅局 限于高端产品,曙光是我国目前唯一拥有全系列服务器产品的生产商,产品系列包括:天阔PC服务器、天演UNIX服务器和天潮超级服务器。联想在前一段时间 推出了8路机架式服务器,显示了其具备的技术和进军高端服务器市场的信心。浪潮的小型机采用对称多处理器技术,主要用于国民经济部门,并有一定的销售数 量,浪潮是国内小型机产品的领头厂商。
目前,大多数高端服务器都是RISC/Unix服务器。所以,谈到高端服务器的发展历史,就不能不提到RISC(精简指令集计算—Reduced Instruction Set Computing)技术。
20世纪70年代,IBM发明了RISC技术。80年代后期,RISC结构逐渐代替了CISC (复杂指令集计算- Complex Instruction Set Computing),成为主流微处理器设计结构。使用
RISC技术是为了优化指令系统、加快程序编译、提高运行速度。RISC技术采用了更加简单和统一的指令格式、固定的指令长度以及优化的寻址方式,使整个 计算结构更加合理。一般来说,RISC处理器比同等的CISC处理器要快50%~75%,同时RISC处理器更容易设计和纠错。
在RISC架构的基础上,各厂家又研制出了自己的处理器。目前在使用的主要有PowerPC处理器、SPARC处理器、PA-RISC处理器和MIPS处理器。
PowerPC处理器
90年代,IBM、Apple和Motorola开发PowerPC芯片成功,并制造出基于PowerPC的多处理器计算机。PowerPC 架构的特点是可伸缩性好、方便灵活。第一代PowerPC采用0.6微米的生产工
艺,晶体管的集成度达到单芯片300万个。1998年,铜芯片问世,开创了一个新的历史纪元。2000年,IBM开始大批推出采用铜芯片的产品,如 RS/6000的X80系列产品。铜技术取代了已经沿用了30年的铝技术,使硅芯片多CPU的生产工艺达到了0.20微米的水平,单芯片集成2亿个晶体 管,大大提高了运算性能。而1.85V的低电压*作(原为2.5V)大大降低了芯片的功耗,容易散热,从而大大提高了系统的稳定性。
现在,1GHz的Power4处理器已经完成设计。Power4除了将时钟频率从现在的500MHz提高到1GHz之外,还将率先采用 0.11微米工艺,晶体管集成度达1.7亿,以及7层铜和SOI(绝缘
硅-Silicon On Insulator)技术。这些技术将使Power4跃上服务器芯片的历史新台阶。
SPARC处理器
1987年,Sun和TI公司合作开发了RISC微处理器—SPARC。SPARC微处理器最突出的特点就是它的可扩展性,这是业界出现的第一款有可扩展性功能的微处理器。SPARC的推出为Sun赢得了高端微处理器市场的领先地位。
1999年6月,UltraSPARCⅢ首次亮相。它采用先进的0.18微米工艺制造,全部采用64位结构和VIS指令集,时钟频率从 600MHz起,可用于高达1000个处理器协同工作的系统上。
UltraSPARCⅢ和Solaris*作系统的应用实现了百分之百的二进制兼容,完全支持客户的软件投资,得到众多的独立软件供应商的支持。
在64位UltraSPARC处理器方面,Sun公司主要有3个系列。首先是可扩展式s系列,主要用于高性能、易扩展的多处理器系统。目前 UltraSPARCⅢs的频率已经达到750GHz。还有将推出的
UltraSPARC Ⅳs和UltraSPARC Ⅴs等型号。其中 UltraSPARC Ⅳs的频率为1GHz,UltraSPARC
Ⅴs则为1.5GHz。其次是集成式i系列,它将多种系统功能集成在一个处理器上,为单处理器系统提供了更高的效益。已经推出的UltraSPARC Ⅲi的频率达到700MHz,未来的UltraSPARC Ⅳi的频率将达到
1GHz。
PA-RISC处理器
HP公司的RISC芯片PA-RISC于1986年问世。第一款芯片的型号为PA-8000,主频为180MHz,后来陆续推出PA-8200、PA-8500和PA-8600等型号。
HP公司开发的64位微处理器PA-8700将于2001年上半年正式投入服务器和工作站的使用。这种新型处理器的设计主频达到800MHz 以上。PA-8700使用的工艺是0.18微米SOI铜CMOS工艺,采用7层铜
导体互连,芯片上的高速缓存达到2.25MB,比PA-8600增加了 50%。
HP公司未来还将推出PA-8800和PA-8900处理器,其主频分别达到1GHz和1.2GHz。PA-RISC同时也是IA-64的基础。在未 来的IA-64芯片中,会继续保持许多PA-RISC芯片的重要特性,包括PA-RISC的虚拟存储架构、统一数据格式、浮点运算、多媒体和图形加速等。
MIPS处理器
MIPS技术公司是一家设计制造高性能、高档次及嵌入式32位和64位处理器的厂商,在RISC处理器方面占有重要地位。1984年,MIPS计算机公司成立。1992年,SGI收购了MIPS计算机公司。1998年,MIPS脱离SGI,成为MIPS技术公司。
MIPS公司设计RISC处理器始于80年代初,1986年推出R2000处理器,1988年推出R3000处理器,1991年推出第一款 64位商用微处理器R4000。之后,又陆续推出R8000(于1994年)、R10000
(于1996年)和R12000(于1997年)等型号。之后,MIPS公司的战略发生变化,把重点放在嵌入式系统。1999年,MIPS公司发布MIPS 32和MIPS 64架构标准,为未来MIPS处理器的开发奠定了基础。新的
架构集成了所有原来MIPS指令集,并且增加了许多更强大的功能。MIPS公司陆续开发了高性能、低功耗的32位处理器内核(core)MIPS 32 4Kc与高性能64位处理器内核MIPS 64 5Kc。2000年,MIPS公司发
布了针对MIPS 32 4Kc的新版本以及未来64位MIPS 64 20Kc处理器内核。
现在,RISC芯片仍然在Unix系统平台上广泛应用,而且可以支持WindowsNT系统。基于RISC架构的多处理器在像数据库或专用服务器这样的对计算能力有严格要求的领域仍然占据一席之地。
IA-64处理器
自从1993年Intel及其伙伴企业推出基于486系统的IA服务器以来,IA服务器经历了486系统、PentiumPro系统、PII 系统、PIII系统、XEON系统等几个阶段。处理器系统的处理能力在大幅度提
高,而服务器系统的总线结构始终是IA-32总线体系。
IA-32服务器在发展到8路XEON服务器以后,体系结构已经开始成为制约服务器性能提高的瓶颈。先是PCI通道带宽瓶颈,现在是内存总线带宽瓶颈 和处理器系统扩展瓶颈。因此,HP和Intel自1994年开始合作开发IA-64架构的处理器,希望通过把HP在RISC领域的十年工作经验和超长指令 字结合起来,在微处理器级上改进性能,以增加指令级上的并行性。
IA-64结构既不是Intel的32位x86结构的扩充,也不是完全采用HP公司64位PA-RISC结构,而是一种全新的设计样式。IA -64基于EPIC(显性并行指令计算—Explicitly Parallel
Instruction Computing)技术。
IA-64主要特性表现在几个方面:
* IA-64的系统内存寻址空间更大,可以支持32GB以上的内存,而IA-32服务器目前可以支持的最大内存容量是16GB。
* IA-64的处理器寻址、处理能力更强、速度更快。安腾(Itanium)处理器主频起步至少1GHz,二级Cache在2MB以上。
* IA-64系统增强的128位浮点计算寄存器大大提高了系统的浮点计算能力。
* IA-64系统将使用基于Infiniband技术的总线结构,它是以交换式系统总线代替目前的共享式总线为核心,将NGIO和 FutureIO两种技术合二为一,使系统总线、内存总线带宽和I/O总线带
宽都将大大提高。IA-64系统带宽在2GB/s以上,而目前的SMPIA- 32服务器的系统带宽是1.06GB/s,PCI带宽一般是0.4GB/s。
* IA-64包括一系列的内置特征,以延长计算机的正常运转时间,减少宕机时间。机器检测体系在内存和数据路径中提供了错误恢复和纠错能力,它能让IA-64平台从预先导致系统失败的错误中恢复过来。
目前正式宣布支持IA-64平台的有Monterey、Linux64、HP-UX、Solaris、Win2000等*作系统。
高端服务器技术
服务器性能指标以系统响应速度和作业吞吐量为代表。响应速度是指用户从输入信息到服务器完成任务给出响应的时间。作业吞吐量是整个服务器在单位时间内 完成的任务量。假定用户不间断地输入请求,则在系统资源充裕的情况下,单个用户的吞吐量与响应时间成反比,即响应时间越短,吞吐量越大。为了缩短某一用户 或服务的响应时间,可以分配给它更多的资源。性能调整就是根据应用要求和服务器具体运行环境和状态,改变各个用户和服务程序所分配的系统资源,充分发挥系 统能力,用尽量少的资源满足用户要求,达到为更多用户服务的目的。
技术目标
服务器所要求的高扩展性、高可用性、易管理性、高可靠性不仅是厂商追求的技术目标,也是用户所需求的。
可扩展性具体表现在两个方面:一是留有富余的机箱可用空间,二是充裕的I/O带宽。随着处理器运算速度的提高和并行处理器数量的增加,服务器性能的瓶 颈将会归结为PCI及其附属设备。高扩展性意义在于用户可以根据需要随时增加有关部件,在满足系统运行要求同时,又保护投资。
可用性是以设备处于正常运行状态的时间比例作为衡量指标,例如99.9%的可用性表示每年有8小时的时间设备不能正常运行,99.999%的可用性表 示每年有5分钟的时间设备不能正常运行。部件冗余是提高可用性的基本方法,通常是对发生故障给系统造成危害最大的那些部件(例如电源、硬盘、风扇和PCI 卡)添加冗余配置,并设计方便的更换结构(如热插拔),从而保证这些设备即使发生故障也不会影响系统的正常运行。
可管理性旨在利用特定的技术和产品来提高系统的可靠性,降低系统的购买、使用、部署和支持费用。最显著的作用体现在减少维护人员的工时占用和避免系统 停机带来的损失。服务器的管理性能直接影响服务器的易用性。可管理性是TCO各种费用之中所占比例最大的一项。有研究表明,系统的部署和支持费用远远超过 了初次购买所花的费用,而付给管理和支持人员的报酬又是其中所占份额最高的。另外,工作效率的降低、商业机会的丧失和营业收入的下滑所带来的财务损失也不 可忽视。因此,系统的可管理性既是IT部门的迫切要求,又对企业经营效益起着非常关键的作用。可管理性产品和工具可通过提供系统内部的有关信息而达到简化 系统管理的目的。通过网络实现远程管理,技术支持人员在自己的桌面上即可解决问题,不必亲赴故障现场。系统部件可自动监视自己的工作状态,如果发现故障隐 患可随时发出警告,提醒维护人员立即采取措施保护企业数据资产,故障部件更换的*作也非常简单方便。
说到可靠性,简单来说就是要求服务器必须稳定运行,也就是宕机率低。其中的关键在于*作系统与硬件设备的协作,如果待处理的资源控制在CPU 和*作系统上,而不是应用上,就会避免由于某项任
务处理出错而导致系统无法运行,服务器宕机率将大大降低,而这也恰恰是Unix/Linux系统的优势之一。导致日常维护工作的中断有:主机升级、硬件维 护或安装、*作系统升级、应用/文件升级或维护、文件重组、全系统备份等原因。意外的灾难包括硬盘损坏、系统故障、软件故障、用户错误、电源掉电、人为破 坏和自然灾害等因素。
SMP
SMP(Symmetrical Multi-Processor)就是对称式多处理器。在对称式结构中,机器里每一位处理器的地位都是一样的,它们连接在一起,共享一个存储器。存储器里 有一个*作系统,每个计算机都能运行这个*作系统,都能响应外部设备的要求,即每个存储器的地位是平等的、对称的。在国内市场上这类机型的处理器一般以4 个或8个为主,有少数是16个处理器。但是一般来讲,SMP结构的机器可扩展性较差,很难做到100个以上多处理器,常规的一般是8个到16个,不过这对 于多数的用户来说已经够用了。这种机器的好处在于它的使用方式和微机或工作站的区别不大,编程的变化相对来说比较小,原来用微机工作站编写的程序如果要移 植到SMP机器上使用,改动起来也相对比较容易。SMP结构的机型可用性比较差。因为4个或8个处理器共享一个*作系统和一个存储器,一旦*作系统出现了 问题,整个机器就完全瘫痪掉了。而且由于这个机器的可扩展性较差,不容易保护用户的投资。但是这类机型技术比较成熟,相应的软件也比较多,因此现在国内市 场上推出的并行机大量都是这一种。
集群技术
通俗地说,集群是这样一种技术:它至少将两个系统连接到一起,使两台服务器能够像一台机器那样工作或者看起来好像一台机器。采用集群系统通常是为了提 高系统的稳定性和网络中心的数据处理能力及服务能力。自80年代初以来,各种形式的集群技术纷纷涌现。因为集群能够提供高可用性和可伸缩性,所以,它迅速 成为企业和ISP计算的支柱。
常见集群技术
1.服务器镜像技术
服务器镜像技术是将建立在同一个局域网之上的两台服务器通过软件或其他特殊的网络设备(比如镜像卡)将两台服务器的硬盘做镜像。其中,一台服务器被指 定为主服务器,另一台为从服务器。客户只能对主服务器上的镜像的卷进行读写,即只有主服务器通过网络向用户提供服务,从服务器上相应的卷被锁定以防对数据 的存取。主/从服务器分别通过心跳监测线路互相监测对方的运行状态,当主服务器因故障宕机时,从服务器将在很短的时间内接管主服务器的应用。
服务器镜像技术的特点是成本较低,提高了系统的可用性,保证了在一台服务器宕机的情况下系统仍然可用,但是这种技术仅限于两台服务器的集群,系统不具有可扩展性。
2. 应用程序错误接管集群技术
错误接管集群技术是将建立在同一个网络里的两台或多台服务器通过集群技术连接起来,集群节点中的每台服务器各自运行不同的应用,具有自己的广播地址, 对前端用户提供服务,同时每台服务器又监测其他服务器的运行状态,为指定服务器提供热备份作用。当某一节点因故障宕机时,集群系统中指定的服务器会在很短 的时间内接管故障机的数据和应用,继续为前端用户提供服务。
错误接管集群技术通常需要共享外部存储设备—磁盘阵列柜,两台或多台服务器通过SCSI电缆或光纤与磁盘阵列柜相连,数据都存放在磁盘阵列柜上。这种 集群系统中通常是两个节点互为备份的,而不是几台服务器同时为一台服务器备份,集群系统中的节点通过串口、共享磁盘分区或内部网络来互相监测对方的心跳。
错误接管集群技术经常用在数据库服务器、MAIL服务器等的集群中。这种集群技术由于采用共享存储设备,所以增加了外设费用。它最多可以实现32台机器的集群,极大地提高了系统的可用性及可扩展性。
3.容错集群技术
容错集群技术的一个典型的应用即容错机,在容错机中,每一个部件都具有冗余设计。在容错集群技术中集群系统的每个节点都与其他节点紧密地联系在一起, 它们经常需要共享内存、硬盘、CPU和I/O等重要的子系统,容错集群系统中各个节点被共同映像成为一个独立的系统,并且所有节点都是这个映像系统的一部 分。在容错集群系统中,各种应用在不同节点之间的切换可以很平滑地完成,不需切换时间。
容错集群技术的实现往往需要特殊的软硬件设计,因此成本很高,但是容错系统最大限度地提高了系统的可用性,是财政、金融和安全部门的最佳选择。
目前在提高系统的可用性方面用得比较广泛的是应用程序错误接管技术,即我们通常所采用的双机通过SCSI电缆共享磁盘阵列的集群技术,这种技术目前被各家集群软件厂商和*作系统软件厂商进一步扩充,形成了市面上形形色色的集群系统。
操作系统
1.Unix
Unix操作系统具有功能强大、技术成熟、可靠性好、网络及数据库功能强等特点,在计算机技术特别是操作系统技术的发展中具有重要的不可替代的地位和 作用。尽管Unix系统受到了NT的严峻挑战,但它仍是目前唯一能在各个硬件平台上稳定运行的操作系统,并且在技术成熟程度以及稳定性和可靠性等方面仍然 领先于NT。
Internet的出现对服务器提出了更高的要求,如何适应并满足不断变化、增强的网络应用需求成为服务器技术发展面临的重要问题。作为服务器核心技 术的处理器不能完全依赖主频的提高来提升处理能力,处理器结构成为提高服务器性能的瓶颈。Unix的重要厂商,如HP、IBM、Sun、SGI等的策略之 一就是采用新技术,不断加强性能和容量方面的领先地位,主要包括64位处理器及64位*作系统、快速可扩充的互连技术、大内存及高性能的集群以及高带宽 I/O技术等。
IA-64体系结构出现后,Unix系统转向IA-64体系已成为业界的大趋势。最重要的是,诸多Unix厂商对IA-64的支持将打破以往 Unix和Wintel两大阵营的对立,将Unix所具备的开放性发挥到顶
峰,真正实现应用系统的跨平台使用,为用户提供最大的灵活性。Intel公司将设法建立不同Unix操作系统版本的通用标准,这是Intel为它的高端服 务器和下一代64位Merced芯片市场打下基础而必须达到的关键要求。这也是针对Microsoft与Intel在高端计算机领域存在着分歧而采取的一 个行动。Intel公司的开发战略旨在加速开发在基于Intel的服务器上运行的Unix系统。
在创建"统一的Unix"的过程中,Intel将与HP、IBM、Sun和SCO等公司展开合作。它们的合作表明,在高端"企业软件"市场上, Unix将继续担当关键的角色,而Microsoft则仍然在"伸缩性"等方面以一个后起之秀的面貌出现。伸缩性是衡量*作系统在处理较大数据量时的稳定 性的一个重要尺度。
2.Linux
Linux在企业计算方面的应用主要有下列几个方面:RAS(可靠性Reliability、可用性Availability、可服务性Serviceability)技术、冗余磁盘阵列(RAID)技术、集群计算(Cluster)和并行计算技术。
RAS、RAID、Cluster是企业运算中最尖端的部分,Linux如果试图进入银行、大型ICP等高端市场,不解决这些方面问题就没有任何可能性。
Linux这个新兴的操作系统,随着其普及程度的提高和自身的迅速发展,以及伴随今年IA-64这个新一代的企业运算平台而推出的IA- 64Linux和支持多达64个CPU和64GB内存的企业级核心2.4的发布,
Linux必将在企业计算领域发挥越来越大的作用。
在服务器操作系统市场,Linux不断增强原有的优势,一方面抵抗Windows对低端市场的侵蚀,另一方面向Unix控制下的高端服务器市场发起进 攻。1999年10月,TurboLinux发布了世界上第一个商业集群Linux服务器,这种成本低廉、有着良好扩展性和灵活性、具有广泛应用范围的解 决方案为Linux进入企业级高端应用和大型网站铺平了道路。据统计,大约有20%的Internet服务网站采用集群解决方案,未来这个市场将有惊人的 增长。由于在集群性能方面的进展,Linux正在冲击长期处于Unix控制下的高端服务器市场。
高端服务器选购
面对市场上众多的品牌、各种专业技术、悬殊的产品价格,如何为网络建设选购功能强大、适应需求的高端服务器,往往让用户感到困惑。其实选购服务器有一些切实可行的方法,用户不妨遵循这样一条MAPSS原则,即M-可管理性;A-可用性;P-性能;S-服务;S-成本。
一、M-可管理性(Management)
网络管理员的一项重要工作就是对服务器的管理。服务器的管理工作一方面表现在可以及时地发现服务器的问题,进行及时的维护、维修,避免或减少因为服务 器的宕机造成用户系统的全面瘫痪;另一方面,管理员可以通过管理及时了解服务器性能方面的情况,对在运行中有问题的服务器进行及时的升级。所有这些都可以 大大地提高企业的工作效率。
二、A-可用性(Availability)
高端服务器是网络、数据的中心,很多企业(如金融、邮电、证券等)要尽量避免服务器在工作时间内宕机,服务器的宕机会造成企业内外信息的中断,对外收 不到定单、对内业务流程终止,这是现代企业不能允许的。另外,政府机关、医疗机构要保障自身工作的正常运转,也必须避免服务器在工作时间内宕机。选择产品 时,用户需注意服务器能否保证24×7×365不间断工作无宕机,是否采用冗余技术。运行在关键环境下的中心主服务器一般要求多电源、热插拔硬盘、 RAID卡,必要时需提供双机热备份方案。
有多种原因会造成服务器宕机。硬件:AC供电故障、存储故障、内存、电源、风扇故障、处理器故障、系统板等;软件:系统软件、应用软件;使用:管理员、用户的误*作;环境:火灾、地震、洪水等。
既然宕机会给用户带来巨大损失,同时宕机的原因有多种多样,用户在选购时就要为有可能发生的最坏情况作好准备。
1.在AC供电故障问题上采用UPS加以解决。
2.在内存方面,服务器需支持错误检测和恢复(ECC-Error Checking &
Correcting)技术,此技术可以更正内存中的一位错。如果在ECC技术基础上增加了内存回写技术,就可有效避免两位错的出现。
3.服务器内部电源需要支持热插拔冗余电源,可避免因某一个电源的损坏而造成服务器的宕机。
4.服务器在运行时,内部温度会升高。系统温度过高极容易造成死机甚至硬件损坏。所以需要热插拔冗余风扇来帮助服务器进行有效的散热。
5.对于系统板、软件、使用等原因造成的系统宕机,用户可以采用更高一级的可用性解决方案,如集群技术等方案加以解决。
用户在为可用性确定服务器配置时,一定要注意两点:1.不可过分节约开支降低可用性,因为由此引发的宕机往往会造成更大的损失。2.选择务服器时,用 户应该详细了解服务器的具体特性和面向的应用环境是否与自己的需求吻合。从自己的实际需求出发,正确认识企业网络规模,合理利用资金,不要盲目追求高配置 而造成资金浪费。同时,用户也不要局限于仅满足当前需求。要有长远眼光,充分考虑到业务的增长,选择易升级、具有高可扩展性的服务器产品。要考虑到保护企 业投资。
三、P-性能(Performance)
由于企业的大量数据需要在服务器上运行,因此服务器的性能直接影响到企业的工作效率。一提到服务器性能,很多用户马上想到选用更高主频的CPU、更大的内存。其实这些仅仅是提高服务器整体性能的一部分。服务器整体性能的提高由以下几方面决定:
1.芯片组
芯片组用于把计算机上的各个部件连结起来,实现各部件之间的通讯,芯片组是计算机系统的核心部件。芯片组直接决定系统支持的CPU类型、支持的CPU 数目、内存类型、内存最大容量、系统总线类型、系统总线速度等等,归根结底,一个计算机系统的最终性能应由芯片组决定。选择最先进的芯片组结构,就保证了 系统性能的领先。
2.内存类型、最大支持容量
由芯片组决定的内存类型、最大支持容量对于系统的运算处理能力也具有非常大的影响。同样,如果我们的应用需要大量的运算处理,如数据库、ERP等应用,建议根据实际情况配置较大的内存容量。
3.采用高速的I/O通道
I/O始终是计算机系统的瓶颈,采用高速的I/O通道对服务器整体性能的提高具有非常重要的意义。对于需要客户机经常与服务器交换数据的应用,如数据库、ERP、证券等应用需要更为高速的I/O性能。
4.网络支持
服务器必须通过其内部的网卡与客户机通讯,网络带宽对服务器的响应具有决定意义。所以,不要忽视服务器对网络的支持情况。
四、S-服务(Service)
性能、价格、服务一贯是用户选购服务器的三个主要因素。服务首先是维修,维修的重中之重是维修速度,因为用户不可能忍受服务器长时间得不到维修而影响工作。7×24的服务对用户来说是非常必要的。其次是技术支持。包括售前、售后电话支持,还有在网站上提供的支持软件。
五、S-节约成本(Saving Cost)
有时用户往往被产品本身的价格所迷惑,以为价格越低自己付出的成本越低。其实不然,对于成本,我们应考虑拥有总成本。因为价格不同往往意味着性能、品 质、服务的不同。对于服务器我们必须从MAPS(管理性、可用性、性能、服务)四个方面全面考虑,才可能得到一个真正的成本。服务器性能的每一点提升,都 是以金钱为代价的。在价格方面,过低的价格意味着用户的付出会更多。低价格意味着品质的下降、服务的下降。高端服务器不是普通的计算机产品,其质量的好坏 本身就是用户企业自身的生命,企业用户如果过多地追求低价格,必然会冒服务器宕机以及售后维修、服务周期长的风险。购买知名品牌、性价比合适的产品,意味 着用户在将来不必付出更大的代价,从而降低拥有总成本。
化简为繁——优化你的网站层次
/*
############################################################################
#本文原作者: Litrin Jiang
#原文出处:www.litrin.net
#如需转载,请注明出处,谢谢!
############################################################################
*/
什么是层次?
史力克:就像洋葱。
当奇:为什么是洋葱,为什么不是泡芙?
史力克:因为洋葱有层次!!
常见的网站层次:
-
一层结构:
结构非常简单,只支持服务器端静态页面,网页文件数据直接从服务器硬盘中读出,经过www服务器传输给浏览器。
-
两层结构:
支持服务器端动态页面,页面文件经过处理后通过服务器传输给浏览器。最常见的3大页面语言:asp(iis) php(php+apache) jsp(tomcat).
-
最常用的3层结构:
这就比较完善了,数据流程:数据库->脚本解释->www服务器->浏览器。常见的IIS+sql(access) LAMP Tomcat+oracle等等一系列的经典搭配全都是说的这三层结构。
-
几种变种:
多数据库结构,多用于数据库端负荷较重的场合,将数据库分开存放,减轻负担。同时可使用数据库同步技术或者负载均衡技术(其实使用负载均衡逻辑上应该只算一台数据库)。
ps: 传说网易采用了2个数据库专门负责写数据,4个数据库专门负责读数据,中间采用数据同步技术保持数据同步。
放在这里将有点牵强,其实这不能算作服务器技术,而应该算作页面技术,多见于门户网站的论坛——将页面做成框架,通过cookies同步数据。如果要保持同步,笔者曾经听说过http server技术,但没有采用过。
页面缓存、缓冲技术
-
客户端缓存:
似乎没有什么好解释的:设定页面过期时间,客户端的浏览器就会自动缓存的。
-
“动转静”缓存:
原理就是将动态的网站转换成静态,从而达到减轻服务器负担和加速优化的目的。其转换出来文件名类似于***年*月*日-*****.html或者类似的,有些类似于***,***,***,*.html用“,”隔开的其实是传递的地址变量。具体生成这些文件的软件大多都是商业软件,如果哪位朋友发现有开源的产品,麻烦告诉我,在此感谢!
-
逆向代理缓存:
类似于http代理上网的原理,不过将他倒了过来,反向代理,本站也介绍过相应的配置方法,这种方法其实很常用,blogchina.com也用了类似的技术。(原先曾经有人问过我如何看出采用采用了页面缓冲,其实只要看它的http头,类似于“Server: squid/2.5.STABLE7”的就是了,看,版本号都有!)据我所知现在主要通过squid做缓冲,市面上也有所谓的网站加速器之类的硬件产品,实际上就是一个类似的嵌入产品。
PS:如果是采用了动态生成的页面,还要在脚本中稍加修改,具体方法烦请察看站内相关内容。
-
代理+缓存:
这个就比较高级了,结合了以上2者的特点,适合于超大规模的网站,一般用不到。
-
变种:
通过欺骗或者使用ip隧道技术使缓冲服务器代理或者访问本地的www服务器的方式达到访问目的。(主要通过修改本地主机信息)
负载均衡
-
基于域名的负载均衡:
原理类似于抽奖——准备多个IP,对应同一个域名。每做一次域名解析就随即返回一个IP,这无形中就等于将网站的访问量分摊给了多个主机,减少了单一节点的局限。具体判断方法是,nslookup命令返回的是多个ip地址
-
基于集群的负载均衡:
-
4层交换:
集群负载均衡系统简介
说到负载均衡,先得从集群讲起,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。例如一个提供Web服务的集群,对外界来看是一个大Web服务器。不过集群的节点也可以单独提供服务。
集群的概念容易和一些概念(SMP 、NUMA、MPP、分布处理)相混淆,其主要区别在资源被共享和复制的级别不同。它们是按SMP、NUMA、MPP、集群、分布处理从最紧密到最松散的排列。
SMP(多处理系统):这种系统是在一台计算机里有多个CPU,CPU之间的地位是平等的,它们共享内存空间和I/O设备。其工作方法是由操作系统负责将任务分解成多个并发进程,然后让其在不同的CPU上运行。
NUMA(非统一内存存取):这种系统可以让多处理计算机的CPU比SMP更高效地共享本地内存,CPU可以更快速地存取单一的内存区域,不过如需要也可以用间接方式存取其他区域的内存,这种方法是让某些CPU在给定范围的物理内存中有更大的优先使用权。
MPP(巨型并行处理):这种系统的节点都有自己的CPU,并有自己的专有资源。此种结构相对独立,但各个节点一般没有完全存取I/O的能力。
集群:集群系统是由独立的计算机组成,但有控制管理工具统一管理。
分布处理:它是比我们要构筑的集群系统更松散的连接,一般是任务在不同的地方完成,没有可以作为整体管理的单一实体。
以上的聚合方式有紧有疏,它们都有自己的适用范围,这里就不多说了,有兴趣可自己找些资料看,这里只是想让大家了解它所处的位置。
实现负载均衡的方法
集群的目的是共享和高效地利用资源,提供大型运算,提供负载均衡分配请求压力以及出现故障时能够进行切换实现高可用性。
限于篇幅,本文只对负载均衡的实现做些介绍(针对TurboLinux Cluster Server)。通过对相关软件的分析,实现集群负载的功能是通过流量管理实现的,具体有这样几种实现方法:直接路由(Direct forwarding)、网络地址转换(NAT)、隧道技术(Tunneling)。
·直接路由(Direct forwarding)
当参与集群的计算机和作为控制管理的计算机在同一个网段时可以用此法,控制管理的计算机接收到请求包时直接送到参与集群的节点。优点是返回给客户的流量不经过控制主机,速度快开销少。
·网络地址转换(NAT)
这种方法可能大家较熟悉,地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址,外界看起来包是来自地址转换器本身,当外界包送 到转换器时,它能判断出应该将包送到内部网的哪个节点。优点是节省IP地址,能对内部进行伪装;缺点是 效率低,因为返回给请求方的流量经过转换器。
·隧道技术(Tunneling)
这种方式是在集群的节点不在同一个网段时可用的转发机制,是将IP包封装在其他网络流量中的方法,为了安全的考虑,应该使用隧道技术中的VPN,也可使用租用专线。
集群所能提供的服务是基于TCP/IP的Web服务、Mail服务、News服务、DNS服务、Proxy服务器等等,下面我们将就具体的产品TurboLinux Cluster Server 来实现一个进行负载均衡集群系统,用于提供Web和FTP的服务。
四台服务器的负载均衡实例
所提供的服务:Web、FTP。
系统的实现目的:做一个较完善负载均衡的系统,以便能用到其中的较多的功能。
采用设备状况:使用四台服务器,其中3台装TurboLinux Cluster Server,1台安装Windows 2000 Sever。
·系统安装
1.在两台服务器上安装TurboLinux, apache和wu-ftpd也要安装,因为集群要提供这种服务,安装完后重启,挂接光驱在目录/mnt/cdrom下,执 行./TLCS-install,然后按提示完全安装。
2.在一台服务器上安装Windows 2000 Server,要安装Internet Information Server 5.0。
·系统配置
1.设置各台服务器的IP地址、子网掩码、路由等,调通网络,将一台TurboLinux服务器设置 成DNS服务器,使其能够正向解析和反向解析。服务器名此例为 pc1,域为test.com。
2.配置Cluster Server。执行Turbolinux clusteradmin,设置情况如下(注:箭头连接的是选单选项,箭头所指为下级选单,最后冒号后为设置情况)。
ClusterServer Configuration→Cluster Services→Application Stability Agents:
(1)http为默认的服务,不用设置
(2)ftp—-/usr/lib/ftpAgent
ClusterServer Configuration→Cluster Services→Service Settings:
(1)http,80:TCP,sticky
(2)ftp,21:TCP,ftp
ClusterServer Configuration→Servers Configuration:
(1) pc1 (pc1.test.com),direct,ping
(2) pc2 (pc2.test.com),direct,ping
(3) pc3 (pc3.test.com),direct,ping
(4) pc4 (pc4.test.com),direct,ping
ClusterServer Configuration→Advance Traffic Managers:
(1)Advance Traffic Manager System: pc1.test.com
(2)Advance Traffic Manager Setting: 默认值
ClusterServer Configuration→Virtual Severs:
(1)主机为:pc1.test.com
(2)sendmail:master@pc1.test.com
(3)Server pool name: ServerGroup1
ClusterServer Configuration→Globle Settings:
网络设置:netmask 255.255.255.0
·配置集群各接点
因为TurboLinux Cluster Server 本身能被工具自动同步,所以只需配置Windows 2000 Server:
开始→设置→控制面板→添加新硬件→下一步→添加/排除设备故障→添加新设备→否,我想从列表选择硬件→其他设备→Microsoft:Microsoft Loopback Adapter→完成。
桌面上右键单击"网上邻居"→属性→TCP/IP→设置IP地址、缺省网关,子网掩码(注:先设成:255.255.255.0)。
开始→运行→regedit→找到注册表中跟Microsoft Loopback Adapter相关的项,将子网掩码改成:255.255.255.255。
配置系统以便运行合适的服务、并配置适合控制管理器管理的配置,以便可在控制管理器中使用。
·在管理选单中执行内容同步
选tlcs_content_sync,输入密码,将复制控制管理计算机中的服务内容。
·在管理选单中执行设置同步
选tlcs_config_sync,输入密码,将复制控制管理计算机中的设置。
现在已经可以进入运行状态,可将客户端连接在服务器的交换机上,客户端可以请求Web和FTP服务,需要查看运行情况可以用控制台从https://pc1.test.com:910管理。
在计算机技术中集群负载平衡是自成体系的,目前它是一个热门技术也是一个高端应用,Internet/Intranet中使用集群负载平衡方案的地方十分 广泛,尤其是大中型网站都难脱离这种技术,直接路由(Direct forwarding)、网络地址转换(NAT)、隧道技术(Tunneling)都会因需要而被采用。它在网络中的作用和被人们重视程度都是很高的,如 果你也感兴趣的话,不妨也来试试。
使用负载均衡技术建设高负载的网络站点
上次在加速LAMP一文的最后提到了负载均衡技术,这就是一篇关于负载均衡具体实现的理论分析。
Internet的快速增长使多媒体网络服务器,特别是Web服务器,面对的访问者数量快速增加,网络服务器需要具备提供大量并发访问服务的能力。例如 Yahoo每天会收到数百万次的访问请求,因此对于提供大负载Web服务的服务器来讲,CPU、 I/O处理能力很快会成为瓶颈。
简单的提高硬件性能并不能真正解决这个问题,因为单台服务器的性能总是有限的,一般来讲,一台PC服务器所能提供的并发访问处理能力大约为1000个,更 为高档的专用服务器能够支持3000-5000个并发访问,这样的能力还是无法满足负载较大的网站的要求。尤其是网络请求具有突发性,当某些重大事件发生 时,网络访问就会急剧上升,从而造成网络瓶颈,例如在网上发布的克林顿弹劾书就是很明显的例子。必须采用多台服务器提供网络服务,并将网络请 求分配给这些服务器分担,才能提供处理大量并发服务的能力。
当使用多台服务器来分担负载的时候,最简单的办法是将不同的服务器用在不同的方面。按提供的内容进行分割时,可以将一台服务器用于提供新闻页面,而另一台 用于提供游戏页面;或者可以按服务器的功能进行分割,将一台服务器用于提供静态页面访问,而另一些用于提供CGI等需要大量消耗资源的动态页面访问。然而 由于网络访问的突发性,使得很难确定那些页面造成的负载太大,如果将服务的页面分割的过细就会造成很大浪费。事实上造成负载过大的页面常常是在变化中的, 如果要经常按照负载变化来调整页面所在的服务器,那么势必对管理和维护造成极大的问题。因此这种分割方法只能是大方向的调整,对于大负载的网站,根本的解 决办法还需要应用负载均衡技术。
负载均衡的思路下多台服务器为对称方式,每台服务器都具备等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。然后通过某种负载分担技术,将外部 发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器都独立回应客户机的请求。由于建立内容完全一致的Web服务器并不复杂,可以使 用服务器同步更新或者共享存储空间等方法来完成,因此负载均衡技术就成为建立一个高负载Web站点的关键性技术。
1.基于特定服务器软件的负载均衡(访问重定向)
很多网络协议都支持"重定向"功能,例如在HTTP协议中支持 Location指令,接收到这个指令的浏览器将自动重定向到Location指明的另一个URL上。由于发送Location指令比起执行服务请求,对 Web服务器的负载要小的多,因此可以根据这个功能来设计一种负载均衡的服务器。任何时候Web服务器认为自己负载较大的时候,它就不再直接发送回浏览器 请求的网页,而是送回一个 Locaction指令,让浏览器去服务器集群中的其他服务器上获得所需要的网页。
在这种方式下,服务器本身必须支持这种功能,然而具体实现起来却有很多困难,例如一台服务器如何能保证它重定向过的服务器是比较空闲的,并且不会再次发送 Location指令?Location指令和浏览器都没有这方面的支持能力,这样很容易在浏览器上形成一种死循环。因此这种方式实际应用当中并不多见, 使用这种方式实现的服务器集群软件也较少。有些特定情况下可以使用CGI(包括使用FastCGI或 mod_perl扩展来改善性能)来模拟这种方式去分担负载,而Web服务器仍然保持简洁、高效的特性,此时避免Location循环的任务将由用户的 CGI程序来承担。
2.基于DNS的负载均衡(多机单域名负载)
由于基于服务器软件的负载均衡需要改动软件,因此常常是得不偿失,负载均衡最好是在服务器软件之外来完成,这样才能利用现有服务器软件的种种优势。最早的 负载均衡技术是通过 DNS服务中的随机名字解析来实现的,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中的 一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,他们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。
例如如果希望使用三个Web服务器来回应对www.exampleorg.org.cn的HTTP请求,就可以设置该域的DNS服务器中关于该域的数据包括有与下面例子类似的结果:
www1 IN A 192.168.1.1
www2 IN A 192.168.1.2
www3 IN A 192.168.1.3
www IN CNAME www1
www IN CNAME www2
www IN CNAME www3
此后外部的客户机就可能随机的得到对应www的不同地址,那么随后的HTTP请求也就发送给不同地址了。
DNS 负载均衡的优点是简单、易行,并且服务器可以位于互联网的任意位置上,当前使用在包括Yahoo在内的Web站点上。然而它也存在不少缺点,一个缺点是为 了保证DNS数据及时更新,一般都要将DNS的刷新时间设置的较小,但太小就会造成太大的额外网络流量,并且更改了DNS数据之后也不能立即生效;第二点 是DNS负载均衡无法得知服务器之间的差异,它不能做到为性能较好的服务器多分配请求,也不能了解到服务器的当前状态,甚至会出现客户请求集中在某一台服 务器上的偶然情况。
3.反向代理负载均衡(缓冲池)
使用代理服务器可以将请求转发给内部的Web服务器,使用这种加速模式显然可以提升静态网页的访问速度。因此也可以考虑使用这种技术,让代理服务器将请求 均匀转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web 服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。
实现这个反向代理能力并不能算是一个特别复杂的任务,但是在负载均衡中要求特别高的效率,这样实现起来就不是十分简单的了。每针对一次代理,代理服务器就 必须打开两个连接,一个为对外的连接,一个为对内的连接,因此对于连接请求数量非常大的时候,代理服务器的负载也就非常之大了,在最后反向代理服务器会成 为服务的瓶颈。例如,使用Apache的mod_rproxy模块来实现负载均衡功能时,提供的并发连接数量受Apache本身的并发连接数量的限制。一 般来讲,可以使用它来对连接数量不是特别大,但每次连接都需要消耗大量处理资源的站点进行负载均衡,例如搜寻。
使用反向代理的好处是,可以将负载均衡和代理服务器的高速缓存技术结合在一起,提供有益的性能,具备额外的安全性,外部客户不能直接访问真实的服务器。并 且实现起来可以实现较好的负载均衡策略,将负载可以非常均衡的分给内部服务器,不会出现负载集中到某个 服务器的偶然现象。
4.基于NAT的负载均衡技术(内网cluster和四层交换)
网络地址转换为在内部地址和外部地址之间进行转换,以便具备内部地址的计算机能访问外部网络,而当外部网络中的计算机访问地址转换网关拥有的某一外部地址 时,地址转换网关能将其转发到一个映射的内部地址上。因此如果地址转换网关能将每个连接均匀转换为不同的内部服务器地址,此后外部网络中的计算机就各自与 自己转换得到的地址上服务器进行通信,从而达到负载分担的目的。
地址转换可以通过软件方式来实现,也可以通过硬件方式来实现。使用硬件方式进行操作一般称为交换,而当交换必须保存TCP连接信息的时候,这种针对OSI 网络层的操作就被称为第四层交换。支持负载均衡的网络地址转换为第四层交换机的一种重要功能,由于它基于定制的硬件芯片,因此其性能非常优秀,很多交换机 声称具备400MB-800MB的第四层交换能力,然而也有一些资料表明,在如此快的速度下,大部分交换机就不再具备第四层交换能力了,而仅仅支持第三层 甚至第二层交换。
然而对于大部分站点来讲,当前负载均衡主要是解决Web服务器处理能力瓶颈的,而非网络传输能力,很多站点的互联网连接带宽总共也不过10MB,只有极少的站点能够拥有较高速的网络连接,因此一般没有必要使用这些负载均衡器这样的昂贵设备。
使用软件方式来实现基于网络地址转换的负载均衡则要实际的多,除了一些厂商提供的解决方法之外,更有效的方法是使用免费的自由软件来完成这项任务。其中包 括 Linux Virtual Server Project中的NAT实现方式,或者本文作者在FreeBSD下对natd的修订版本。一般来讲,使用这种软件方式来实现地址转换,中心负载均衡器存 在带宽限制,在100MB的快速以太网条件下,能得到最快达80MB的带宽,然而在实际应用中,可能只 有40MB-60MB的可用带宽。
5. 扩展的负载均衡技术
上面使用网络地址转换来实现负载分担,毫无疑问所有的网络连接都必须通过中心负载均衡器,那么如果负载特别大,以至于后台的服务器数量不再在是几台、十几 台,而是上百台甚至更多,即便是使用性能优秀的硬件交换机也回遇到瓶颈。此时问题将转变为,如何将那么多台服务器分布到各个互联网的多个位置,分散网络负 担。当然这可以通过综合使用DNS和NAT两种方法来实现,然而更好的方式是使用一种半中心的负载均衡方式。
在这种半中心的负载均衡方式下,即当客户请求发送给负载均衡器的时候,中心负载均衡器将请求打包并发送给某个服务器,而服务器的回应请求不再返回给中心负载均衡器,而是直接返回给客户,因此中心负载均衡器只负责接受并转发请求,其网络负担就较小了。
这种方式的硬件实现方式也非常昂贵,但是会根据厂商的不同,具备不同的特殊功能,例如对SSL的支持等。
由于这种方式比较复杂,因此实现起来比较困难,它的起点也很高,当前情况下网站并不需要这么大的处理能力。
比较上面的负载均衡方式,DNS最容易,也最常用,能够满足一般的需求。但如果需要进一步的管理和控制,可以选用反向代理方式或NAT方式,这两种之间进 行选择主要依赖缓冲是不是很重要,最大的并发访问数量是多少等条件。而如果网站上对负载影响很厉害的CGI程序是由网站自己开发的,也可以考虑在程序中自 己使用Locaction来支持负载均衡。半中心化的负载分担方式至少在国内当前的情况下还不需要。
中国顶级门户网站架构分析
某日上网,遇一强贴,正巧最近也在使用一些类似的技术实现我们公司的网站,现将其贴出。
首先声明,下面的内容都是我个人根据一些工具形成的猜想。并不保证和现实中各大门户网站所用的架构一摸一样,不过我认为八九不离十了。
新浪和搜狐在国内的知名度可谓无人不知无人不晓。他们每天的点击率都在千万以上。这样大的访问量对于新浪和搜狐来说怎样利用有限的资源让网民获得最快的速度成为首要的前提,毕竟现在网络公司已经离开了烧钱的阶段,开始了良性发展,每一笔钱砸下去都需要一定回响才行的。另一方面,技术人员要绞尽脑汁,不能让用户老是无法访问、或者访问速度极慢。这样就算有再好的编辑、再好的销售,他们也很难将广告位卖出去,等待他们的将是关门。当然这些情况都没有发生,因为他们的技术人员都充分的利用了现有资源并将他们发挥到了极至。说到底就是用squid做web cache server,而apache在squid的后面提供真正的web服务。当然使用这样的架构必须要保证主页上大部分都是静态页面。这就需要程序员的配合将页面在反馈给客户端之前将页面全部转换成静态页面。好了基本架构就这样,下面说说我怎么猜到的以及具体的架构:
法宝之一:nslookup
实战:
nslookup www.sina.com.cn
Server: ns-px.online.sh.cn
Address: 202.96.209.5
Non-authoritative answer:
Name: taurus.sina.com.cn
Addresses: 61.172.201.230, 61.172.201.231, 61.172.201.232, 61.172.201.233
61.172.201.221, 61.172.201.222, 61.172.201.223, 61.172.201.224, 61.172.201.225
61.172.201.226, 61.172.201.227, 61.172.201.228, 61.172.201.229
Aliases: www.sina.com.cn, jupiter.sina.com.cn
这里可以看到新浪在首页上用到了那么多IP,开始有人会想果然新浪财大气粗啊。其实不然,继续往下看:
nslookup news.sina.com.cn
Server: ns-px.online.sh.cn
Address: 202.96.209.5
Non-authoritative answer:
Name: taurus.sina.com.cn
Addresses: 61.172.201.228, 61.172.201.229, 61.172.201.230, 61.172.201.231
61.172.201.232, 61.172.201.233, 61.172.201.221, 61.172.201.222, 61.172.201.223
61.172.201.224, 61.172.201.225, 61.172.201.226, 61.172.201.227
Aliases: news.sina.com.cn, jupiter.sina.com.cn
细心的人可以发现了news这个频道的ip数和首页上一样,而且IP也完全一样。也就是这些IP在sina的DNS上的名字都叫 taurus.sina.com.cn,那些IP都是这个域的A记录。而news,sports,jczs.news。。。都是CNAME记录。用DNS 来做自动轮询。还不信,再来一个,就体育频道好了:
nslookup sports.sina.com.cn
Server: ns-px.online.sh.cn
Address: 202.96.209.5
Non-authoritative answer:
Name: taurus.sina.com.cn
Addresses: 61.172.201.222, 61.172.201.223, 61.172.201.224, 61.172.201.225
61.172.201.226, 61.172.201.227, 61.172.201.228, 61.172.201.229, 61.172.201.230
61.172.201.231, 61.172.201.232, 61.172.201.233, 61.172.201.221
Aliases: sports.sina.com.cn, jupiter.sina.com.cn
其他的可以自己试。好了再来看看sohu的情况:
nslookup www.sohu.com
Server: ns-px.online.sh.cn
Address: 202.96.209.5
Non-authoritative answer:
Name: pagegrp1.sohu.com
Addresses: 61.135.132.172, 61.135.132.173, 61.135.132.176, 61.135.133.109
61.135.145.47, 61.135.150.65, 61.135.150.67, 61.135.150.69, 61.135.150.74
61.135.150.75, 61.135.150.145, 61.135.131.73, 61.135.131.91, 61.135.131.180
61.135.131.182, 61.135.131.183, 61.135.132.65, 61.135.132.80
Aliases: www.sohu.com
--------------------------------------------
nslookup news.sohu.com
Server: ns-px.online.sh.cn
Address: 202.96.209.5
Non-authoritative answer:
Name: pagegrp1.sohu.com
Addresses: 61.135.150.145, 61.135.131.73, 61.135.131.91, 61.135.131.180
61.135.131.182, 61.135.131.183, 61.135.132.65, 61.135.132.80, 61.135.132.172
61.135.132.173, 61.135.132.176, 61.135.133.109, 61.135.145.47, 61.135.150.65
61.135.150.67, 61.135.150.69, 61.135.150.74, 61.135.150.75
Aliases: news.sohu.com
情况和sina一样,只是从表面来看sohu的IP数要多于sina的IP数,那么sohu上各个频道用的服务器就要多于sina了?当然不能这么说,因为一台服务器可以绑定多个IP,因此不能从IP数的多少来判断用了多少服务器。
从上面这些实验可以基本看出sina和sohu对于频道等栏目都用了相同的技术,即squid来监听这些IP的80端口,而真正的web server来监听另外一个端口。从用户的感觉上来说不会有任何的区别,而相对于将web server直接和客户端连在一起的方式,这样的方式明显的节省的带宽和服务器。用户访问的速度感觉也会更快。
1. 难道就根据几个域名的ip相同就可以证明他们是使用squid的嘛?
当然不是,前面都只是推测。下面才是真正的证实我上面的猜测。先nslookup一把sina的体育频道。
nslookup sports.sina.com.cn
Server: ns1.china.com
Address: 61.151.243.136
Non-authoritative answer:
Name: taurus.sina.com.cn
Addresses:61.172.201.231, 61.172.201.232, 61.172.201.233, 61.172.201.9
61.172.201.10, 61.172.201.11, 61.172.201.12, 61.172.201.13, 61.172.201.14
61.172.201.15, 61.172.201.16, 61.172.201.17, 61.172.201.227, 61.172.201.228
61.172.201.229, 61.172.201.230
Aliases: sports.sina.com.cn, jupiter.sina.com.cn
然后直接访问这些ip中的任意一个ip试试看,访问下来的结果应该是如下图所示:
由此可以证明sina是在dns中设置了很多ip来指向域名sqsh-19.sina.com.cn,而其他各种相同性质的频道都只是sqsh- 19.sina.com.cn一个别名,用CNAME指定。dns的设置应该是这样的,然后server方面,通过squid 2.5.STABLE5(最新的稳定版为STABLE6)来侦听80端口。上面这些是根据一些信息分析而出的,应该基本正确的。下面一些就是我的个人的猜想:
它的真正的web server也同样是侦听80端口,因为在squid配置文件中有一项是:
httpd_accel_port 80
如果你设成其他端口号(比如88)的话,那上图的错误信息就会变成
While trying to retrieve the URL: http://61.172.201.19:88
工具2:nmap扫描程序:可以用来检查服务器开了什么端口。
我现在用nmap来扫描sina的一个ip:61.172.201.19来进行分析
bash-2.05$ nmap 61.172.201.19
Starting nmap 3.50 ( http://www.insecure.org/nmap/ ) at 2004-07-30 13:31 GMT
Interesting ports on 61.172.201.19:
(The 1657 ports scanned but not shown below are in state: filtered)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
Nmap run completed — 1 IP address (1 host up) scanned in 73.191 seconds
可以看到他对外只开了2个端口,80端口就是刚才我们说的squid打开的,这点刚才已经验证过了。而22端口是用来ssh远程连接的,主要是sa用来远程操作服务器用的安全性非常高的方法。
工具3:lynx或者其他可以读取http头文件的工具及小程序:
直接看例子比较好理解:
HTTP/1.0 200 OK
Date: Fri, 30 Jul 2004 05:49:47 GMT
Server: Apache/2.0.49 (Unix)
Last-Modified: Fri, 30 Jul 2004 05:48:16 GMT
Accept-Ranges: bytes
Vary: Accept-Encoding
Cache-Control: max-age=60
Expires: Fri, 30 Jul 2004 05:50:47 GMT
Content-Length: 180747
Content-Type: text/html
Age: 37
X-Cache: HIT from sqsh-230.sina.com.cn
Connection: close
上面是sina的http头的反馈信息。里面有很多有价值的东东哦:)譬如,它后面的apache是用2.0.49,还设了过期时间为2分钟。最后修改时间。这些都是要在编译apache的时候载入的,特别是Last-Modified还需要小小的改一把源码–至少我是这样做的。
综上所述
sina的架构应该是前面squid,按照现在的服务器2u,2g内存一般每台服务器至少可以跑4个squid2.5stable5. 这样它16个ip就用了4台服务器。后面一层是apache2.0.49应该会用2台。这2台可能用的全是私有ip,通过前面的squid服务器在 hosts文件中指定。具体的实现方法我会下次整理出我做实验的文档:)而apache的htdocs可能是有一个或2个磁盘阵列作nfs。apache mount nfs server的时候应该是只读的,然后另外还有服务器转门用来做编辑器服务器,用来编辑人员更新文章。这台服务器应该对nfs server是具有可写的权限。
—-这就一套完整的sina所运用的方案,当然很多是靠猜测的,我没有和sina的技术人员有过任何沟通(因为一个也不认识),否则我也就不会写出来了。其他sohu,163应该也有这样的架构。
最后声明:这只是一些静态页面组成频道的一个架构,sina还有很多其他服务器,什么下载,在线更新等不在这个架构中。
选择合适的主机托管商
随着个人创业及小型公司企业的增多,使用服务器提供相关资讯、下载、邮件等服务已经不再是什么新鲜的事情,像近年来网络创业的个人用户也非常多, 在网上的众多提供娱乐影音下载、论坛BBS等主机实际上相当一部分就是个人提供的。很多原来在家中架设服务器提供服务的用户已经感到环境的压力,特别是对 于一些有已经有收费服务的服务器,更是需要有良好的环境(全天候的空调环境及稳定的电力供应等),所以选择主机托管的情况也越来越多了。
一、托管前的准备--精打细算,在机房你才知道什么叫寸土如金
1、托管能带来那些好处
现在许多单位还在用虚拟主机,不仅价格贵,而且由于与别的网站共用一台服务器,所以速度、带宽受到诸多影响,托管服务器能带来很多好处,首先,不受别人 影响,网站更加稳定高速;其次,由于获得了服务器的完全控制权,可以运行许多原来不能运行的程序和服务;再次,还大大增强了数据的安全性,想想看,自己的 数据总是放在别人电脑里,总觉得不踏实,这下不必担心了。
对于那些打算靠服务器创业掘金的朋友,服务器的利用价值就更大了,可以对外提供诸如、电影下载、网络游戏、网络社区、企业邮局、虚拟主机等多种服务, 其中最常见的是虚拟主机,现在虚拟主机虽然遍地皆是,不过空间大一些可运行数据库的高档型虚拟主机价格还是不便宜的,例如一个支持数据库的500M虚拟主 机空间,收费多在1000元以上,一台拥有120G硬盘的服务器,理论上可以开200多个这种空间,当然实际是不可能的,就算开只开十分之一,开20个这 种空间,那么收费也在2万元,还可以同时开各种低档的空间,现在许多非IT类的企业网站都是静态的产品展示性网站,而且访问量很低,占用系统资源和带宽很 少,同时开几百个不是问题,假如每个100M,收费100元,那么又可以收费1万元,这样算下来,就已经收费3万元,减去服务器硬件投入5000元,再减 去服务器托管费用5000元/年,一年下来还有2万元毛利润!如果同时托管10台服务器呢?第二年呢,就没有硬件成本了,最多增加一块120G的硬盘,才几百元,算算利润。呵呵,实际上,许多朋友还同时开办许多其他服务,例如企业邮局、电影下载会员收费等等,一台服务器弄好了真是一个聚宝盆啊。
2、托管服务器选择什么类型更好?
很多朋友都知道在机房租个位置不便宜。对于很多个人或者小型公司企业来说,在初期的投资虽然想 尽可能省,但是却要学会如何去省,不该省的可别省了。托管主机建议是托管1U的机架式服务器,虽然初期硬件成本高一点,但是长远看还是这样比较合算,因为 电信机房的托管费都是按照1U每年多少钱来计算的,假如你的服务器个头太高,无疑就要多付出更多的托管费用,例如,在北京某机房,托管1U服务器4000 元/年,托管2U服务器就要6000元/年,由此可见,1U服务器在主机托管领域的应用是很有实际意义的。托管1U服务器与托管其他种类的服务器(例如 2U服务器、塔式服务器等)相比,托管费肯定是最便宜的。所以,要去托管,就请先把你塔式服务器里的配件拿出来,装进1U服务器机箱里,这能为您省下一大 笔银子,想想,服务器是要托管很多年的啊,得省多少钱啊。
二、“纸上谈兵”--如何挑选一个好的托管商
经典疑问:贵是否一定就好?
很多朋友问我,选哪个托管商好?如果您是学法律的,那我问你,我要打个官司,选哪个律师行好?如果您是汽车行业的,我要买汽车,那我问你买什么汽车好? 是不是觉得一言难尽,你肯定会说:“这先看你是什么情况,有什么具体要求。。。”一大堆这样的道理。我们中国有句老话“一分钱一分货”,那是不是把这个原 则套到所有事物身上都正确呢?按照一些人的说法“别瞎挑了,选贵的一定不会错”,笔者坚定地说,这样是观点是错的!我不说服务器托管的例子,说汽车的吧, 大家更为熟悉,如果别人问你买什么汽车好,你说挑贵的就不错,那中国不是全都跑大奔宝马法拉利了?好的定义不是单方面的,消费者去选购产品或者选购服务, 是双方的事情,不同需求的客户自然会有不同的选择,开的士的司机都知道法拉利起步及速度都够快,但是事实上满街跑的都是捷达夏利什么的,就是这个道理。所 以托管主机你别盲目去选贵的就行,就像用法拉利拉客,拉一辈子还赚不回本。
经典误区:盲目一味追求低价
答案大家想必猜得到,便宜未必没好货。不过即使是这样,笔者还是建议不要采用那种超级便宜的托管商,便宜中的好货有是有,但是机率太低了,还是放弃吧。这可是个硬道理,要不到时吃亏就后悔莫及了。
1、低价服务商变数大得惊人
现在市场上,主机托管的价格参差不一,同样托管1U主机,贵的开价8000元/年,便宜的只要2000元/年,之所以这样,因素很多,虽然不能说贵的就 一定好,但是也千万不要以为越便宜越好。那么低价的服务商差在哪了?其实当中有一个很重要的因素就是服务商的规模,是不是能够始终如一地经营,因为现在做 托管服务门槛较低,管理的也不是很严格,两个大学生到机房租一个机柜就可以搞,但是小公司、个人服务的不稳定因素太多,以我的经验基本上半年左右80%就 要有变化,一旦遇到经济波动或者机房租金上调利润太少,撒手不管了,或者乱换地方,乱换IP,就惨了,不要以为这很少见,其实现在这种情况是多数。
2、跑路事件时有发生
许多小公司的技术力量太弱,这在维护十几台服务器的时候还不明显,一旦靠低价吸引来的客户多了,弊端就显示 出来了,比如几十台服务器的时候,一两个技术员维护起来就很困难了。客户多了,问题自然也就多起来,死机、重启、速度慢、去机房检修线路、带客户去机房、 杀毒、机房出问题等等,无论什么问题,客户都觉得是托管的问题,客户半夜三更打手机咆哮是常事,本来收钱就少,一旦后续托管的少了,资金周转只出不进,还 得继续维护这些服务器到年底,你说能不烦吗?烦透了,手机一关,爱谁谁了,呵呵。这可不新鲜,前几天就有一个哥们扔下40多台机器,跑去度假去了,手机一 停万事皆休。肺腑之言,希望能给朋友们一些帮助。
当然,我并没有贬低小公司的意思,我觉得只要小公司认真做事,负责任,有耐力,是完全 可以选择的,但是有些事情真的不以人的意志为转移,我看到很多小公司,开始雄心万丈,不到半年,多数不到3个月,就出大问题。因为这期间正是客户多不多少 不少,麻烦事情多的阶段,很多公司挺不过去,就倒了。有时候真的挺不过去啊,你想想就两个人,半夜来电话,服务器出问题,就要去机房,这边客户电话不断, 气势汹汹,那边机房拖拖拉拉,有问题不解决,您说能不倒闭吗?
再次奉劝那些要托管主机的朋友,如果您将来服务器上是要放置上百个企业的网站资料,那就要小心行事,一旦出问题,只要有一两家企业因为服务器中断,告到工商局,你就惨了,轻则罚款,重则关门,所以尽量要选择有实力的规范的大公司,至少不会最后不接电话而上演人间蒸发。
三、实战经验--轻松四招教你挑选
第一招:第一次托管不妨先看ICP证
如果您是第一次托管,想要靠这台服务器创业,掘出人生第一桶金,那么首先绝对不要考虑没有icp许可证的“小公司”,要锁定资质好,规模大,名气大,信誉高的大公司,这是基本原则,就算多花几千元也值得,这个将来你就会明白为什么。
第二招:尽量跨过不必要的中间商(中介)
尽量跨过不必要的中间商,少绕弯子,这倒不全是为了省钱(当然这也是其中因素之一),因为中间商越多,将来的不稳定因素就越多,可能发生互相推诿,很难 办。要尽量找到那些直接从机房租用机柜的托管服务商。有朋友问是不是最好直接托管到机房最好?我认为也未尝不可,不过有时候直接托管到机房,价格要比通过 中间商贵很多,因为机房主要是针对那些租用机柜的公司,对零星的托管服务器的客户不是很重视,服务上也不一定赶得上好的托管服务商。
第三招:先别急着考察机房,建议先考察服务商
记住,不要约服务商在机房见面,因为考察机房是其次,考察服务商才是根本,要去服务 商的公司看看,房子大不大?人多不多?规模行不行?技术行不行?历史长不长?一般服务商都迫不及待约你去看豪华的机房,但是记住,机房再豪华,人家机房也 不会给你负任何责任,出了问题你只有找服务商。
不要选择没有固定电话、固定场所的网站做托管,特别不要理睬那些只留小灵通、神州行、QQ号码、E-mail的人,这类人员随时会人间蒸发,别看他们网上电话与你谈得火热,到了正经事的时候就含糊了,所以千万别把机器放他们哪儿搁,否则机器丢了你都没法报案。
第四招:考察机房重点放在它的规模、历史。
虽然考察机房次要,但是考察一下也是很必要的,不要只听服务商吹嘘带宽、速度多好,要看机房的规模、历史。现在北京机房林立,不时有新的机房涌现,一 说都是电信级别,人家说的可是电信级机房,没说是电信开的啊,不要误解啊,呵呵。服务商可能会给你当面测试网站的速度,但是带宽好速度好不一定永远好,这 话说着绕口,但却是个业内共知的规律。一个新机房最初因为机器少,所以速度肯定比较快,但是这种新机房考虑到初期的启动成本,往往通往互联网主干线的总出 口较小,经营一段时间,客户多了,速度就会慢得惊人(这个阶段不会很长,因为新机房开始总以低价格吸引租户,很快就会人满为患),而且许多新机房因为人 才、设备、经验、规章跟不上,导致许多怪异的问题,比如win2000机器快,freebsd机器就慢;一旦出事,解决问题速度奇慢;经常中断服务检修等 等。还有就是现在机房一般外观都比较豪华,例如多开设在四、五星级大厦里,这个什么也说明不了。
要多看看历史悠久的老牌子机房,不要以为老机房设备陈旧,其实它能稳定经营这么久,其积淀的人才、经验、设备、信誉、规矩,正是新机房欠缺的。
四、真知灼见--容易忽视的几大挑选学问
1、要签订严谨的托管合同
一定要签订严谨的托管合同,明确双方责任、权利,例如,服务商调试机器或者移动机器改变IP要及时提前三天通知用户,否则就要赔偿损失;服务商无权将服务器转托给别人等等。如果可能,最好看看托管服务商的营业执照、ICP证,如果开业时间太短的,最好敬而远之。
2、 最好不要异地托管
如果本地有机房最好在本地托管,不要千里迢迢托管到外地,因为服务器不可能全都依赖远程维护,有时候避免不了本地维护,而远在外地,没有人会帮您维修硬件、安装软件,即使帮您也很大不乐意,或者收费很黑,没有必要
4、 不限流量不代表不限带宽,谁都不限制等于谁都限制
在很多托管合同里,往往写明:不限制流量。听着不错,其实呢,要搞清楚,流量不等于带宽啊,不限制流量不代表不限制带宽,就好比说,一个自来水龙头, 不限制流量,但是限制流速,龙头只拧开细细一丝,虽然不限制流量,但是一个小时也放不满一缸水。这也是一个文字游戏。还有一些托管商,明确表示:我们不但 不限制流量,而且不限制带宽!听着很厉害,其实人家还有后面一句话:我不限制你,也不限制别人!得了,全是废话,都不限制,那么一个机柜里好几台机器都是 做下载的,最终大家速度慢如老牛,你去找托管商理论,人家振振有辞:没办法,我并没有保证你的最低带宽,我不限制你的流量和带宽,也就不能限制别人的流量 和带宽,带宽就这么多,谁的机器好,抢的多,就是谁的,我没法限制。最终才明白,这种无限制是最可怕的,很可能最慢。如果大家还不明白,我再举个例子,比 如在十字路口,一般都会有红绿灯,对于两条路来说,那就是有“限制”的,但正是这样的限制才能保证交通畅顺,但是如果大家都觉得红绿灯是在浪费时间,交通 部门把它给拿掉的话,那么车子就一脑儿都堵上去了,这时候你通过十字路口的速度恐怕会非常慢,这种“不限制”却成了“限制”了。
五、写在最后
由于篇幅限制,在具体的操作中当然还有不少值得注意的细节,在这里就不一一详述了,不过如果掌握了以上挑选的方法,找一个好的托管商也就不难了,另外, 要注明的是,在这里我就不直接给出哪些服务商好,哪些不好,要不就成为大大的枪手了,而且由于每个人的情况不同,推举出来的服务商也不一定适合所有人,就 像模特身上那漂亮的衣服穿在您身上却未必适合一样。
| 上海电信武胜机房 | 武胜路333号,人民广场南侧 |
建筑较旧 |
| 上海电信横浜机房 |
四川北路1761号,靠近横浜桥 |
设备一流,极力推荐 |
| 上海电信(信息网络部)复华机房 |
国权路525号复华科技大楼 |
Sorry!没去过 |
| 上海电信外高机房 |
浦东新区泰谷路77号 |
设备一流,机器少带宽大,缺点在于路途遥远 |
| 上海电信同普机房(国通网络机房) |
同普路926号,靠近真北路 |
设备良好,地方不太好找(同普路不是一通到底的) |
| 上海电信(信息网络部)漕溪机房 |
漕溪北路915号。 |
设备较差,非常拥挤 |
| 上海电信云莲机房 |
昌里东路510号,靠近南浦大桥 |
Sorry!没去过 |

近期评论