以下各节提供了关于配置被用在群集系统中的硬件的额外信息。
本节讨论电源控制器。关于电源控制器和它们在群集环境中所扮演的角色,请参阅第 1.1.3 节。
要获取被 Red Hat, Inc. 测试或(并)支持的串行连接和网络连接的电源开关列表,请参考红帽硬件兼容列表(Red Hat Hardware Compatibility List),它位于:
关于使用监视计时器来保障群集数据完好性的用法模型的描述位于第 1.1.3 节。如该节所描述,监视计时器有两种:基于硬件的和基于软件的。
本节详细说明要设置群集硬件配置中的监视计时器所需的配置任务。
不管你使用的是哪一种监视计时器,你都有必要为该监视计时器创建恰当的设备特殊文件。这可以通过以下命令来达到:
cd /dev ./MAKEDEV watchdog |
在使用群集配置工具时,每个被添加到群集中的新成员都默认启用了软件监视器功能。
任何群集系统都可以使用软件监视计时器来保障数据完好性,而没有必要使用专用的硬件部件。群集软件自动载入相应的叫做 softdog 的可载入内核模块。
如果群集被配置使用软件监视计时器,群集成员守护进程(clumembd)会定期重设计时器的间隔。如果 clumembd 没有重设计时器,失效的群集就会重新自行引导。
在使用软件监视计时器时,系统有可能被挂起,以致于软件监视器线程没有被执行。在这种罕见的情况下,另一个群集成员可能会接替似乎被挂起的群集成员的服务。一般来说,这是较安全的操作,但是如果挂起的群集成员忽然自动恢复了(发生的可能性极小),数据损坏就有可能发生。要进一步减少使用软件监视计时器时发生这种不利情况的可能性,管理员除了外部电源开关(若有)外还应该配置 NMI 监视计时器。
如果你使用软件监视计时器来保障数据完好性,推荐你还启用不可掩蔽的中断(NMI)监视计时器来增强对数据完好性的保障。NMI 监视计时器是导致系统在中断被阻塞而被挂起的情况下重新引导的另一种机制。NMI 监视器可以和软件监视计时器一起使用。
和软件监视计时器不同的是,软件监视计时器被群集仲裁守护进程(cluquorumd)重设,而 NMI 监视计时器计数系统的中断次数。正常情况下,一个健康的系统每秒接收上百个设备和计时器中断。如果 5 秒钟内没有发生中断,系统挂起事件就发生了,NMI 监视计时器就会超时,从而引发系统的重新引导。
你可以通过合并带有软件监视计时器的群集仲裁守护进程的健康监视功能和 NMI 监视器的低级系统状况检测功能来实现强健的数据完好性保障体制。
要正确操作 NMI 监视计时器机制,群集成员必须在主系统板上包含一个 APIC 芯片。
NMI 监视器是通过在内核的命令行上添加 nmi_watchdog=1 而在支持的系统上被启用的。以下是 /etc/grub.conf 中的例子:
![]() | 注记 |
---|---|
以下的 GRUB 和 LILO 引导装载程序只应用于红帽企业 Linux 的 x86 体系。 |
# grub.conf default=0 timeout=10 splashimage=(hd0,0)/grub/splash.xpm.gz title HA Test Kernel (2.4.9-10smp) root (hd0,0) # This is the kernel's command line. kernel /vmlinuz-2.4.9-10smp ro root=/dev/hda2 nmi_watchdog=1 # end of grub.conf |
在使用 LILO 的系统上,在 /etc/lilo.conf 的 append 部分添加 "nmi_watchdog=1"。例如:
# lilo.conf prompt timeout=50 default=linux boot=/dev/hda map=/boot/map install=/boot/boot.b lba32 image=/boot/vmlinuz-2.4.9-10smp label=linux read-only root=/dev/hda2 append="nmi_watchdog=1" # end of lilo.conf |
编辑 /etc/lilo.conf 之后运行 /sbin/lilo 来使改变生效。
要判定某个服务器是否支持 NMI 监视计时器,首先按照前面描述的方法给内核命令行添加 "nmi_watchdog=1"。系统被引导后,登录为根用户后键入:
cat /proc/interrupts |
其输出应和以下相似:
CPU0 0: 5623100 XT-PIC timer 1: 13 XT-PIC keyboard 2: 0 XT-PIC cascade 7: 0 XT-PIC usb-ohci 8: 1 XT-PIC rtc 9: 794332 XT-PIC aic7xxx, aic7xxx 10: 569498 XT-PIC eth0 12: 24 XT-PIC PS/2 Mouse 14: 0 XT-PIC ide0 NMI: 5620998 LOC: 5623358 ERR: 0 MIS: 0 |
以上输出中与此有关的部分是看一看 NMI id 是否出现在左侧。如果 NMI 的值大于零(0),服务器就支持 NMI 监视器。
如果这个办法行不通,即:如果 NMI 是零,请试着按照前面描述的方法把 nmi_watchdog=2 而不是 nmi_watchdog=1 传递给内核。系统引导后 再检查一下 /proc/interrupts。如果 NMI 的值大于零,那么 NMI 监视器就被正确配置了。如果 NMI 是零,那么你的系统就不支持 NMI 监视计时器。
内核为多种硬件监视计时器提供驱动程序支持。这些计时器中,有些是直接在系统板上实现的;有些是如 PCI 卡的单独的硬件部件。基于硬件的监视计时器在群集中提供了优异的数据完好性保障,因为它们的操作完全独立于系统处理器之外,所以能够在系统挂起事件发生时重新引导系统。
由于低级硬件监视器部件之间缺少统一的标准,我们很难描述如何识别某个系统是否包含这类部件。许多低级的硬件监视器部件没有自行标记。
在配置被内核支持的监视计时器时,你有必要在 /etc/modules.conf 文件中加入相应的项目。例如,如果使用了一个基于 Intel-810 的 TCO 监视计时器,你应该在 /etc/modules.conf 中添加以下行:
alias wdt i810-tco |