1. Archiviazione condivisa o replica dei dati:
* Storage condiviso: Entrambe le macchine hanno bisogno di accedere alla stessa posizione di archiviazione (ad es. SAN, NAS, file system condiviso). Ciò consente al servizio di fallire perfettamente l'altra macchina senza perdita di dati perché i dati sono prontamente disponibili.
* Replica dei dati: Se l'archiviazione condivisa non è fattibile o desiderabile, un meccanismo di replica dei dati (ad es. DRBD, CEPH, database distribuiti con replica) garantisce la coerenza dei dati tra le due macchine. Una macchina funge da primario, mentre l'altra mantiene una copia sincronizzata.
2. Software/framework di clustering:
* Questo software gestisce il processo di failover, monitora la salute di entrambe le macchine e garantisce che una sola macchina serva il servizio in qualsiasi momento. Esempi includono:
* Pacemaker/Corosync: Una popolare soluzione di clustering open source.
* Keepalived: Spesso utilizzato per la gestione Virtual IP (VIP).
* Heartbeat: Un'altra soluzione open source per l'alta disponibilità.
* Soluzioni proprietarie: Molti fornitori offrono il proprio software di clustering su misura per il loro hardware e sistemi operativi.
3. Indirizzo IP virtuale (VIP):
* Un singolo indirizzo IP è assegnato al servizio, gestito dal software di clustering. Questo indirizzo IP "galleggia" tra le due macchine. Quando la macchina primaria fallisce, il software di clustering sposta il VIP sulla macchina secondaria, rendendo nuovamente il servizio immediatamente accessibile.
4. Monitoraggio della salute:
* Il software di clustering monitora continuamente la salute di entrambe le macchine (utilizzo della CPU, memoria, connettività di rete, stato del servizio). Se la macchina primaria fallisce il controllo sanitario, viene avviato il processo di failover.
5. Meccanismo di failover:
* Il software di clustering definisce ed esegue il processo di failover. Questo include:
* Rilevare un guasto della macchina primaria.
* Spegnere con grazia il servizio sulla macchina non riuscita (se possibile).
* Avvio del servizio sulla macchina secondaria.
* Passa il VIP alla macchina secondaria.
6. Configurazione della rete:
* Entrambe le macchine devono avere una connettività di rete affidabile. Una configurazione di rete ridondante (ad es. Interfacce di rete multiple, interfacce legate) aumenta la robustezza del sistema.
7. Configurazione coerente:
* Entrambe le macchine dovrebbero avere una configurazione identica per il servizio, comprese le versioni software, i file di configurazione e tutte le dipendenze necessarie. Gli strumenti di gestione della configurazione (ad es. Ansible, Puppet, Chef) possono aiutare a mantenere la coerenza.
8. Consapevolezza dell'applicazione:
* L'applicazione stessa dovrebbe idealmente essere consapevole dell'ambiente di clustering ed essere in grado di gestire con grazia il failover. Ciò comporta spesso funzionalità come la persistenza di sessione o i meccanismi di blocco distribuiti.
In sostanza, il clustering altamente disponibile si basa sulla ridondanza a più livelli - dati, rete e servizio stesso - gestito da software intelligenti che garantisce un failover senza soluzione di continuità e tempi di inattività minimi.
hardware © www.354353.com