In un precedente post sul blog, ho parlato della progettazione delle implementazioni RAC con ridondanza N+1. Ciò garantisce che la perdita di un nodo non sovrasti i nodi rimanenti in caso di guasto di un nodo. Oggi parlerò dell'impatto del consolidamento dei server, in particolare dei core della CPU, e del suo potenziale impatto N+1.
Uno dei principali sistemi su cui lavoro oggi è un cluster Oracle RAC a quattro nodi. Ogni nodo ha 4 core. Ho la licenza per tutti i 16 core (4 core/nodo * 4 nodi =16 core totali) nel mio ambiente. Ho progettato questo sistema con ridondanza N+1. Se perdo un nodo e perdo 4 core, sto ancora bene perché il mio carico di lavoro richiede solo 12 core per mantenere livelli di prestazioni normali e accettabili.
Quando questo sistema è stato inizialmente progettato, i server a 4 core erano comuni. L'ambiente odierno è diverso ed è sempre più difficile trovare server a 4 core. Esistono ancora, ma i fornitori di hardware stanno spingendo sistemi con un numero maggiore di core.
In una conversazione con il mio SysAdmin di recente, ha voluto ordinare sistemi a 6 core per sostituire i nostri server di 3 anni. Beh, non possiamo semplicemente farlo. La mia licenza Oracle è per 16 core. Potrei distribuire tre sistemi a 6 core, ma poi avrei un totale di 18 core nel cluster e avrei bisogno di 2 core in più per le licenze Oracle. Se avessi distribuito due sistemi a 6 core, avrei un totale di 12 core e avrei 4 core di licenze inutilizzate.
Ho anche informato il SysAdmin del nostro design N+1. L'impatto del passaggio a sistemi a 6 core può avere un impatto importante sul design N+1. Ricorda che ho detto prima che le nostre richieste di carico di lavoro richiedono 12 core per mantenere livelli operativi normali. Se distribuiamo macchine a 6 core, due di esse soddisfano i nostri requisiti e un altro nodo, il "+1", sarebbe necessario per assicurarci di poter perdere un nodo senza ripercussioni importanti sulle prestazioni. Avremmo bisogno di distribuire tre macchine a 6 core per mantenere intatto il nostro obiettivo di progettazione N+1. Ma questo significa che dobbiamo aumentare il numero delle nostre licenze, come ho affermato in precedenza.
A questo punto, il mio amministratore di sistema ha pensato di avere una buona idea... potremmo acquistare due server a 8 core. Sono ancora 16 core totali ed è esattamente ciò per cui abbiamo la licenza oggi. Nessun aumento dei canoni. Ma se perdiamo un nodo, scendiamo a 8 core totali in funzione, che è inferiore a quello di cui ho bisogno. Questo fa emergere un ottimo punto...
In questo momento, non c'è una risposta facile. Possiamo ancora acquistare server a 4 core, quindi è quello che sostituiremo quelli attuali con il prossimo anno. Ma verrà il giorno in cui sarà impossibile trovare server a 4 core. Dovremo avere un piano in atto per quel momento, tenendo presente i nostri obiettivi di progettazione N+1.
Se solo potessi partizionare in modo rigido i nostri server Linux e lasciare che i core rimangano inattivi rimanendo conformi ai nostri accordi di licenza Oracle.