我们都知道,即使再高的服务器可用性也有可能出现故障的时候,只不过不知道它何时出现而已。然而一旦服务器出现故障,通常不太可能像PC机那样停下机来进行长时间的维修(除非迫不得已),而是采用在线更换故障配件来进行维护的,这就是本文所要介绍的“热插拔”(Hot Plug)技术诞生的初衷。
热插拔技术就是指在服务器系统正常开机、运行的状态下,对故障配件进行更换、或者添加新的配件,涉及到三个方面的专业术语,那就是热替换(Hot Replacement)、热添加(Hot Expansion)和热升级(Hot Upgrade)。
热插拔技术其实很早就有了,最早的是SCSI硬盘的热插拔技术,我们最容易想起的也是它。那是因为当时在整个服务器配件中,出现故障机率最大的就是硬盘,而当时的服务器硬盘接口基本上都是SCSI接口类型,所以在SCSI硬盘上实现热插拔就成为当时之急需了。随着硬盘阵列技术的日益成熟,热插拔SCSI硬盘阵列也就成了服务器热插拔硬盘的代名词。它可以实现在在线情况下更换故障硬盘、添加新的硬盘进阵列中,极大地方便了服务器硬盘阵列系统的维护。
然而随着服务器应用的深入,服务器所承受的负荷远远走出了当时的情形,而且由于用户对网络的依赖性比以前更强了,所以对服务器系统的稳定性要求也较以前大大提高了。这样一来,对其它配件支持热插拔技术的呼声也就越来越高了,因为现在服务器系统主要出现故障的配件不再仅是硬盘系统了,而更多的可能是内存、PCI适配器、电源和风扇等。有的甚至支持CPU和服务器本身热插拔,当然这主要是在高端多路处理器服务器系统和群集服务器系统中。现在,热插拔技术在确保服务器系统可用性已显得越来越重要了,已成为服务器的标准技术。尽管不同档次的服务器所支持的热插拔配件并不完全一样,但对于像硬盘、电源和风扇的热插拔技术支持已成为最基本的服务器技术配置了。
不过要说明的是,热插拔技术现在已不再是服务器系统所专用,在PC系统也开始得到应用,但并不主要是出现系统维护方面考虑的,如支持热插拔的USB接口。需要连接USB外设时,只需把它插入到计算机的USB接口即可,而不管计算机当前是否正在运行。
前面我们说到了,现在的服务器系统支持热插拔技术的已远不是SCSI硬盘一种了,已在像CPU、内存、网卡、电源和风扇等关键设备中全面支持。但从原理上来说,最底层的技术支持还是像PCI、PCI-X、PCI-E和InfiniBand之类总线技术。
热插拔功能的实现首先需要软、硬件的共同支持,包括有热插拔功能的硬件设备、支持热插拔的操作系统和用户界面、主板BIOS以及支持热插拔功能的PCI总线等等。其中PCI热插拔技术对于网卡、电源、风扇、SCSI设备等热插拔硬件的应用来说意义重大,因为它是这些设备得以实现热插拔功能的基础。当然这里还有一个标准问题,因为PCI总线体系结构的改变就意味着硬件接口标准的改变,所以必须制定统一的工业标准,技术才能获得推广。
自从PCI规范标准化后,PCI热插拔技术也就得到了硬件方面的支持,但它还需要通过软件来完善和实现。首先是操作系统的支持,微软在Windows 2000系统中支持PCI热插拔功能的是“高级配置和电源接口”(ACPI)规范,通过屏蔽每个热插拔控制器来实现硬件的热插拔,以及在线升级(也就是热升级)。惠普在微软的ACPI规范的基础上又做了进一步改进,开发出“PCI Hot Plug Utility”远程管理工具,可以在操作系统不支持热插拔功能的情况下,用统一的管理平台统一调用和管理远程网络系统中的PCI热插拔插槽。而且惠普还对插槽进行了专用集成电路(ASIC)来控制热插拔设备时插槽的电流稳定性。显而易见,HP的ProLiant服务器由此获得了两种软件支持热插拔设备的途径,操作系统或者是PCI Hot Plug Utility管理工具。
有了PCI总线的支持,带电插拔服务器中的SCSI设备、网卡、电源、风扇等自然变得轻而易举。而其它几种目前较新的总线技术都是不同程度地从PCI总线升级得到的,在热插拔方面,不仅完全继续,而且还有相当大的提高,因为它们基本上(不是全部,PCI-X仍属于并行结构)都是从传统的并行向最新的串行接口技术转变,同一时刻的单一传输任务和极少的插针,使得采用这些接口的设备在热插拔时,对系统及自身的影响都远小于并行总线的PCI设备。这些新型的总线技术基本上都很容易地实现了对热插拔技术的支持,就像USB和SATA接口技术一样。正因如此,采用这些新型总线技术的网卡、硬盘阵列卡等设备也就全面继承并扩展了对热插拔技术的支持。这里要简单介绍的是IBM的Active PCI-X(活动PCI-X)技术。
Active PCI-X是IBM原来在大型机,现在是其企业级x架构服务器中普遍使用的一种热插拔技术。PCI-X 技术充分利用了 PCI 总线的广泛性,对常规 PCI 总线进行了改进和 I/O 升级。PCI-X技术在常规 PCI 总线带宽的基础上,将总线容量提高了八倍多 - 从32位、33-MHz PCI总线的133 MB/s提高到64位、133-MHz PCI-X总线的1066 MB/s。它增强了PCI协议,开发了一个工业标准的互连结构,原始带宽超过每秒1千兆字节(GB/s),将满足企业计算系统今后的带宽需求。PCI-X总线在适配器级和系统级上提供对PCI总线的向后兼容性。
IBM在成功实现Active PCI(活动PCI)技术的基础之上,在基于企业级服务器X架构设计的一些X系列服务器中引入同时支持PCI和PCI-X两种适配器接口的Active PCI-X(活动PCI-X)技术。活动PCI-X总线技术就为IBM提供了提升服务器总体性能的另一个解决方案。活动PCI-X的主要特性如下:
热交换 (Hot Swap):允许在不用关闭和重启服务器的情况下更换适配器。
热添加(Hot add):提供了一种容易的升级方式,允许在服务器运行的状态下添加新的适配器(在工业标准中IBM是第一个提供这种性能的)。
切换(Failover):允许在主适配器出现故障的情况下极快地用另一个备用适配器接替原来适配器的工作继续运行。
PCI及其它几种总线类型设备的热插拔支持解决了,但要实现服务器内存的热插拔,仅仅依靠PCI总线技术当然还不能完全解决。于是那些像IBM、HP这样的顶级服务器巨头就开始了自己的内存纠错技术的研究,相继出台了Chipkill和Advanced ECC内存纠错技术,比起传统的ECC技术来说,在发现和纠正内存错误能力上有了相当大的提高,因为它们都可以实现4比特的内存纠错。
尽管如此,这样简单的少数比特位发生错误的情况在整个内存错误中所占的比例仍不是很高,还有相当大一部分内存错误并不属于这一类,而是出现多比特位,甚至是硬件出现损坏,这时以上的几种纠错技术也就无能为力了。于是IBM、HP等服务器巨头又开始想其它办法了。同样相继开发了多种不同级别的内存保护技术,如IBM的内存保护(Memory ProteXion)技术、内存镜像(Memory Mirroring)技术、内存热添加/交换(Memory Hot-add/swap)技术;HP的镜像内存(Mirroring Memory)技术、在线内存备份(Online Spare Memory Mode)技术和热插拔阵列内存技术(Hot Plug RAID Memory)等。
当然以上并不是服务器热插拔技术的全部,就整个热插拔技术来说,还是相当复杂的广泛的。前面我们介绍到了,基本的PCI类适配器、电源和风扇热插拔比较容易实现,内存的热插拔实现较难,但处理器和服务器本身的热插拔就更难了,它涉及到许多比较深的技术,如处理器扩展、逻辑分获和服务器群集等,在此就不一一介绍了。