Appendice B. Informazioni supplementari dell'Hardware

Le seguenti sezioni forniscono informazioni aggiuntive sulla configurazione dell'hardware usato in un sistema del cluster.

B.1. Impostazione dei controller di alimentazione

Questa sezione affronta i controller di alimentazione. Per maggiori informazioni sui controller di alimentazione e sui loro ruoli in un ambiente del cluster, consultate la Sezione 1.1.3.

B.1.1. Interruttori di alimentazione

Per un elenco di interruttori già provati, collegati in modo seriale o collegati alla rete e/o supportati da Red Hat, Inc. per il controllo di alimentazione del cluster,consultate l' elenco della compatibilità hardware di Red Hat che si trova sul seguente URL:

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

B.1.2. Impostazione degli interruttori Watchdog

Una descrizione sul modello d'uso dei timer wotchdog come previsione di integritá dei dati in un cluster é riportata nella Sezione 1.1.3. Come descritto nella suddetta sezione, ci sono due varianti di timer watchdog: uno basato sull'hardware ed il secondo basato sul software.

Questa sezione affronta i compiti inerenti la configurazione richiesti per l'impostazione dell'uso del timer woatchdog, in una configurazione hardware del cluster.

Senza tener presente il tipo di timer wotchdog impiegato, è importante creare un file speciale del dispositivo appropriato per il timer watchdog. Ciò può essere fatto con i seguenti comandi:

cd /dev
./MAKEDEV watchdog

Quando si usa il Tool di configurazione del Cluster, ogni nuovo membro aggiunto al cluster, sarà abilitato per default, alla funzionalità del watchdog software.

B.1.2.1. Configurazione del timer watchdog del software

Ogni sistema del cluster puó utilizzare il timer watchdog del software come una previsione sulla integritá dei dati, in quanto non é necessaria alcuna componente dedicata all'hardware. Il software del cluster, automaticamente caricherá il corrispondente modulo caricabile del kernel, chiamato softdog.

Se il cluster é configurato per utilizzare il timer watchdog del software, il demone di appartenenza del cluster (clumembd) effettuerá un resettaggio periodico dell'intervallo del timer. Se clumembd non riesce a resettare il timer, il membro del cluster che ha fallito tale compito, effettuerá un riavvio.

Quando si usa il timer watchdog del software, si puó incorrere in un piccolo rischio disospensione del sistema, in modo che il thread watchdog del software non venga eseguito. In questo remoto scenario, l'altro membro del cluster puó prendere i servizi del membro del cluster apparentemente sospeso. Generalmente, questa operazione é molto sicura; ma nel caso in cui il membro sospeso del cluster riprende le sue funzioni, si puó verificare una corruzione dei dati. Per diminuire la possibilitá che si possa verificare uno scenario di questo tipo, gli amministratori dovrebbero configurare un timer watchdog NMI e un interruttore esterno (se disponibile).

B.1.2.2. Abilitazione del Timer watchdog NMI

Se si usa il timer watchdog del software come una previsione di integritá dei dati, é consigliato abilitare il timer watchdog Non-Maskable Interrupt (NMI) per avere una migliore garanzia sull'integritá dei dati. Il timer watchdog NMI rappresenta un diverso meccanismo che causa il riavvio del sistema nel caso in cui si presenta uno scenario di sospensione del sistema stesso dove le interrupt sono bloccate. Questo watchdog NMI puó essere usato insieme al timer watchdog del software.

A differenza del timer watchdog del software che viene resettato dal demone del quorum del cluster (cluquorumd), il timer watchdog NMI effettua un conteggio delle interruzioni del sistema. Normalmente, un sistema per cosí dire in salute, riceverá centinaia di interruzioni del dispositivo e del timer al secondo. Se in un intervallo di 5 secondi non si sono ricevute interruzioni, se si é verificato una sospensione di un sistema e se il timer watchdog sará prossimo alla scadenza, iniziare un riavvio del sistema.

Una soluzione robusta per l'integritá dei dati, puó essere implementata combinando il controllo dello stato del demone del quorum del cluster ed il timer watchdog del software, assieme con controlli a basso-livello dello stato del sistema del watchdog NMI.

Una corretta funzionalità del meccanismo del timer watchdog NMI, richiede che i membri del cluster contengano un chip APIC sulla base del sistema principale.

Il watchdog NMI viene abilitato sui sistemi supportati, aggiungendo nmi_watchdog=1 alla linea di comando del kernel. Ecco riportato un esempio /etc/grub.conf:

NotaNota
 

Le seguenti configurazioni del bootloader GRUB e LILO, vengono applicate all'architettura x86 di 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

Sui sistemi che usano LILO, aggiungere nmi_watchdog=1 alla sezione append in /etc/lilo.conf. Per esempio:

# 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

Eseguire /sbin/lilo dopo aver modificato /etc/lilo.conf per confermare i cambiamenti.

Per poter determinare se un server supporta il timer watchdog NMI, provare ad aggiungere prima "nmi_watchdog=1" alla linea di comando del kernel come descritto sopra. Dopo l'avvio del sistema, effettuare un log in come root ed inserire:

cat /proc/interrupts

Il risultato dovrebbe essere simile al seguente:

           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

La parte principale del risultato sopra indicato é quello di verificare che idNMI appaia sulla parte sinistra. Se il valore NMI é un valore maggiore di zero (0), allora significa che il server supporta il watchdog NMI.

Se quanto detto non si verifica, e cioé, NMI é zero, provare a passare nmi_watchdog=2 al kernel invece di nmi_watchdog=1 nel modo indicato precedentemente. Controllare /proc/interrupts dopo che il sistema abbia effettuato l'avvio. Se NMI é maggiore di zero, il watcdog NMI é stato configurato propriamente. Se NMI é zero, il sistema in questione non supporta il timer watchdog NMI.

B.1.2.3. Configurazione Timer Watchdog dell'Hardware

Il kernel fornisce supporto al driver per diversi tipi di timer watchdog dell'hardware.Alcuni di questi timer sono direttamente implementati sul system board, mentre altri sono componenti separati dell'hardware come ad esempio le schede PCI. I timer watchdog basati sull'hardware forniscono una eccellente previsione di integritá dei dati nel cluster, questo perché essi operano indipendentemente dal processore del sistema e sono operativi nell'avvio di un sistema nel caso in cui si verifica una sospensione del sistema stesso.

A causa di una carenza di uniformitá tra le componenti watchdog a basso-livello del cluster, é difficile generalizzare nella descrizione su come sapere se un sistema particolare, contiene i suddetti componenti. Molti componenti watchdog dell'hardware non si identificano da soli "self-identifying".

Quando configurate uno dei timer watchdog supportati dal kernel, é necessario inserire una entry corrispondente nel file /etc/modules. conf. Per esempio, se si deve usare un Intel-810 based TCO WDT, la seguente riga deve essere aggiunta a /etc/modules.conf:

alias wdt i810-tco