2012-06-27 18 views
11

Recentemente sto prendendo in considerazione l'utilizzo della distribuzione di Amazon RDS Multi-AZ per un servizio in ambiente di produzione e ho letto i documenti correlati.Come viene realizzata la distribuzione Multi-AZ di Amazon RDS?

Tuttavia, ho una domanda sul failover. Nelle Domande frequenti di Amazon RDS, il failover è descritto come segue:

D: Cosa succede durante il failover Multi-AZ e quanto tempo ci vuole?

Il failover viene gestito automaticamente da Amazon RDS in modo che sia possibile riprendere le operazioni di database il più rapidamente possibile senza l'intervento amministrativo . Quando non ci riesci, Amazon RDS capovolge semplicemente il canonico record di nome (CNAME) affinché l'istanza DB indichi lo standby, che a sua volta viene promosso a diventare il nuovo primario. Ti invitiamo a a seguire le best practice e implementare il tentativo di connessione al database allo del livello applicazione. I tempi di failover sono una funzione del tempo impiegato da per completare il recupero da arresto anomalo. Dall'inizio alla fine, il failover in genere termina entro tre minuti.

Dalla descrizione precedente, suppongo che ci sia un servizio di monitoraggio in grado di rilevare il fallimento dell'istanza primaria e il flipping.

La mia domanda è, in quale AZ viene ospitato questo servizio di monitoraggio? Ci sono 3 possibilità: 1. Lo stesso AZ come principale 2. Stesso AZ come standby 3. Un'altra AZ

Apparentemente 1 & 2 non sarà il caso, dal momento che non poteva gestire la situazione che l'intera AZ non disponibile. Quindi, se 3 è il caso, cosa succede se l'AZ del servizio di monitoraggio scende? Esiste un altro servizio per monitorare questo servizio di monitoraggio? Sembra essere un domino senza fine.

Quindi, in che modo Amazon garantisce la disponibilità di RDS nella distribuzione Multi-AZ?

risposta

0

Supposizione istruita: il servizio di monitoraggio viene eseguito su tutte le AZ e fa riferimento a un elenco condiviso di istanze in esecuzione (che viene replicato tramite sincronizzazione tra le AZ). Non appena un servizio di monitoraggio su una AZ rileva che un'altra AZ è inattivo, capovolge il CNAMES di tutte le istanze in esecuzione su un AZ che è attualmente attivo.

+0

Se la comunicazione tra due AZ è interrotta, cosa succederà? – ciphor

+0

@ciphor il link per le comunicazioni non è solo probabilmente, ma sicuramente ridondante, come tutto il resto nel mezzo. Le vostre domande sono una sorta di punto di affidabilità e disponibilità di un sistema. Tutto si riduce all'applicazione della ridondanza e alla riduzione del rischio. Tuttavia, non è mai impeccabile. – Viccari

+0

Ho anche una query su come, se il mio dbinstance RDS primario si trova nella regione N.Virginia, come posso trovare dove risiede il DBinstance secondario? – user3086014

0

Non siamo riusciti a determinare dove risiede l'istanza di failover, ma il nostro primario è in US-West-2c e secondario è in US-West-2b.

Utilizzando PostgreSQL, i nostri dati sono stati danneggiati a causa di un problema fisico con il volume Amazon (il più vicino possibile). Al momento non disponevamo di un sistema multi-AZ, quindi per il recupero, abbiamo dovuto eseguire un ripristino temporizzato il più vicino possibile all'evento. Il supporto di Amazon ci ha assicurato che se avessimo proceduto con il Multi-AZ, sarebbero passati automaticamente sull'altra AZ. Ciò pone le domande su come avrebbero potuto determinarlo e la corruzione dei dati sarebbe stata propagata all'altra AZ?

A causa di questo shisaster, abbiamo anche aggiunto una replica di sola lettura, che sembra avere molto più senso per me. Usiamo anche la replica RO per leggere e altre funzioni. La mia comprensione dal mio rappresentante Amazon è che si può pensare all'impostazione Multi-AZ più come una situazione RAID.

0

Dalla documentazione, failover si verifica se sono soddisfatte le seguenti condizioni:

  • perdita di disponibilità nella Zona Disponibilità primaria
  • Perdita di connettività di rete per primario
  • Compute fallimento unità primaria
  • fallimento bagagli sul primario

Ciò significa che il monitoraggio non si trova nello stesso AZ. Molto probabilmente, la replica di lettura utilizza le funzioni mysql (https://dev.mysql.com/doc/refman/5.7/en/replication-administration-status.html) per monitorare lo stato del master e agire se il master diventa irraggiungibile.

Naturalmente, questo porta la domanda cosa succede se la replica AZ fallisce? Molto probabilmente Amazon ha dei controlli nel rilevamento degli errori della replica per capire se è fallito o se il primario lo è.

Problemi correlati