Storage condiviso tra due cloud server in replica

Storage condiviso fra le nuvole: con il cloud computing tutto è possibile! Così non è per nulla complicato costruire uno storage distribuito fra due server in replica, massimizzando lo spazio a disposizione e migliorando l'aspetto sicurezza per i dati memorizzati. Ecco spiegato come programmare lo storage condiviso e come autorizzare i client ad averne accesso

Lo spazio su disco non basta mai, sia quando si parla di client locali sia quando si lavora con cloud server sui quali sono ospitati i nostri siti Web o altri applicativi di fondamentale importanza per la nostra azienda. 

Molti provider di cloud computing, come Cloudup, permettono di estendere la capacità dello spazio disco acquistato ma, al di là di questa opportunità, potrebbe essere necessario procedere alla creazione di uno storage condiviso tra due cloud server.

Con GlusterFS, un file system open source scalabile orizzontalmente, è possibile collegare fra loro hard disk installati su macchine differenti, creando una sorta di disco virtuale accessibile da tutti i client autorizzati. 

Adottare una tecnica del genere ci permette dunque non solo di sfruttare appieno l’intero spazio disponibile su tutti i cloud server di nostra proprietà, ma anche di incrementare il livello di sicurezza dei dati in essi contenuti, soprattutto perché i soli client presenti in white list potranno accedere al disco remoto che, agli occhi di un normale utente, sembrerà un normalissimo disco locale. 

Inoltre, GlusterFS supporta la replica geografica, per la messa in sicurezza dei dati più importanti.

Cos’altro aspettiamo? Diamo inizio alla creazione del nostro storage condiviso. Tale tecnica è applicabile ad un numero qualsiasi di cloud server. Noi, abbiamo deciso di effettuare un test su due macchine differenti ed un client ad esse connesso.

Tutto inizia dunque con la creazione del primo dei due cloud server necessari. Raggiungiamo quindi la homepage di Cloudup e da qui clicchiamo sul pulsante Accedi alla console. Digitiamo le nostre credenziali d’accesso e confermiamo con un clic su Accedi. Nella nuova finestra che appare, premiamo su Crea e acquista un nuovo server per iniziare la procedura d’acquisto. 

Quale sistema operativo scegliere? Ne basta uno basato su Linux, considerato che GlusterFS è sviluppato proprio per la piattaforma del Pinguino. Nel nostro caso, abbiamo preferito affidarci ad una Debian Squeeze a 64 bit.

storage-condiviso-os

Proseguiamo con un clic sul pulsante Avanti e scegliamo la configurazione hardware da adottare. Come al solito, tutto dipende dalle nostre esigenze. Superata questa fase, premiamo nuovamente su Avanti e portiamo a termine la procedura d’acquisto. Effettuiamo la stessa procedura per una seconda macchina che utilizzi, preferibilmente, lo stesso sistema operativo.

storage-condiviso-hardware

Storage condiviso fra due cloud server: procediamo!

Ricevuta la mail di attivazione, i due nuovi e fiammanti cloud server sono pronti all’uso. Nel nostro caso, il primo dei due (che chiameremo cloud_server1) ha indirizzo IP 178.239.178.34. Il secondo (cloud_server2) ha indirizzo IP 178.239.178.52. E poi c’è il nostro PC (client), anch’esso equipaggiato con Debian e che ha come indirizzo locale 192.168.1.100

Ora che il quadro è abbastanza chiaro, possiamo metterci all’opera e creare lo storage condiviso.

Connettiamoci tramite SSH al primo dei due cloud server:

ssh -l root 178.239.178.34

e lanciamo il comando:

vi /etc/hosts

Modifichiamo dunque il file di configurazione aggiungendo le seguenti righe:

127.0.0.1                    localhost

178.239.178.34          cloud_server1

178.239.178.52          cloud_server2

192.168.1.100            client

Tale operazione, va replicata anche sul secondo cloud server e sul nostro client locale. Fatto ciò, possiamo tornare ad operare prima sul cloud_server1 e poi sul cloud_server2, lanciando su entrambi il comando:

apt-get install glusterfs-server

che ci consente di procedere all’installazione di GlusterFS. È bene precisare che quanto seguirà, è relativo alla versione 3.2.7 di GlusterFS. 

Dunque, se stiamo utilizzando una release più datata, è altamente consigliato procedere all’aggiornamento. In caso contrario, maggiori dettagli sulla sintassi dei comandi da lanciare sono disponibili nella documentazione ufficiale di GlusterFS consultabile su questa pagina

Nel caso in cui sul nostro cloud server fosse configurato un firewall, assicuriamoci che le porte 111, 24007, 24008 e 24009 siano aperte. Terminata questa fase, connettiamoci nuovamente al cloud_server1 e da qui digitiamo:

gluster peer probe 178.239.178.52

ovvero, l’indirizzo IP associato a cloud_server2. Se tutto è andato per il verso giusto, riceveremo in output il messaggio “Probe successful”.

Ecco come creare lo storage condiviso

Creiamo quindi un nuovo storage condiviso che chiameremo disk. Nel nostro caso, poiché i cloud server sono 2, dovremo replicare tale configurazione 2 volte nella directory /data del cloud_server1:

gluster volume create disk replica 2 transport tcp 178.239.178.34:/data 178.239.178.52:/data

Anche questa volta, in caso di esito positivo riceveremo in output un messaggio di conferma. Non ci resta dunque che avviare il volume con:

gluster volume start disk

Un’ulteriore verifica può essere fatta lanciando su entrambi i cloud server il comando:

netstat-tap | grep glusterfsd

Ritorniamo ora al cloud_server1. Se vogliamo dare un’occhiata allo stato del volume, lanciamo il comando:

gluster volume info

e verifichiamo che appaia qualcosa simile a questo:

Volume Name: disk

Type: Replicate

Status: Started

Number of Bricks: 2

Transport-type: tcp

Bricks:

Brick1: 178.239.178.34:/data

Brick2: 178.239.178.52:/data

Storage condiviso ad accesso autorizzato

Lo storage condiviso è quindi pronto. Da questo momento e per impostazione predefinita, il nostro client, così come tutti gli altri, possono collegarsi senza autorizzazione. Questa opportunità non è poi così sicura, vero? Dunque, è il caso di connetterci al cloud_server1 e da qui lanciare il comando:

gluster volume set disk auth.allow 192.168.1.100

Tuttavia, almeno al momento, il client non può accedervi, in quanto GlusterFS (lato client, appunto) non è ancora installato. Dunque, avviamo il terminale e da qui lanciamo il comando:

sudo apt-get install glusterfs-client

e creiamo una nuova directory con:

sudo mkdir /mnt/glusterfs

e facciamo sì che il file system GlusterFS venga montato in questo percorso con:

sudo mount.glusterfs 178.239.178.34:/disk /mnt/glusterfs

Lo storage condiviso è dunque ora perfettamente leggibile anche dal nostro client. Per evitare di effettuarne il mounting manualmente ad ogni riavvio della macchina, possiamo agire in fstab, lanciando il comando:

sudo vi /etc/fstab

e aggiungendo la nuova riga:

178.239.178.34:/disk /mnt/glusterfs glusterfs defaults,_netdev 0 0

Il nostro sistema è ora pronto: non ci resta che iniziare ad utilizzare subito il volume creato e condiviso fra i due cloud server in replica.

 

Questo articolo è offerto da Cloudup.it: cloud computing a consumo al minuto per la PMI, con data center a MilanoCloudup – powered by Enter S.r.l. – il servizio per creare cloud server a consumo, scalabili fino a 8 CPU e 16 GB di RAM. Ideali per gestire picchi di traffico temporanei o per allestire ambienti di test/sviluppo