Mysql
 sql >> Database >  >> RDS >> Mysql

Distribuzione e gestione del cluster MySQL NDB con ClusterControl

In ClusterControl 1.5 è stato aggiunto un supporto per MySQL NDB Cluster 7.5. In questo post del blog, esamineremo alcune delle funzionalità che rendono ClusterControl un ottimo strumento per gestire MySQL NDB Cluster. Innanzitutto, poiché esistono numerosi prodotti con "Cluster" nel nome, vorremmo spendere due parole sullo stesso MySQL NDB Cluster e su come si differenzia dalle altre soluzioni.

Cluster NDB MySQL

MySQL NDB Cluster è un cluster sincrono non condiviso per MySQL, basato sul motore NDB. È un prodotto con un proprio elenco di funzionalità e molto diverso da Galera Cluster o MySQL InnoDB Cluster. Una delle principali differenze è l'uso del motore NDB, non InnoDB, che è il motore predefinito per MySQL. Nel cluster NDB, i dati vengono partizionati su più nodi di dati mentre il cluster Galera o il cluster MySQL InnoDB contengono l'intero set di dati su ciascuno dei nodi. Ciò ha gravi ripercussioni sul modo in cui MySQL NDB Cluster gestisce le query che utilizzano JOIN e grandi porzioni del set di dati.

Quando si tratta di architettura, MySQL NDB Cluster è costituito da tre diversi tipi di nodi. I nodi dati memorizzano i dati utilizzando il motore NDB. I dati vengono sottoposti a mirroring per la ridondanza, con un massimo di 4 repliche di dati. Si noti che ClusterControl distribuirà 2 repliche per gruppo di nodi, poiché questa è la configurazione più testata e stabile. I nodi di gestione hanno lo scopo di controllare il cluster:per motivi di disponibilità elevata, in genere si hanno due di questi nodi. I nodi SQL vengono utilizzati come punti di ingresso al cluster. Analizzano SQL, chiedono dati dai nodi di dati e aggregano set di risultati quando necessario.

Caratteristiche ClusterControl per il cluster MySQL NDB

Distribuzione

ClusterControl 1.5 supporta la distribuzione di MySQL NDB Cluster 7.5. Viene eseguita tramite la stessa procedura guidata di distribuzione come con i restanti tipi di cluster.

Nella prima fase, è necessario configurare il modo in cui ClusterControl può accedere agli host tramite SSH - questo è un requisito standard per ClusterControl - è agentless, quindi richiede l'accesso root SSH direttamente, all'account root o tramite (password o passwordless) sudo.

Nel passaggio successivo, definisci i nodi di gestione per il tuo cluster.

Qui, devi decidere quanti nodi di dati desideri avere. Come affermato in precedenza, ogni 2 nodi farà parte di un gruppo di nodi, quindi questo dovrebbe essere un numero pari.

Infine, devi decidere quanti nodi SQL desideri distribuire nel tuo cluster. Dopo aver fatto clic su Distribuisci, ClusterControl si connetterà agli host, installerà il software e configurerà tutti i servizi. Dopo un po' dovresti vedere il tuo cluster distribuito.

Ridimensionamento del cluster MySQL NDB

Per MySQL NDB Cluster, ClusterControl 1.5.0 supporta il ridimensionamento dei nodi SQL. Puoi accedere al lavoro dal menu a discesa Lavori del cluster.

Lì puoi inserire il nome host del nodo che desideri aggiungere e questo è tutto ciò di cui hai bisogno - ClusterControl si occuperà del resto.

Gestione del cluster MySQL NDB

ClusterControl ti aiuta a gestire MySQL NDB Cluster. In questa sezione vorremmo esaminare alcune delle funzionalità di gestione di cui disponiamo.

Backup

I backup sono fondamentali per qualsiasi ambiente di produzione. In caso di disastro, solo un buon backup può ridurre al minimo la perdita di dati e aiutarti a riprenderti rapidamente dal problema. La replica potrebbe non essere sempre una soluzione che funziona:DROP TABLE rilascerà la tabella su tutti gli host nella topologia. Anche uno schiavo ritardato può ritardare l'inevitabile solo di così tanto.

ClusterControl supporta il backup ndb per MySQL NDB Cluster.

È possibile creare facilmente una pianificazione di backup da eseguire da ClusterControl.

Livello proxy

ClusterControl ti consente di distribuire uno stack completo ad alta disponibilità sopra il cluster MySQL NDB. Per il livello proxy, supportiamo la distribuzione di HAProxy e MaxScale.

Come mostrato nello screenshot sopra, la distribuzione sembra molto simile agli altri tipi di cluster. È necessario decidere se si desidera utilizzare un HAProxy esistente o distribuirne uno nuovo. Quindi devi scegliere come installarlo, utilizzando i pacchetti dai repository disponibili sul nodo o compilarlo dal codice sorgente dell'ultima versione.

Se decidi di utilizzare HAProxy, avrai la possibilità di configurare l'alta disponibilità utilizzando Keepalived e Virtual IP.

Il processo è il seguente:definisci un IP virtuale e l'interfaccia su cui dovrebbe essere attivato. Quindi, puoi distribuirlo per ogni HAProxy che hai installato. Uno dei processi Keepalived sarà determinato come "master" e abiliterà VIP sul suo nodo. L'applicazione si connette quindi a questo particolare IP. Quando un HAProxy attivo corrente non è disponibile, il VIP verrà spostato su un altro HAProxy disponibile, ripristinando la connettività.

Gestione del ripristino

Sebbene MySQL NDB Cluster possa tollerare guasti di singoli nodi, è importante reagire prontamente a questi. ClusterControl fornisce il ripristino automatico per tutti i componenti del cluster. Indipendentemente dall'errore (nodo di gestione, nodo di dati o nodo SQL), ClusterControl li riavvierà automaticamente.

Monitoraggio del cluster MySQL NDB

Qualsiasi ambiente pronto per la produzione deve essere monitorato. ClusterControl fornisce una gamma di parametri da monitorare. Nella pagina "Panoramica", mostriamo grafici basati sulle metriche più importanti per il tuo cluster. Puoi anche creare le tue dashboard, mostrando dati aggiuntivi che sarebbero utili nel tuo ambiente.

Oltre ai grafici, la pagina "Panoramica" fornisce informazioni dettagliate sullo stato del cluster in base ad alcune metriche del cluster MySQL NDB come la memoria indice utilizzata, la memoria dati e lo stato di alcuni buffer.

Fornisce inoltre il monitoraggio delle metriche dell'host, incluso l'utilizzo della CPU, la RAM, le statistiche del disco o della rete. Questi grafici sono anche cruciali per costruire una visione dello stato di salute del cluster.

ClusterControl può anche aiutarti a migliorare le prestazioni dei tuoi database dandoti accesso al Query Monitor, che contiene statistiche sul tuo traffico.

Come mostrato nello screenshot sopra, puoi vedere che tipo di query sono in esecuzione sul tuo cluster, quante query di un determinato tipo, quali sono i loro tempi di esecuzione e i tempi di esecuzione totali. Questo aiuta a identificare quali query sono lente e quali di esse sono responsabili della maggior parte del traffico. Puoi quindi concentrarti sulle query che possono fornirti il ​​massimo miglioramento delle prestazioni.