飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: 渔歌子

网络学堂之服务器篇

[复制链接]

该用户从未签到

 楼主| 发表于 2005-4-17 17:32:15 | 显示全部楼层
构建一套SMP系统的必要条件是:

  ·支持SMP的硬件,包括主板和CPU;
  ·支持SMP的系统平台,如Windows NT/2000 Server、Windows Server 2003、Linux以及其他Unix等32位操作系统;
  ·还需要有支持SMP的应用软件,才能发挥SMP的威力。

  在CPU方面,要组建一个SMP系统,最关键的就是需要合适的CPU相配合。支持SMP是有许多必要条件的,不可能随便拿几颗CPU就凑成SMP系统。支持SMP的CPU必须满足以下几个条件:

  (1)CPU必须内置APIC单元

  Intel多处理规范的核心就是高级可编程中断控制器(Advanced Programmable Interrupt Controllers,缩写为APIC)。CPU通过彼此发送中断来完成它们之间的通信,通过给中断附加动作,不同的CPU可以在某种程度上彼此进行控制。每个支持SMP的CPU都必须有自己的APIC,否则将无法处理多CPU之间的中断协调。

  (2)CPU的型号必须相同

  SMP的CPU必须具有相同的产品型号和同样类型的CPU核心。虽然AMD Athlon XP和Intel Pentium 4各自都内置有APIC单元,想要让它们一起建立SMP系统是不可能的,因为它们的运行指令不完全相同,APIC的中断协调差异也很大。即使是Intel Celeron和Intel Pentium 4也不能一起建立SMP,甚至即使是相同核心但是产品批号不同的CPU,也可能会影响SMP的建立。

  (3)运行频率要相同

  SMP的CPU需要运行在完全相同的运行频率上。例如要建立双Pentium 4系统,必须使用两颗频率相同的Pentium 4 CPU,比如都是2GHz,而不能是一颗1.8GHz,另一颗2GHz,否则系统将无法正常使用。

  (4)尽可能使用相同产品序列号的CPU

  即使是同样核心的相同频率处理器,由于生产批次不同也会造成意想不到的问题。两个生产批次的CPU作为双处理器运行的时候,有可能会发生一颗CPU负担过高,而另一颗负担很少的情况,无法发挥最大性能,更糟糕的是可能导致死机,因此,应该尽可能选择同一批生产(即具有相同产品序列号)的CPU来组建SMP系统。

  除了CPU外,服务器的主板也必须支持SMP,它是实现SMP诸多因素中仅次于CPU的因素。

  首先主板要支持SMP,否则这么多的CPU插在哪儿呢?有的SMP主板支持两颗CPU,有的能够支持4颗CPU,还有的主板支持更多的CPU,但是支持SMP的主板的CPU插槽数量必须是偶数。

  SMP主板并非只是增加几个CPU插槽,其中涉及非常复杂的多处理技术。SMP主板也需要I/O APIC来处理由I/O设备引起的中断。

  另外服务器的操作系统也要支持SMP。

  有了支持SMP的CPU和主板,并不等于万事大吉了。如果没有多处理器操作系统的支持,即使安装了多颗CPU和相应的主板,系统性能会跟装有1颗CPU的系统没有什么差别,原因就在于因为没有操作系统的支持。现在服务器操作系统一般都支持多CPU,比如Windows NT/2000 Server、Windows Server 2003、Linux以及其他Unix等32位服务器操作系统,而Windows 9x/Me等用于PC的操作系统是不支持多处理的。

  在应用软件方面,如果要体现SMP的优越性,也就有必要支持SMP。

  即使有了CPU、主板、操作系统的支持,但是如果没有针对SMP优化了的应用程序的支持,如PhotoShop、3D Studio MAX和AutoCAD等,SMP也不能自由发挥。只有针对SMP优化了的应用系统才能在SMP系统上大展身手,SMP可以显著提高经过优化了的应用软件的多任务和多线程性能。

  说了这么些,您对SMP有了一定的了解了吧?在以上的讲解中,我们忽略了相当多的技术细节,因为对于一般读者来说,没有必要知道这些技术细节,了解SMP的一般原理和如何实现就足够了。
2.群集技术

  服务器群集技术也是提高服务器性能的一项技术措施,它是近几年才兴起的一项高性能计算技术。一个服务器群集包含多台拥有共享数据存储空间的服务器,各服务器之间通过内部局域网进行相互通信。当其中一台服务器发生故障时,它所运行的应用程序将由其他的服务器自动接管。在大多数情况下,群集中所有的计算机都拥有一个共同的名称,群集系统内任意一台服务器都可被所有的网络用户所使用。服务器群集是将一组相互独立的计算机通过高速的通信网络而组成的一个单一的计算机系统,并以单一系统的模式加以管理。其出发点是提供高可靠性、可扩充性和抗灾难性。

  群集技术工作原理:在一个群集中,有一个节点服务器充当群集管理者(Cluster Manager)的角色,它最先收到用户发来的请求,然后判断一下群集中哪个节点的负载最轻,就把这个请求发过去。群集中的所有节点都会在本地内存中开设缓冲区,这个缓冲区类似NUMA系统中的桥接板。当一个节点需要使用其它节点内存中的数据时,这些数据会通过网络先放入本地缓冲区。

  群集系统的一个优点是容错性好,例如在两个街点的群集中,如果一个节点失效了,另一个节点可以通过检查缓冲区中的内容将失效节点的任务接管过去。目前最为流行的方式是用高速或超高速网络传输设备将几台服务器相连,实现并行处理,屏蔽单点失效。目前对群集技术需求最迫切、发展最快的领域主要有:www应用、数据库应用等商业计算领域。群集系统可以通过使用纯硬件的方式或使用软硬件结合的方式来搭建。

  集群系统可以按照应用或结构进行分类。

  (1)按应用目标可分为:面向科学计算型和面向关键任务应用型。

  (2)按组成集群的处理机类型可分为:PC集群、工作站集群和SMP(对称多处理器)集群。

  (3)按处理机操作系统可分为:Linux集群(如Beowulf)、Solaris集群(如Berkeley NOW)、NT集群(如HPVM)、AIX集群(如IBM SP2)、数字VMS(虚拟存储机)集群、HP-UX集群和微软Wolfpack集群。
  (4)按处理器的配置可分为:

  ·同构型集群:所有节点拥有近似的构造和相同的操作系统;
  ·非同构型集群:所有节点拥有不同的构造和不同的操作系统。

  (5)按处理机的位置和数量可分为:

  ·组集群:节点数量为2~99,通过SANs(系统级网络),如Myrinet,集群实际上装入一个机箱中或存在一个范围之内;
  ·部门集群:节点数量为几十或几百;
  ·企业集群:节点数量为几百。

  (6)按构筑集群的方式可分为

  ·专用集群
  ·非专用集群:极高的性能价格比使专用集群深受欢迎

  在群集系统中运行的服务器并不一定是高档产品,但服务器的群集却可以提供相当高性能的不停机服务,每一台服务器都可承担部分计算任务,并且由于群集了多台服务器的性能,因此,整体系统的计算能力将有所提高。同时,每台服务器还能承担一定的容错任务,当其中某台服务器出现故障时,系统可以在专用软件的支持下将这台服务器与系统隔离,并通过各服务器之间的负载转移机制实现新的负载平衡,同时向系统管理员发出报警信号。群集系统通过功能整合和故障过渡技术实现系统的高可用性和高可靠性,群集技术还能够提供相对低廉的总体拥有成本和强大灵活的系统扩充能力。
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表