Nell’articolo di ieri abbiamo visto le premesse per la creazione di un cluster di 3 istanze virtuali all’interno del nostro servizio di cloud computing. Nella giornata di oggi partiamo dalla spiegazione di ieri e vediamo di implementare direttamente la soluzione. Arriveremo al 90% del lavoro e nell’ultimo articolo di domani vedremo invece come installare Nginx sull’ultimo nodo e mettere tutto in produzione, con qualche considerazione.
Per prima cosa conteggiamo i costi delle macchine coinvolte in questa installazione:
- 2 istanze Gold con 2 core, 4 GB di RAM dal costo di 37 Euro mensili con 20 GB di spazio disco aggiuntivo. Il sistema operativo scelto è quello di Ubuntu Server LTS per entrambe, la sua configurazione avviene nella creazione di una nuova macchina all’interno del pannello cloudcp.hostingsolutions.it
- 1 istanza Silver con 1 core e 2 GB di RAM dal costo di 19,44 Euro mensili con 10 GB di spazio disco aggiuntivo. Questa sarà l’istanza virtuale che utilizzeremo come load balancer con l’installazione di NGINX, ovvero la soluzione che distribuisce il traffico sulle altre due virtual machines attive nel nostro account.
Il risultato finale è una infrastruttura che assicura ridondanza e continuità con meno di 100 Euro mensili, per la precisione per un totale di 94,00 Euro mensili + IVA.
Vediamo come procedere all’installazione delle singole configurazioni con i componenti delineati ieri:
Installazione di MYSQL Percona
Per prima cosa procediamo all’installazione di MySQL Percona su entrambe le istanze Gold. L’installazione è molto semplice, può essere effettuata tramite APT-GET. Al contempo possiamo scaricare anche PhpMyAdmin. Percona è una versione avanzata di MySQL che permette di ottenere migliori prestazioni rispetto alla versione originale, all’indirizzo https://tools.percona.com/ sono presenti i tools che possono aiutare nella configurazione di Percona anche i più inesperti.
Installazione di GlusterFS: storage distribuito sui nodi
GlusterFS è un un comodo sistema per poter avere i propri dati in mirroring su entrambe le istanze, facendo si che rimangano sempre connesse in rete e sincronizzate: questo fa si che entrambe possano far funzionare la nostra infrastruttura anche se una delle due istanze accusa dei problemi e non è accessibile. GlusterFS è di fatto molto utile in tutti quei casi in cui è necessario distribuire lo storage su più macchine mantenendole sincronizzate fra loro.
L’installazione non è semplice come con MySQL Percona, ma può avvenire seguendo queste veloci istruzioni: http://www.howtoforge.com/high-availability-storage-with-glusterfs-3.2.x-on-ubuntu-11.10-automatic-file-replication-across-two-storage-servers
Dobbiamo installare GlusterFS e Percona su entrambe le istanze virtuali Gold.
Una volta installato dobbiamo però procedere alla configurazione dello stesso perchè replici i dati presenti sulla singola istanza su quella collegata.
Per scoprire altri nodi che utilizzano GlusterFS usiamo questo comando:
root@vm1:~# /usr/local/sbin/gluster peer probe #IP di rete (IP di rete da sostituire con il proprio)
Su entrambe le VM ora creiamo una directory che sarà sincronizzata fra le due macchine:
VM1: mkdir sincrodir
VM2: mkdir sincrodir
Ora non resta che dire a GlusterFS di sincronizzare le istanze:
root@vm1:~# /usr/local/sbin/gluster volume create sincrodir replica 2 192.168.0.2:/sincrodir 192.168.0.3:/sincrodir
In questo caso abbiamo assunto di avere questi due indirizzi di rete, da modificare a seconda di quello delle vostre macchine virtuali. Siamo solamente ad un passo dalla fine, perchè quello che manca è far si che queste directory create vengano viste come fossero delle risorse montate nel sistema.
Per prima cosa consentiamo l’accesso da esterno:
root@vm1:/clusterdata# gluster volume set clusterdata auth.allow 192.168.*.*
Questo va a dire che i server con quell’IP (ricordate di modificarlo in base alle vostre interfacce di rete) possono accedere. Ricordare di eseguire lo stesso anche sulla seconda VM.
Fatto questo dobbiamo montare i volumi, anche in questo caso andiamo a farlo per entrambe le virtual machines nel nostro account di cloud computing. Eseguiamo queste operazioni, come sempre su VM1 e VM2
root@vm1:/# mkdir /sincrodir
root@vm1:/# glusterd
Come al solito ci sono da sostituire gli indirizzi IP relativi alle schede di rete.
Se tutto funziona a dovere vedrete i vostri dischi montati nel sistema. Create una cartella in una delle due virtual machine e automaticamente dovrebbe essere replicata anche nell’altra istanza virtuale.
A domani per l’ultima puntata dove finalmente configureremo NGINX come load balancer.