Panoramica sull'High Availability Add-On
Panoramica sull'High Availability Add-On per Red Hat Enterprise Linux
Edizione 6
Sommario
Introduzione
- Red Hat Enterprise Linux Installation Guide — Fornisce le informazioni relative all'installazione di Red Hat Enterprise Linux 6.
- Red Hat Enterprise Linux Deployment Guide — Fornisce le informazioni relative all'impiego, configurazione ed amministrazione di Red Hat Enterprise Linux 6.
- Configurazione e gestione di High Availability Add-On Questa guida descrive le configurazione e la gestione di High Availability Add-On (conosciuta anche come Red Hat Cluster) per Red Hat Enterprise Linux 6.
- Amministrazione del Logical Volume Manager — Fornisce una descrizione del Logical Volume Manager (LVM), ed include le informazioni su come eseguire LVM in un ambiente clusterizzato.
- Global File System 2: Configurazione e amministrazione — Fornisce le informazioni sull'installazione, configurazione ed amministrazione del Red Hat GFS2 (Red Hat Global File System 2) incluso con il Resilient Storage Add-On.
- DM Multipath — Fornisce le informazioni relative all'utilizzo del Device-Mapper Multipath di Red Hat Enterprise Linux 6.
- Amministrazione Load Balancer — Fornisce le informazioni sulla configurazione dei servizi e sistemi ad elevate prestazioni con Red Hat Load Balancer Add-On (Precedentemente conosciuto come Linux Virtual Server [LVS]),
- Note di rilascio — Fornisce le informazioni sulla release corrente dei prodotti di Red Hat.
Nota
1. Abbiamo bisogno dei vostri commenti! Copia collegamentoCollegamento copiato negli appunti!
6.6.
Capitolo 1. Panoramica sull'High Availability Add-On Copia collegamentoCollegamento copiato negli appunti!
1.1. Concetti di base del cluster Copia collegamentoCollegamento copiato negli appunti!
- Storage
- High availability
- Bilanciamento del carico
- Elevate prestazioni
rgmanager.
Nota
1.2. Introduzione all'High Availability Add-On Copia collegamentoCollegamento copiato negli appunti!
- Infrastruttura del cluster — Fornisce le funzioni fondamentali per i nodi in modo che gli stessi possano operare insieme come un cluster: gestione della configurazione-file, gestione appartenenza, lock management, e fencing.
- High-availability Service Management — Fornisce il failover dei servizi da un nodo del cluster ad un altro, in caso in cui il nodo non è più operativo.
- Tool di amministrazione del cluster — Tool di gestione e configurazione per l'impostazione, la configurazione e la gestione di High Availability Add-On. È possibile utilizzare i suddetti tool con i componenti dell'infrastruttura del cluster, e con componenti per la Gestione del servizio, High availability e storage.
Nota
- Red Hat GFS2 (Global File System 2) — È parte del Resilient Storage Add-On, esso rende disponibile un file system del cluster da usare con High Availability Add-On. GFS2 permette a nodi multipli di condividere lo storage ad un livello del blocco, come se lo storage fosse collegato localmente ad ogni nodo del cluster. Il file system del cluster GFS2 ha bisogno di una infrastruttura cluster.
- Cluster Logical Volume Manager (CLVM) — È parte del Resilient Storage Add-On e fornisce la gestione del volume del cluster storage. Il supporto CLVM ha bisogno anche di una infrastruttura cluster.
- Load Balancer Add-On — Software di instradamento che fornisce l'IP-Load-balancing. Load Balancer Add-On viene eseguito su di una coppia di server virtuali ridondanti, che distribuisce le richieste del client in modo omogeneo ai real server dietro i server virtuali.
1.3. Infrastruttura del cluster Copia collegamentoCollegamento copiato negli appunti!
- Cluster management
- Lock management
- Fencing
- Gestione configurazione del cluster
Capitolo 2. Gestione del cluster con CMAN Copia collegamentoCollegamento copiato negli appunti!
2.1. Quorum del cluster Copia collegamentoCollegamento copiato negli appunti!
Nota
2.1.1. Quorum Disk Copia collegamentoCollegamento copiato negli appunti!
ccs e Conga, nel manuale Amministrazione del Cluster.
2.1.2. Tie-breaker Copia collegamentoCollegamento copiato negli appunti!
- in presenza di una configurazione a due nodi con dispositivi di fencing su un percorso della rete diverso rispetto al percorso usato per le comunicazioni del cluster
- in presenza di una configurazione a due nodi dove il fencing è un livello fabric - in particolare per le prenotazioni SCSI
Capitolo 3. RGManager Copia collegamentoCollegamento copiato negli appunti!
httpd ad un gruppo di nodi, mentre mysql può essere limitato ad un insieme separato di nodi.
- Domini di failover - Funzionamento del sistema del dominio di failover RGManager
- Politiche del servizio - Politiche per il ripristino e avvio del servizio di Rgmanager
- Alberi delle risorse - Funzionamento degli alberi delle risorse di rgmanager, inclusa la successione e gli ordini di avvio/arresto
- Comportamenti operativi del servizio - Significati dei vari stati e funzionamento operativo di rgmanager
- Comportamenti macchine virtuali - Comportamenti da considerare durante l'esecuzione delle VM in un cluster rgmanager
- ResourceActions - Le azioni usate da RGManager e la personalizzazione del file
cluster.conf. - Event Scripting - Se le politiche di ripristino e di failover di rgmanager non sono idonee per l'ambiente, sarà possibile eseguire una personalizzazione usando un sottosistema di script.
3.1. Domini di failover Copia collegamentoCollegamento copiato negli appunti!
- nodo o membro preferito: Il nodo preferito era il membro indicato per l'esecuzione di un servizio se il membro era offline. È possibile emulare questo comportamento specificando un dominio di failover non ordinato e non limitato di un membro.
- domini limitati: I servizi assegnati al dominio possono essere eseguiti solo sui membri del cluster appartenenti al dominio di failover. Se non è disponibile alcun membro del dominio di failover, il servizio verrà impostato con uno stato "stopped". In un cluster con diversi membri l'uso di un dominio di failover limitato potrà facilitare la configurazioni di un servizio (come ad esempio httpd), il quale necessita di una configurazione identica su tutti i membri che eseguono il servizio. Invece di impostare l'intero cluster per l'esecuzione del servizio, impostare solo i membri nel dominio di failover limitato da associare con il servizio del cluster.
- domini non limitati: Comportamento predefinito, i servizi assegnati a questo dominio possono essere eseguiti su tutti i membri del cluster. Essi possono anche essere eseguiti su un membro del dominio se disponibile. Ciò significa che se un servizio è in esecuzione esternamente al dominio, e un membro del dominio risulta essere online, il servizio eseguirà una migrazione su quel membro a meno che non sia stata impostata l'opzione nofailback.
- dominio ordinato: L'ordine specificato nella configurazione indica l'ordine delle preferenze dei membri all'interno di un dominio. Il membro con la posizione più alta del dominio eseguirà il servizio ogni qualvolta risulta essere online. Ciò significa che se il membro A ha una posizione più alta rispetto al membro B, il servizio eseguirà una migrazione sul membro A, (se in esecuzione sul membro B), solo se il membro A è passato da uno stato offline a uno online.
- dominio non ordinato: Comportamento predefinito, i membri del dominio non presentano alcun ordine di preferenze; qualsiasi membro è in grado di eseguire il servizio. I servizi eseguiranno sempre una migrazione sui membri del dominio di failover quando possibile, tuttavia, in un dominio non ordinato.
- failback: I servizi dei membri di un dominio di failover ordinato devono ritornare sul nodo responsbile per la loro esecuzione iniziale prima del suo fallimento, questa operazione è utile per nodi che falliscono frequentemente. Questa operazione impedisce una interruzione frequente del servizio tra il nodo fallito e quello di failover.
3.1.1. Esempi di comportamento Copia collegamentoCollegamento copiato negli appunti!
- Dominio di failover limitato, ordinato {A, B, C}
- Con nofailback non impostato: Il servizio 'S' verrà sempre eseguito sul membro 'A' ogni qualvolta il membro 'A' risulta essere online e in presenza di quorum. Se tutti i membri di {A, B, C} risultano essere offline, il servizio non verrà eseguito. Se il servizio è in esecuzione su 'C', e 'A' passa ad uno stato online, il servizio verrà migrato su 'A'.Con nofailback impostato: Il servizio 'S' verrà eseguito sul membro del cluster con la priorità più alta dopo aver formato un quorum. Se tutti i membri di {A, B, C} risultano essere offline, il servizio non verrà eseguito. Se il servizio è in esecuzione su 'C', e 'A' passa ad uno stato online, il servizio resterà su 'C' se 'C' non fallisce, in caso di fallimento verrà eseguito il failover sul membro 'A'.
- Dominio di failover limitato non ordinato {A, B, C}
- Il servizio 'S' verrà eseguito solo in presenza di un quorum e con almeno un membro {A, B, C} online. Se un altro membro del dominio passa online, il servizio non verrà riposizionato.
- Dominio di failover non limitato, ordinato {A, B, C}
- Con nofailback non impostato: Un servizio 'S' verrà eseguito ogni qualvolta è presente un quorum. Se un membro del dominio di failover è online, il servizio verrà eseguito sul membro con la priorità più alta, in caso contrario un membro del cluster verrà selezionato randomicamente per l'esecuzione del servizio. Per riassumere, il servizio verrà eseguito su 'A' ogni qualvolta 'A' è online, seguito da 'B'.Con nofailback impostato: Un servizio 'S' verrà eseguito ogni qualvolta è presente un quorum. Se un membro del dominio di failover è online durante la formazione del quorum, il servizio verrà eseguito sul membro con la priorità più alta del dominio di failover. E quindi se 'B' è online ('A' offline), il servizio verrà eseguito su 'B'. Se in un secondo momento 'A' si unisce al cluster, il servizio non verrà migrato su 'A'.
- Dominio di failover non limitato e non ordinato {A, B, C}
- Chiamato anche come "Insieme di membri preferiti". Quando uno o più membri del dominio di failover risultano online, il servizio verrà eseguito su un membro online non specifico del dominio di failover. Se un altro membro del dominio di failover passa ad uno stato online, il servizio non verrà migrato.
3.2. Politiche del servizio Copia collegamentoCollegamento copiato negli appunti!
Nota
3.2.1. Politica per l'avvio Copia collegamentoCollegamento copiato negli appunti!
- autostart (default) - inizia il servizio all'avvio di rgmanager e in presenza di un quorum. Se impostato su '0', il cluster non inizierà il servizio e imposterà uno stato disabilitato.
3.2.2. Politica di ripristino Copia collegamentoCollegamento copiato negli appunti!
- restart (default) - riavvia il servizio sullo stesso nodo. Se non viene specificata un'altra politica per il ripristino, allora verrà implementata questa opzione. Se l'azione di riavvio fallisce, rgmanager riposizionerà il servizio.
- relocate - Prova ad iniziare il servizio su un altro nodo presente nel cluster. Se nessun altro nodo è in grado di iniziare il servizio, quest'ultimo avrà uno stato "stopped".
- disable - Non fare niente. Posiziona il servizio in uno stato disabilitato (disabled).
- restart-disable - Cerca di riavviare il servizio e imposta uno stato disabilitato se il riavvio del servizio fallisce.
3.2.3. Estensioni della politica di riavvio Copia collegamentoCollegamento copiato negli appunti!
<service name="myservice" max_restarts="3" restart_expire_time="300" ...>
...
</service>
Nota
3.3. Alberi delle risorse - Definizioni / Di base Copia collegamentoCollegamento copiato negli appunti!
<service name="foo" ...>
<fs name="myfs" ...>
<script name="script_child"/>
</fs>
<ip address="10.1.1.2" .../>
</service>
- Gli alberi delle risorse sono rappresentazioni XML di risorse, dei rispettivi attributi, dei rapporti tra elementi di pari livello e genitore/figlio. La "radice" di un albero è quasi sempre un tipo di risorsa speciale chiamata servizio. L'albero delle risorse, il gruppo e il servizio sono generalmente intercambiabili su questa wiki. Da una prospettiva di rgmanager, un albero delle risorse rappresenta una unità atomica. Tutti i componenti di un albero vengono iniziati sullo stesso nodo.
- fs:myfs e ip:10.1.1.2 sono imparentati
- fs:myfs è il genitore di script:script_child
- script:script_child è il figlio di fs:myfs
3.3.1. Ordine d'avvio, dipendenze e rapporti Genitore / Figlio Copia collegamentoCollegamento copiato negli appunti!
- I genitori vengono avviati prima dei figli
- Arrestare (correttamente) tutti i figli prima di poter arrestare un genitore
- È quindi possibile dire che le risorse figlio dipendono dalle risorse genitore
- Per considerare una risorsa in buono stato è necessario che tutte le risorse figlio siano in buono stato
3.4. Stati e Operazioni del servizio Copia collegamentoCollegamento copiato negli appunti!
3.4.1. Funzioni del servizio Copia collegamentoCollegamento copiato negli appunti!
- enable — avvia il servizio, facoltativamente è possibile eseguire questa operazione su una destinazione preferita e in base alle regole del dominio di failover. In loro assenza l'host locale sul quale viene eseguito clusvcadm, avvierà il servizio. Se il processo d'avvio fallisce il servizio si comporta come se fosse stata richiesta una operazione di riposizionamento (consultare quanto di seguito riportato). Se l'operazione ha successo il servizio avrà uno stato started (avviato).
- disable — arresta il servizio e lo posiziona in uno stato disabled (disabilitato). Questa è l'unica operazione permessa quando un servizio è in uno stato failed (fallito).
- relocate — sposta il servizio su un altro nodo. Facoltativamente l'amministratore potrà specificare un nodo preferito per ricevere il servizio, ma l'impossibilità di eseguire il servizio sull'host (per esempio, se il servizio non viene avviato o se l'host è offline), non impedisce il riposizionamento e per questo motivo verrà scelto un nodo diverso. Rgmanager cerca di avviare il servizio su ogni nodo disponibile sul cluster. Se nessun nodo di destinazione presente nel cluster avvia con successo il servizio, il riposizionamento fallisce e verrà eseguito un tentativo di riavvio del servizio sul proprietario originario. Se il suddetto proprietario non è in grado di riavviare il servizio, quest'ultimo avrà uno stato di stopped (arrestato).
- stop — arresta il servizio e lo posiziona in uno stato "stopped".
- migrate — esegue la migrazione della macchina virtuale su un altro nodo. L'amministratore deve specificare un nodo di destinazione. In base all'errore, il fallimento del processo di migrazione potrebbe causare uno stato failed della macchina virtuale, o in uno stato started sul proprietario originario.
3.4.1.1. L'operazione freeze Copia collegamentoCollegamento copiato negli appunti!
3.4.1.1.1. Comportamenti del servizio quando sospeso Copia collegamentoCollegamento copiato negli appunti!
- I controlli sullo stato sono disabilitati
- Le operazioni d'avvio sono disabilitate.
- Le operazioni d'arresto sono disabilitate.
- Il failover non verrà eseguito (anche se disabiliterete il proprietario del servizio)
Importante
- Se il servizio è sospeso non arrestare tutte le istanze di rgmanager a meno che non pianificate di riavviare gli host prima di riavviare rgmanager.
- Non eseguite l'operazione di unfreeze di un servizio fino a quando il proprietario del servizio non si unisce nuovamente al cluster e riavvia rgmanager.
3.4.2. Stati del servizio Copia collegamentoCollegamento copiato negli appunti!
- disabled — il servizio resterà disabilitato fino a quando un amministratore non eseguirà la riabilitazione, oppure se il cluster perderà il proprio quorum (a quel punto verrà valutato il parametro autostart). Un amministratore potrà eseguire l'abilitazione del servizio da questo stato.
- failed — Si presume che il servizio sia inattivo (dead). Questo stato si verifica ogni qualvolta una operazione d'arresto della risorsa fallisce. L'amministratore deve verificare che non siano state assegnate le risorse (file system montato ecc.) prima di inviare la richiesta. L'unica azione eseguibile da questo stato è "disable".
- stopped — In questo stato il servizio verrà preso in considerazione per l'avvio dopo la successiva transizione del nodo o del servizio. Questo è uno stato provvisorio. Da questo stato un amministratore sarà in grado di disabilitare o abilitare il servizio.
- recovering — Il cluster sta cercando di recuperare il servizio. Un amministratore è in grado di disabilitare il servizio per impedirne il recupero.
- started — Se il controllo dello stato fallisce, eseguire il ripristino seguendo la politica di recupero del servizio. Se l'host che esegue il sevizio fallisce, eseguire il ripristino seguendo le regole del servizio esclusive e il processo di failover del dominio. Un amministratore sarà in grado di riposizionare, arrestare, disabilitare e (all'interno delle macchine virtuali) migrare il servizio da questo stato.
Nota
starting e stopping sono stati di transizione speciali di started.
3.5. Comportamenti della macchina virtuale Copia collegamentoCollegamento copiato negli appunti!
3.5.1. Operazioni normali Copia collegamentoCollegamento copiato negli appunti!
- Starting (enabling)
- Stopping (disabling)
- Monitoraggio dello stato
- Riposizionamento
- Ripristino
3.5.2. Migrazione Copia collegamentoCollegamento copiato negli appunti!
- live (default) — la macchina virtuale continua l'esecuzione mentre la maggior parte dei contenuti in memoria vengono copiati sull'host di destinazione. Questa operazione minimizza l'inaccessibilità della VM (generalmente al di sotto di 1 secondo), a scapito delle prestazioni della VM durante la migrazione, e alla quantità totale di tempo necessario per completare il processo stesso.
- pause - la memoria di una macchina virtuale è sospesa mentre i suoi contenuti vengono copiati sull'host di destinazione. Questa operazione minimizza la quantità di tempo necessario per il completamento della migrazione di una macchina virtuale.
Importante
3.5.3. Funzioni RGManager per la macchina virtuale Copia collegamentoCollegamento copiato negli appunti!
3.5.3.1. Controllo della macchina virtuale Copia collegamentoCollegamento copiato negli appunti!
clusvcadm, se VM è già in esecuzione, causerà una ricerca da parte di rgmanager del cluster per la VM, contrassegnando la VM come started ovunque si trovi.
virsh, causerà una ricerca da parte di rgmanager del cluster per la VM, contrassegnando la VM come started ovunque si trovi.
Nota
3.5.3.2. Supporto dominio transitorio Copia collegamentoCollegamento copiato negli appunti!
/etc/libvirt/qemu su tutto il cluster.
3.5.3.2.1. Funzioni per la gestione Copia collegamentoCollegamento copiato negli appunti!
3.5.4. Comportamenti non gestiti Copia collegamentoCollegamento copiato negli appunti!
- Uso di uno strumento non-cluster-aware (come ad esempio virsh o xm) per la manipolazione dello stato delle macchine virtuali, o della configurazione durante la gestione della macchina virtuale da parte del cluster. È permesso il controllo dello stato di una macchina virtuale (es. virsh list, virsh dumpxml).
- Migrazione di una VM non gestita dal cluster su un nodo non-cluster, o un nodo presente nel cluster che non esegue rgmanager. Rgmanager riavvierà la VM nella posizione precedente, causando l'esecuzione di due istanze della VM e una corruzione del file system.
3.6. Azioni delle risorse Copia collegamentoCollegamento copiato negli appunti!
- start - avvio della risorsa
- stop - arresto della risorsa
- status - controllo stato della risorsa
- metadata - riporto dei metadati OCF RA XML
3.6.1. Valori restituiti Copia collegamentoCollegamento copiato negli appunti!
- 0 - riuscito
- stop dopo uno stop, o stop quando non in esecuzione, deve tornare un valore di azione riuscitastart dopo start o start quando in esecuzione, deve tornare un valore di azione riuscita
- nonzero - fallimento
- Se l'operazione di stop ritorna un valore diverso da zero verrà conferito al servizio uno stato fallito (failed), eseguire un ripristino manuale del servizio.
Capitolo 4. Fencing Copia collegamentoCollegamento copiato negli appunti!
fenced.
fenced, una volta notificata la presenza di un errore, isola il nodo in questione. Successivamente gli altri componenti dell'infrastruttura del cluster determinano le azioni da intraprendere — essi eseguiranno qualsiasi processo necessario per il ripristino. Per esempio, subito dopo la notifica di un errore a DLM e GFS2, essi sospendono l'attività fino a quando non accerteranno il completamento del processo di fencing d parte di fenced. Previa conferma del completamento di tale operazione, DLM e GFS2 eseguono l'azione di ripristino. A questo punto DLM rilascia i blocchi del nodo fallito e GFS2 ripristina il jounal del suddetto nodo.
- Power fencing — Metodo utilizzato da un controllore di alimentazione per disalimentare il nodo non utilizzabile.
- storage fencing — Un metodo di fencing che disabilita la porta del Fibre Channel che collega lo storage ad un nodo non utilizzabile.
- Altri tipi di fencing — Diversi metodi per il fencing che disabilitano l'I/O o l'alimentazione di un nodo non utilizzabile, incluso gli IBM Bladecenters, PAP, DRAC/MC, HP ILO, IPMI, IBM RSA II, ed altro ancora.
Figura 4.1. Esempio Power fencing
Figura 4.2. Esempio Storage fencing
Figura 4.3. Fencing di un nodo con alimentazione doppia
Figura 4.4. Fencing di un nodo con connessioni doppie al Fibre Channel
Capitolo 5. Lock Management Copia collegamentoCollegamento copiato negli appunti!
rgmanager utilizza DLM per sincronizzare gli stati dei servizi.
5.1. DLM Locking Copia collegamentoCollegamento copiato negli appunti!
- Sei modalità di locking che limitano l'accesso alle risorse
- L'avanzamento e il declassamento dei lock attraverso una conversione
- Completamento sincrono delle richieste di lock
- Completamento asincrono
- Dati globali attraverso i blocchi di valore del lock
- Il nodo è parte di un cluster.
- Tutti i nodi sono concordi sull'appartenenza del cluster ed è presente un quorum.
- Un indirizzo IP deve essere in grado di comunicare con DLM su un nodo. Normalmente DLM utilizza TCP/IP per una comunicazione tra i nodi, ciò impone un limite di un indirizzo IP per nodo (in tal caso è possibile renderlo più ridondante utilizzando un driver per il bonding). DLM può essere configurato in modo da utilizzare SCTP per il trasporto tra nodi, abilitando così indirizzi IP multipli su ogni nodo.
5.2. Stati di lock Copia collegamentoCollegamento copiato negli appunti!
- Granted — La richiesta ha avuto successo e ha ottenuto la modalità richiesta.
- Converting — Un client ha provato a modificare la modalità di lock, la nuova modalità non è compatibile con il lock esistente.
- Blocked — La richiesta per un nuovo lock non è stata soddisfatta, il lock non è stato assegnato a causa della pesenza di lock in clonflitto tra loro.
Capitolo 6. Strumenti di amminsitrazione e configurazione Copia collegamentoCollegamento copiato negli appunti!
/etc/cluster/cluster.conf specifica la configurazione dell'High Availability Add-On. Il file di configurazione è un file XML che descrive le seguenti caratteristiche del cluster:
- Nome del cluster — Specifica il nome del cluster, il livello di revisione del file di configurazione e le proprietà relative al timing per il fencing di base usate quando un nodo viene unito al cluster o isolato dallo stesso.
- Cluster — Specifica ogni nodo del cluster, specificandone il nome, l'ID ed il numero di voti del quorum del cluster insieme al metodo per il fencing corrispondente.
- Fence Device — Specifica i dispositivi per il fencing nel cluster. I parametri variano a seconda del tipo di dispositivo. Per esempio, per un controllore dell'alimentazione usato come un dispositivo per il fencing, la configurazione del cluster definisce il nome del controllore dell'alimentazione, l'indirizzo IP relativo, il login e la password.
- Risorse gestite — Specifica le risorse necessarie per creare i servizi del cluster. Le risorse gestite includono la definizione dei domini di failover, delle risorse (per esempio un indirizzo IP), e dei servizi. Insieme, le risorse gestite definiscono i servizi del cluster ed il comportamento del failover dei servizi del cluster.
/usr/share/cluster/cluster.rng durante l'avvio ed al ricaricamento di una configurazione. È possibile convalidare una configurazione in qualsiasi momento usando il comando ccs_config_validate.
/usr/share/doc/cman-X.Y.ZZ/cluster_conf.html (per esempio /usr/share/doc/cman-3.0.12/cluster_conf.html).
- Validità XML — Controlla che il file di configurazione sia un file XML valido.
- Opzioni della configurazione — Controlla che le opzioni siano valide (elementi ed attributi XML).
- Valori delle opzioni — Controlla che le opzioni contengano i dati validi (limitati).
6.1. Tool di amministrazione del cluster Copia collegamentoCollegamento copiato negli appunti!
- Conga — Questa è una interfaccia utente completa per l'installazione, configurazione e gestione dell'Add-On High Availability di Red Hat. Consultare la Configurazione e gestione dell'High Availability Add-On per informazioni sulla configurazione e gestione dell'Add-On High Availability con Conga.
- Luci — Server delle applicazioni in grado di fornire l'interfaccia utente per Conga. Permette altresì agli utenti di gestire i servizi del cluster e rende disponibile le informazioni per l'assistenza e per la documentazione online quando necessario.
- Ricci — Demone del servizio in grado di gestire la distribuzione della configurazione del cluster. Gli utente sono in grado di inoltrare le informazioni usando l'interfaccia di Luci; la configurazione viene caricata in corosync per la distribuzione ai nodi del cluster.
- Con Red Hat Enterprise Linux 6.1 e versioni più recenti, Red Hat High Availability Add-On fornisce il supporto per il comando usato per la configurazione del cluster
ccs. Questo comando permette la creazione, modifica e visualizzazione del file di configurazione del cluster cluster.conf da parte di un amministratore. Consultare il manuale Amministrazione del cluster per informazioni sulla configurazione e gestione dell'High Availability Add-On con il comandoccs.
Nota
system-config-cluster non è disponibile in RHEL 6.
Capitolo 7. Virtualizzazione e High Availability Copia collegamentoCollegamento copiato negli appunti!
- VM come servizi/risorse ad elevata disponibilità
- Cluster guest
7.1. VM come servizi/risorse ad elevata disponibilità Copia collegamentoCollegamento copiato negli appunti!
- Se un numero molto grande di VM risulta essere HA su numerosi host fisici, allora l'uso di RHEV potrebbe rappresentare una opzione migliore a causa della presenza di algoritmi più sofisticati per la gestione del posizionamento delle VM, considerando fattori come CPU, memoria e le informazioni sul carico.
- Se un numero ristretto di VM è HA su alcuni host fisici, l'uso di RHEL HA potrebbe rappresentare la soluzione migliore poichè essa implica un uso ridotto di infrastrutture supplementari. La soluzione più semplice di RHEL HA VM richiede due host fisici per un cluster con 2 nodi. Al contrario, la soluzione RHEV più semplice richiedere 4 nodi: 2 per fornire HA per il server RHEVM e 2 per fungere da host della VM.
- Non sono presenti linee guida specifiche sulla definizione di 'numerosi' host o VM. Ma ricordate che il numero massimo di host in un cluster RHEL HA è 16, e ogni cluster con 8 o più host avrà bisogno di una revisione dell'architettura da parte di Red Hat per determinare il tipo di supporto.
- Se le VM HA forniscono i servizi usati per le infrastrutture condivise, allora sarà possibile utilizzare RHEL HA o RHEV.
- Per l'HA di un insieme piccolo di servizi critici in esecuzione all'interno delle VM, sarà possibile utilizzare RHEL HA o RHEV.
- Per una infrastruttura idonea ad abilitare il provisioning rapido delle VM, utilizzare RHEV.
- RHEV VM HA è stato ideato per essere dinamico. L'aggiunta di nuove VM al 'cluster' RHEV¸ può essere eseguito facilmente ed è completamente supportato.
- RHEL VM HA non è stato ideato per essere un ambiente molto dinamico. Un cluster deve avere un numero fisso di VM, e per l'intero ciclo di vita è consigliato non aggiungere o rimuovere alcuna VM.
- Non utilizzare RHEL HA per la creazione di ambienti simili al cloud, a causa della natura statica della configurazione del cluster e per il conteggio basso di nodi fisici (16 nodi)
- RHEL 5.0+ supporta Xen insieme con RHEL AP Cluster
- RHEL 5.4 rende disponibile il supporto per le macchine virtuali KVM come risorse gestite in RHEL AP Cluster sotto forma di Anteprima di tecnologia
- RHEL 5.5+ rende disponibile un supporto completo per le macchine virtuali KVM.
- RHEL 6.0+ supporta le macchine virtuali KVM come risorse ad elevata disponibilità in RHEL 6 High Availability Add-On.
- RHEL 6.0+ non supporta le macchine virtuali Xen con RHEL 6 High Availability Add-On, poichè RHEL 6 non supporta più Xen.
Nota
7.1.1. Consigli generali Copia collegamentoCollegamento copiato negli appunti!
- Con RHEL 5.3 e versioni meno recenti, rgmanager utilizza le interfacce Xen native per la gestione dei Xen domU's (guests). Con RHEL 5.4 questa impostazione è stata modificata in modo da utilizzare libvirt per gli hypervisor Xen e KVM, fornendo una unterfaccia omogenea tra i due tipi di hypervisor. Oltre a questa modifica con RHEL 5.4 e 5.4.z sono state rese disponibili alcune correzioni, e per questo motivo è consigliato aggiornare gli cluster host con i pacchetti di RHEL 5.5 più recenti prima di configurare i servizi gestiti di Xen.
- Per i servizi gestiti KVM è necessario eseguire un aggiornamento a RHEL 5.5 poichè questa è la prima versione di RHEL dove la funzionalità è completamente supportata.
- Controllare sempre l'ultimissima errata di RHEL prima di implementare un cluster, così facendo avrete sempre le ultimissime correzioni relative alle problematiche conosciute.
- L'uso di un insieme di diversi tipi di hypervisor non è supportato. Il cluster host deve essere basato su Xen o KVM.
- Eseguire il provisioning dell'hardware host in modo da poter accettare i guest riposizionati da altri host falliti, senza causare un overcommit della memoria o un overcommit delle CPU virtuali. In presenza di un numero molto elevato di errori tali da causare un overcommit della memoria o delle CPU virtuali, ciò potrebbe deteriorare le prestazioni causando un potenziale fallimento del cluster.
- L'uso diretto degli strumenti di xm o libvirt (virsh, virt-manager) per la gestione delle macchine virtuali (live migrate, stop. start) sotto il controllo di rgmanager, non è supportato o consigliato poichè ciò potrebbe baipassare lo stack di gestione del cluster.
- Ogni nome della VM deve essere unico su tutto il cluster, incluso le VM local-only / non-cluster. Libvirtd applica solo i nomi unici in base all'host. Se eseguite una clonazione manuale di una VM, modificarne il nome nel file di configurazione.
7.2. Cluster guest Copia collegamentoCollegamento copiato negli appunti!
- Gli host Xen RHEL 5.3+ supportano i cluster guest in esecuzione, dove i sistemi operativi guest hanno una versione RHEL 5.3 o più recente.
- I cluster guest Xen possono utilizzare fence_xvm o fence_scsi per il fencing del guest.
- Per utilizzare fence_xvm/fence_xvmd è necessario eseguire un cluster host per il supporto di fence_xvmd, e fence_xvm deve essere utilizzato come un guest fencing agent su tutti i guest clusterizzati.
- Lo storage condiviso può essere reso disponibile tramite i dispositivi a blocchi condivisi Xen o iSCSI, supportati da uno storage a blocchi dell'host o da un file backed storage (immagini raw).
- Gli host KVM di RHEL 5.5+ non supportano i cluster guest in esecuzione.
- Gli host KVM di RHEL 6.1+ supportano i cluster guest in esecuzione, dove i sistemi operativi guest presentano una versione RHEL 6.1+ o RHEL 5.6+. I guest RHEL 4 non sono supportati.
- È permesso usare un mix di nodi del cluster bare metal e nodi virtualizzati.
- I cluster guest RHEL 5.6+ possono utilizzare fence_xvm o fence_scsi per il fencing del guest.
- I cluster guest RHEL 6.1+ possono utilizzare fence_xvm (nel pacchetto
fence-virt) o fence_scsi per il fencing del guest. - Gli host KVM di RHEL 6.1+ devono utilizzare fence_virtd se il cluster guest utilizza fence_virt o fence_xvm come fence agent. Se il cluster guest utilizza fence_scsi, allora non sarà necessario utilizzare fence_virtd sugli host.
- fence_virtd può operare in tre modi:
- In modalità standalone dove la mappatura host su guest ha una codifica fissa, e la migrazione live dei guest non è consentita
- Uso del servizio Openais Checkpoint per controllare le migrazioni live dei guest clusterizzati. Per questa operazione eseguire il cluster host.
- Utilizzo di Qpid Management Framework (QMF) reso disponibile dal pacchetto libvirt-qpid. Uso di QMF per controllare la migrazione dei guest senza la presenza di un cluster host completo.
- Lo storage condiviso può essere reso disponibile tramite i dispositivi a blocchi condivisi KVM o iSCSI, supportati da uno storage a blocchi dell'host o da un file backed storage (immagini raw).
- Red Hat Enterprise Virtualization Management (RHEV-M) versioni 2.2+ e 3.0 attualmente supportano guest clusterizzati RHEL 6.1+ e RHEL 5.6+.
- I cluster guest devono essere omogenei (tutti guest RHEL 5.6+ o tutti guest RHEL 6.1+ ).
- È permesso usare un mix di nodi del cluster bare metal e nodi virtualizzati.
- Il fencing viene reso disponibili da fence_scsi in RHEV-M 2.2+ e da fence_scsi e fence_rhevm in RHEV-M 3.0, ed è supportato usando fence_scsi come di seguito descritto:
- L'uso di fence_scsi con lo storage iSCSI è limitato ai server iSCSI che supportano SCSI 3 Persistent Reservation con il comando preempt-and-abort. Non tutti i server iSCSI supportano questa funzionalità. Consultare il rivenditore dello storage per controllare se il server è conforme al supporto SCSI 3 Persistent Reservation. Da notare che il server iSCSI disponibile con Red Hat Enterprise Linux, attualmente non supporta SCSI 3 Persistent Reservation e per questo motivo non è idoneo all'uso con fence_scsi.
- VMware vSphere 4.1, VMware vCenter 4.1, VMware ESX e ESXi 4.1 supportano i cluster guest in esecuzione, dove i sistemi operativi del guest sono RHEL 5.7+ o RHEL 6.2+. Anche la versione 5.0 di VMware vSphere, vCenter, ESX e ESXi è supportata; tuttavia, a causa di uno schema WDSL non completo fornito nella release iniziale di Vmware vSphere 5.0, l'utilità fence_vmware_soap non funziona con l'installazione predefinita. Consultare il Red Hat Knowledgebase https://access.redhat.com/knowledge/ per le procedure aggiornate per correggere questo problema.
- I cluster guest devono essere omogenei (tutti guest RHEL 5.7+ o tutti guest RHEL 6.1+ ).
- È permesso usare un mix di nodi del cluster bare metal e nodi virtualizzati.
- L'agent fence_vmware_soap ha bisogno di VMware perl API di terze parti. Questo pacchetto software deve essere scaricato dal sito web di VMware e installato sui guest clusterizzati RHEL.
- Alternativamente fence_scsi può essere usato per fornire il fencing come di seguito riportato.
- Lo storage condiviso può essere reso disponibile tramite i dispositivi a blocchi condivisi raw iSCSI o VMware.
- L'uso dei cluster guest VMware ESX è supportato tramite l'uso di fence_vmware_so_ap o fence_scsi.
- Attualmente non è supportato l'uso dei cluster guest Hyper-V.
7.2.1. Utilizzo storage condiviso iSCSI e fence_scsi Copia collegamentoCollegamento copiato negli appunti!
- In tutti gli ambienti di virtualizzazione sopra riportati lo storage iSCSI e fence_scsi possono essere utilizzati al posto dello storage nativo condiviso e dei dispositivi di fencing nativi.
- fence_scsi può essere usato per fornire il fencing I/O per lo storage condiviso disponibile attraverso iSCSI, se il target iSCSI supporta correttamente SCSI 3 persistent reservation e i comandi abort e preempt. Controllare con il rivenditore dello storage per determinare se la soluzione iSCSI desiderata è in grado di supportare le funzionalità sopra indicate.
- Il software del server iSCSI disponibile con RHEL non supporta SCSI 3 persistent reservation, per questo motivo non è possibile un suo utilizzo con fence_scsi. Al contrario, è possibile una sua implementazione come soluzione di archiviazione condivisa insieme ad altri dispositivi di fencing come fence_vmware o fence_rhevm.
- Se utilizzate fence_scsi su tutti i guest allara non sarà necessario utilizzare un cluster host (nei casi in cui viene utilizzato RHEL 5 Xen/KVM e RHEL 6 KVM Host)
- Utilizzando fence_scsi come fence agent, tutto lo storage condiviso deve essere composto da iSCSI. Non è permesso utilizzare un mix tra storage condiviso nativo e iSCSI.
7.2.2. Consigli generali Copia collegamentoCollegamento copiato negli appunti!
- Come precedentemente indicato è consigliato aggiornare sia gli host che i guest con gli ultimissimi pacchetti RHEL prima di utilizzare le funzionalità della virtualizzazione, poichè saranno disponibili numerose correzioni e miglioramenti.
- Non è supportato l'uso di un mix di piattaforme di virtualizzazione (hypervisor) sottostanti ai cluster guest. Tutti gli host sottostanti devono utilizzare la stessa tecnologia di virtualizzazione.
- Non è supportata l'esecuzione di tutti i guest in un cluster guest su un host fisico, poichè con questa impostazione non sarà possibile avere una elevata disponibilità in presenza di un errore dell'host. Tuttavia, è possibile utilizzare questa configurazione a scopo di sviluppo o per prototipi.
- Le procedure migliori includono:
- Non è necessario avere un singolo host per guest anche se questa configurazione è in grado di fornre il livello più alto di disponibilità, poichè il fallimento di un host interesserà solo un singolo nodo nel cluster. In una mappatura 2 a 1 (due guest in un cluster per host fisico), il fallimento di un solo host risulterà nel fallimento di due guest. Per questo motivo è consigliato avere una mappatura con un rapporto vicinissimo a 1 a 1.
- L'uso di un mix di cluster guest indipendenti sullo stesso insieme di host fisici non è al momento supportato se si utilizzano fence_xvm/fence_xvmd o fence_virt/fence_virtd.
- L'uso di un mix di cluster guest indipendenti con lo stesso insieme di host fisici potrà funzionare solo se utilizzate fence_scsi + iSCSI storage o fence_vmware + VMware (ESX/ESXi and vCenter).
- L'esecuzione come cluster guest di guest non-clusterizzati sullo stesso insieme di host fisici è supportata, tuttavia poichè gli host si isoleranno fisicamente a vicenda se è presente un cluster host, gli altri guest verranno terminati durante una operazione di fencing.
- Eseguire il provisioning dell'hardware dell'host in modo da evitare l'overcommit della memoria o della CPU virtuale. L'overcommit della memoria o della CPU virtuale abbasserà il livello delle prestazioni. Se le prestazioni raggiungono un livello critico, interessando anche l'heartbeat del cluster, si potrebbe verificare il fallimento del cluster.
Appendice A. Diario delle Revisioni Copia collegamentoCollegamento copiato negli appunti!
| Diario delle Revisioni | ||||
|---|---|---|---|---|
| Revisione 1-15.1 | Wed Feb 18 2015 | |||
| ||||
| Revisione 1-15 | Tue Dec 16 2014 | |||
| ||||
| Revisione 1-13 | Wed Oct 8 2014 | |||
| ||||
| Revisione 1-12 | Thu Aug 7 2014 | |||
| ||||
| Revisione 1-11 | Fri Aug 1 2014 | |||
| ||||
| Revisione 1-10 | Fri Jun 6 2014 | |||
| ||||
| Revisione 1-7 | Wed Nov 20 2013 | |||
| ||||
| Revisione 1-4 | Mon Feb 18 2013 | |||
| ||||
| Revisione 1-3 | Mon Jun 18 2012 | |||
| ||||
| Revisione 1-2 | Fri Aug 26 2011 | |||
| ||||
| Revisione 1-1 | Wed Nov 10 2010 | |||
| ||||