Apêndice B. Informações Suplementares de Hardware

As seções seguintes oferecem informações adicionais sobre a configuração do hardware utilizado em um sistema de cluster.

B.1. Configurando Controladores de Energia

Esta seção discute os controladores de energia. Para mais informações sobre estes e sua função em um ambiente cluster, consulte a Seção 1.1.3.

B.1.1. Comutadores de Energia

Para acessar uma lista de comutadores de energia seriais e de rede, testados ou suportados pela Red Hat, Inc. para controle de energia do cluster, consulte a Lista de Compatibilidade de Hardware da Red Hat na Internet:

http://hardware.redhat.com/hcl/

B.1.2. Configurando Comutadores de Energia Watchdog

Uma descrição do modelo de uso dos timers watchdog como uma solução para a integridade de dados do cluster aparece na Seção 1.1.3. Conforme descrito na seção, há duas variações de timers watchdog: os baseados em hardware e os baseados em software.

Esta seção detalha as tarefas de configuração necessárias para o uso do timer watchdog em uma configuração de hardware do cluster.

Independente do tipo de timer watchdog usado, é necessário criar o arquivo especial do dispositivo apropriado para o timer watchdog. Isto pode ser feito com os seguintes comandos:

cd /dev
./MAKEDEV watchdog

Ao usar a Ferramenta de Configuração do Cluster, cada novo membro adicionado ao cluster tem a funcionalidade de software watchdog habilitada por default.

B.1.2.1. Configurando o Software Timer Watchdog

Qualquer sistema de cluster pode utilizar o software timer watchdog como uma solução para integridade de dados, já que não é necessário nenhum componente de hardware. O software do cluster carrega automaticamente o módulo correspondente do kernel chamado softdog.

Se o cluster está configurado para utilizar o software timer watchdog, o daemon membership do cluster (clumembd) restaura periodicamente o intervalo de tempo. Se o clumembd falhar em restaurar o timer, o membro falho do cluster se auto reinicializa.

Ao usar o software timer watchdog, há um pequeno risco de pendências do sistema, de modo que o thread do software watchdog não é executado. Neste cenário pouco provável, o outro membro do cluster deve assumir os serviços do membro do cluster aparentemente pendente. Geralmente, esta é uma operação segura, mas na improvável ocasião em que o membro pendente retorna, pode ocorrer a corrupção de dados. Para diminuir as chances desta vulnerabilidade ocorrer ao usar o software timer watchdog, os administradores devem configurar também o timer watchdog NMI, assim como um comutador de energia externo (se estiver disponível).

B.1.2.2. Habilitando o Timer Watchdog NMI

Se você está usando o software timer watchdog como uma solução de integridade de dados, também recomendamos habilitar o timer watchdog Non-Maskable Interrupt (NMI) para aumentar as garantias de integridade dos dados. O timer watchdog NMI é um mecanismo diferente, pois faz com que o sistema reinicialize em um cenário pendente no qual as interrupções estão bloqueadas. Este watchdog NMI pode ser usado em conjunto com o software timer watchdog.

Ao contrário do software timer watchdog, que é restaurado pelo daemon quorum do cluster (cluquorumd), o timer watchdog NMI conta as interrupções do sistema. Normalmente, um sistema saudável recebe centenas de interrupções de dispositivo e de timer por segundo. Se não houver interrupções num intervalo de 5 segundos, ocorre uma pendência no sistema e o timer watchdog NMI expira, reinicializando o sistema.

Uma solução robusta para integridade dos dados pode ser implementada, combinando o monitoramento da saúde do daemon quorum do cluster com o software timer watchdog, juntamente às verificações de nível baixo de estado do sistema feitas pelo watchdog NMI.

A operação correta do mecanismo do timer watchdog NMI requer que os membros do cluster contenham um chip APIC na placa principal do sistema.

O watchdog NMI é habilitado em sistemas suportados através da adição de nmi_watchdog=1 à linha de comandos do kernel. Veja o exemplo /etc/grub.conf:

NotaNota
 

As configurações dos gestores de início GRUB e LILO a seguir se aplicam somente à arquitetura x86 do Red Hat Enterprise Linux.

# 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

Para sistemas usando LILO, adicione "nmi_watchdog=1" à seção append no /etc/lilo.conf. Por exemplo:

# 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

Execute /sbin/lilo após editar o /etc/lilo.conf para que as alterações tenham efeito.

Para determinar se um servidor suporta o timer watchdog NMI, primeiro tente adicionar "nmi_watchdog=1" à linha de comando do kernel, conforme descrito acima. Após o sistema inicializar, se autentique como root e digite:

cat /proc/interrupts

O output deve ser parecido com o seguinte:

           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

A porção relevante do output acima é para verificar se o id do NMI aparece no lado esquerdo. Se o NMI tem um valor maior que zero (0), o servidor suporta o watchdog NMI.

Se isto falhar, ou seja, NMI é zero, tente passar nmi_watchdog=2 ao kernel ao invés do nmi_watchdog=1, da maneira descrita previamente. Novamente, verifique /proc/interrupts após o sistema inicializar. Se NMI tem um valor maior que zero, o watchdog NMI foi configurado corretamente. Se NMI é zero, seu sistema não suporta o timer watchdog NMI.

B.1.2.3. Configurando um Timer Watchdog de Hardware

O kernel oferece suporte a drivers para vários tipos de timers watchdog de hardware. Alguns destes timers são implementados diretamente na placa do sistema, enquanto outros são componentes de hardware separados, como placas PCI. Timers watchdog baseados em hardware oferecem excelentes soluções de integridade dos dados no cluster porque operam independentemente do processador, e são totalmente capazes de reinicializar o sistema na ocorrência de uma pendência.

Devido à falta de uniformidade dentre os componentes watchdog de hardware de nível baixo, é difícil generalizar a explicação de como saber se um determinado sistema contém tais componentes. Muitos componentes watchdog de hardware de nível baixo não são auto-identificáveis.

Ao configurar qualquer um dos timers watchdog suportados pelo kernel, é necessário inserir uma entrada correspondente no arquivo /etc/modules.conf. Por exemplo: se um timer watchdog TCO baseado no Intel-810 for usado, a linha a seguir deve ser adicionada ao /etc/modules.conf:

alias wdt i810-tco