As seções seguintes oferecem informações adicionais sobre a configuração do hardware utilizado em um sistema de cluster.
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.
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:
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.
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).
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:
![]() | Nota |
---|---|
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.
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 |