Le risorse per la disponibilità possono essere utilizzate per la scalabilità?

0

Nella sua grande tesi, Benjamin Erb parla di scalabilità, affidabilità e disponibilità :

The essential technique for ensuring availability and reliability is redundancy and the overprovisioning of resources. From a methodical viewpoint, this is very similar to horizontal scaling. However, it is important not to conflate scalability and availability. Spare resources allocated for availability and failover can not be used for achieving scalability at the same time. Otherwise, only one requirement can be guaranteed at once.

Ciò significa che se voglio raggiungere la disponibilità di una risorsa A, devo implementare, ad esempio, un cluster con 2 nodi che servono questa risorsa, ma il carico andrà sempre al primo nodo (senza bilanciamento del carico!) e se il nodo si blocca, il carico verrà indirizzato al secondo nodo?

Se il carico aumenta, non riesco a distribuire il carico tra i due nodi?

Se distribuisco il carico tra i due nodi e uno si blocca, tutto il carico andrà al nodo rimanente (magari applicando qualche strategia per la contropressione) e userò il secondo nodo sia per la disponibilità che per la scalabilità?

    
posta gabrielgiussi 17.03.2016 - 13:39
fonte

1 risposta

2

Onestamente, sto avendo problemi a analizzare ciò che stai dicendo. Tuttavia, il problema è piuttosto semplice: se si assegnano le stesse risorse di riserva a entrambe scalabilità e disponibilità, non è possibile ottenere entrambe le opzioni, è necessario scegliere.

  • alloca le risorse di riserva per il ridimensionamento, ma non sono più disponibili per il failover, cioè non puoi più garantire la disponibilità
  • mantieni le risorse di riserva per il failover, ma le risorse rimanenti non possono essere ulteriormente ridimensionate

Non puoi fare entrambe le cose. Se vuoi garantire sia la necessità di sovraprovisionare le risorse sia per separatamente .

Supponiamo che un server può servire 100 utenti. Hai una media di 600 utenti e un picco di carico di 800 utenti. Vuoi essere in grado di sopravvivere a 2 server morti.

Quindi non è possibile eseguire il provisioning di 8 server, è necessario eseguire il provisioning 10, in modo da poter sopravvivere a 2 server in errore a carico di picco (800 utenti). Se si condividono i 2 server aggiuntivi tra i requisiti di ridondanza e scalabilità (ad esempio, la fornitura di 8 server), è possibile sopravvivere a 2 server morti con carico medio e scalare fino a 800 utenti con carico massimo, ma non entrambi em>.

Nota: non ho detto nulla sui server attivi e in standby qui. Questo perché è irrilevante. Ovviamente, hai bisogno di almeno 6 server attivi. Ma non importa se hai 6, 7, 8, 9 o 10 server attivi e 4, 3, 2, 1 o 0 in standby. È possibile avere 6 in esecuzione e 4 in standby e attivarli su richiesta quando il carico aumenta o un server muore. Oppure puoi avere 10 in esecuzione, e l'unica cosa che succede è che non funzionano con efficienza ottimale. Ma ancora se 2 muoiono durante il picco di carico, tutto ciò che accade sugli altri 8 è che il carico sale, ma non sovraccaricano.

    
risposta data 17.03.2016 - 14:24
fonte

Leggi altre domande sui tag