Backup a prova di bomba? RAID software su Ubuntu

Innanzitutto urge una precisazione: non siamo spariti, ma come tanti, abbiamo una vita al di fuori del blog che in questo momento ci sta assorbendo parecchio, chi per le varie tesi, chi per nuovi lavori, chi per lavori vecchi dove c’è bisogno più impegno del solito. Ci sono persone là fuori che pretendono, non capendo che abbiamo di meglio da fare ;).

Detto questo, ci eravamo lasciati settimana scorsa con un dilemma che mi stava logorando: come fare ad evitare di perdere tutto il mio archivio fotografico, essenziale per il mio equilibrio psicofisico? se ne erano dette diverse: dall’utilizzo di cubi costosi assolutamente autonomi, ad altri gadgets di dubbia qualità, addirittura googleando attraverso i feed RSS, avevo trovato personaggi incredibili disposti a spendere più di 1000$ per una serie di HD esterni collegati in rete. Qualcuno addirittura ha messo in una cassetta di sicurezza della banca gli hd direttamente.

Alla fine, grazie ai consigli ottenuti dai commenti di diversi utenti (grazie Fabrizio, Lore, l’immancabile Rebe), ho deciso di affidarmi ad una soluzione RAID, perché già possedevo un PC fisso con Ubuntu, perfettamente funzionante e senza schermo. Vuoi saperne di più? continua a leggere…

Come sistema operativo ho optato per Ubuntu Gutsy 7.10, con una normale procedura di installazione utilizzando la versione Desktop. Successivamente ho caricato il server SSH e VNC, dato che avrò a che fare con una macchina headless (wow ho imparato che così si chiamano i server senza schermo). Infine ho settato Samba per la condivisione di cartelle e stampante con sistemi Win.

Iniziamo con server SSH:

sudo apt-get install openssh-server openssh-client

perfetto. Ricordiamoci di aprire la porta 22 sul nostro firewall e router.

Ora il server VNC:

l’altra volta ho spiegato come effettuare un tunneling sulla 5900 con PuTTY per usare VNC su una connessione ssh protetta, dato che generalmente questo protocollo viaggia in chiaro, rendendo estremamente vulnerabile il sistema; vi rimando all’altro articolo per il settaggio di questa opzione. Per il momento funziona e mi sembra sicuro, se qualcuno avesse qualcosa da aggiungere siamo qui a disposizione.

Per evitare di inserire ancora alla cieca nome utente e pwd, ho installato un server VNC con sessione riesumabili, secondo questa guida. Ricordatevi di non abilitare il desktop remoto nativo di Ubuntu (Vino), per evitare problemi.

Bene, ora nel futuro sarò sempre in grado di accedere dalla mia intranet a questo pc, anche senza uno schermo.

Ora passiamo alla parte del backup.

raid1Il RAID permette di creare diversi tipi di configurazioni, avendo a disposizione almeno 2 HD. I tipi più comuni che vengono utilizzati sono sicuramente il RAID 0 ed il RAID 1; il primo permette di ampliare la quantità di spazio su disco fisso a disposizione, semplicemente “appendendo” un hd in fila all’altro, come se si trattasse di un’unica unità. Questo tipo di RAID non effettua alcun tipo di backup. Per le mie necessità ho utilizzato invece RAID 1, che permette di effettuare il mirroring di una unità su un’altra, copiando interamente ed il real-time il contenuto di un hd sull’altro. Non mi addentro nelle altre configurazioni perché certamente fuori scala rispetto agli obiettivi di questo post

In rete non c’è moltissimo come documentazione, soprattutto per chi come me non è ferratissimo in materia. In ogni modo qui trovate la guida migliore (grazie redice2k), che ho seguito quasi alla lettera. Per comodità mia e per rendere più rintracciabile su google questo procedimento in futuro, lo ripeterò anche qui sul nostro blog.

Partiamo.

raid_interno_pc

1) ho installato sulla mia motherboard una scheda Hamlet xsataci per avere i due ingressi SATA necessari che mi mancavano. Poca roba (20€ e vale questa cifra), però il suo dovere lo fa. Attenzione: questa scheda può funzionare anche come RAID, ma in realtà rientra nei cosiddetti fakeRAID, quindi carica tutti i processi sulla CPU del PC, con un possibile rallentamento generale.

2) ho inserito i due HD da 320gb (Western Digital).

3) installato gparted

sudo apt-get install gparted

4) creato una partizione ext3 su ciascuno dei due hard-disk (nel mio caso erano /dev/sdb1 e /dev/sda1)

5) per poter creare un RAID, il miglior programma per efficacia e facilità d’uso sembra essere mdadm:

sudo apt-get install mdadm

6) costruiamo il nostro array RAID:

sudo mdadm -C /dev/md0 -l1 -n2 /dev/sdb1 /dev/sda1

(in questo modo -Creiamo un raid in /dev/md0 di -livello=1 con -numero 2 device: sdb1 e sda1)

7) controlliamo che tutto vada bene:

sudo mdadm -D /dev/md0

8) ora come ora però l’array non ha un filesystem che ci permetta di lavorare, per questo usiamo

sudo mkfs -t ext3 -L NOME-DELLA-PARTIZIONE /dev/md0

9) creiamo la cartella nella quale avverrà il mount

sudo mkdir /media/RAID

10) dobbiamo fare in modo che questa partizione venga montata all’avvio, così apriamo il solito /etc/fstab:

sudo gedit /etc/fstab

e aggiungere questa riga:

/dev/md0 /media/RAID ext3 defaults 0 0

fileserver11) bene, ora montate l’unità ed il gioco è fatto! potete farlo anche tramite disk-manager, ottima utility per settare automaticamente le partizioni da montare in automatico all’avvio del sistema.

12) nota a margine: data la mia ignoranza, una volta montata la nuova unità corrispondente al RAID, scopro con piacere che non ho i permessi di scrittura; dalla regia mi fanno gentilmente notare che di default solo root può scrivere su queste nuove partizioni e che i permessi all’utente sono impostati in un secondo momento. Per risolvere questo problemuccio, è bastato battere nel terminale:

sudo chmod 777 /media/RAID

Detto questo, abbiamo un fileserver RAID che possiamo anche condividere in rete con sistemi Windows semplicemente indicando la cartella di mount tra i percorsi da condividere con Samba.

Geniale.

.: procedure mdadm (linuxinlife.wordpress.com) :.

36 risposte a “Backup a prova di bomba? RAID software su Ubuntu”

  1. sì finalmente…due settimane tra avere i pezzi e risolvere i vari problemi che si sono presentati…cercando in rete le informazioni sono proprio poche, neanche sul forum ufficiale della community italiana si trova granché!

    la scatola è splendida!

  2. ottima guida, ho raid 0 da questa primavera .. 😉

    sciamano, credo di si .. visto che gli usb esterni sono visti come
    unità scsi mdadm non se ne accorge della differenza.

    una domanda: esiste qualche UI per monitorare il raid o effeuttare manutenzione?
    o si puo’ fare solo da linea di comando ? (ok , sono pigro e non ho ancora trovato il momento di leggere il man .. 😉

  3. grazie a tutti, effettivamente non penso che mdadm noti la differenza tra hd interni e usb, visto che i miei sata li vede come sda1/sdb1, l’unico problema sarebbe che l’infida velocità USB non permetterebbe grandi velocità di trasferimento!

    la scatola che sorride? è l’unico modo per tenere a portata di mano cavo ipod, lettore schede, compact flash di scorta, cuffie e cavo di rete 😉 e poi sarà il nuovo oggetto cool dopo l’apple!

  4. per calca: sto cercando anch’io una gui, ma mi sa che siamo senza speranza! fortuna che praticamente non serve toccare nulla dell’iniziale configurazione, però un’interfaccia sarebbe tornata utile soprattutto per avvisare nel caso un’unità sia offline per qualsiasi motivo…

    qualche altro lettore ci può dare consigli?

  5. A questa pagina ho trovato una qualche spiegazione della funzione –monitor di mdadm, sembra che si possa utilizzarlo come demone e farsi inviare anche una email in caso che il disco avesse qualche problema… se qualcuno è in grado di dare una spiegazione di come funzioni questa opzione, ci faccia sapere..

  6. l’hamlet xsataci ha 2 prese s-ata una interna ed una esterna il mio dubbio e’ : la presa esterna e’ e-sata ? o basta un cavetto sata per hd interni ?

  7. perfetto 🙂 grazie mille per la risposta rapida credo proprio che andro’ a fare un po’ di spesa oggi 😉

  8. prego! spero che questa guida sia esaustiva, non è stato facile trovare qualcosa in rete!
    nel limite del possibile, se c’è bisogno siamo qui!

  9. la guida mi sembra perfetta e ho intenzione anche io di prendere l’hamlet con 2 seagate da 320Gb e montarli su un vecchio pc con P3 700Mhz sul quale gira Ubuntu 7.10 server connesso in lan per usarlo come storage samba per il backup.
    ( per curiosita’ il cavo sata esterno lo hai naturalmente fatto passare da una delle fessure delle schede PCI ? )

    Volevo preparare uno script su windows per fare il WakeOnLan del server e poi rsync delle directory che voglio tenere in backup e finito l’rsync mandare in halt di nuovo il server cosi e’ pronto al prossimo backup, probabilmente servira’ una combinazione di script windows e unix.

    grazie ancora

  10. sì sì, il cavo l’ho fatto passare tramite un’apertura PCI non occupata da una scheda (basta non toccare il cavo e non ci sono problemi).

    io attualmente faccio così: ho installato synctoy 2.0 beta di microsoft per creare le relazioni di backup, visto che voglio essere io a decidere quanto salvare i dati; se sono fuori casa, ho installato una piccola utility per fare il wake-on-lan che però non mi esalta moltissimo!

    per gli script: interessanti! se tu li volessi condividere, potresti scrivere un articoletto che ti potremmo pubblicare qui! tu di cosa ti interessi?

  11. per il wake on lan lo uso anche io in lan locale, volevo usarlo via internet ma il mio linksys ag241 non supporta il port forward dei pacchetti broadcast quindi non funziona !
    (stavo provando a dare una occhiata al firmware che linksys rilascia opensource ma non ho ancora avuto tempo per installare le toolchains per ricompilarlo spero di trovare un po’ di tempo libero)

    per gli script non ci sono problemi se riesco a metter su qualcosa che mi soddisfa li condivido tranquillamente 🙂

    non posso dirti molto della mia professione per motivi di policy aziendale mi dispiace 🙂

  12. volevo solo sapere se questa guida sarebbe stata usata per scopi di salvataggio dati, da fotografi, fileserver per multimedia o altri scopi, non certo infrangere policies!!! 🙂

  13. il discorso della policy riguarda la mia professione e cio’ che faccio (non c’entra niente con questo post), visto che la connessione che uso qui al lavoro e’ monitorata (e’ una multinazionale) non posso dire nulla davvero non era per fare il figo 🙂 non mi interessa proprio.

    il sistema ubuntu sul quale ho messo il raid e’ per scopi di backup dati e’ di amici che hanno una software house e si occupano anche di grafica e web design e avevano bisogno di una soluzione di backup affidabile e trasparente piu’ possibile.

    Poi ieri ho fatto la spesa e installato/configurato il tutto e devo dire che e’ andato tutto a meraviglia grazie alla tua guida, ora devo solo trovare il tempo per scrivere un po’ di script 🙂

  14. ok ok ti chiameremo mister X allora 😀 ! sai com’è, fa sempre piacere sapere se la tua guida magari aiuta qualcuno con la tua stessa passione!

  15. speroc he qualcuno ancora legga questo post, io invece avrei bisogno di risolvere il seguente problema e, essendo alle prime armi non so bene da dove iniziare a cercare. Dunque il problema consiste nel, perso o danneggiato uno dei due dischi in mirror vorrei poter leggere i file in quello ancora buono, ma a quanto pare non una cosa cosi immediata…
    Qualcuno mi sa dare qualche indicazione ? Grazie mille anticipatamente

  16. ciao, certo che leggiamo i post! su due piedi non ti so dare risposta, però per aiutarti abbiamo bisogno di sapere prima di tutto qual è il filesystem che hai usato nel raid.

  17. Grazie mille della prontissima risposta. Mi spiego meglio, in questi giorni sto testando Openfiler ,che funziona a meraviglia, ma se considerati i miei limiti non sono in grado di recuperare i dati, il mio bel mirror server a poco. Dunque Openfiler permette di usare o EXT3 o XFS…. se una dei 2 filesystem e piu semplice da gestire per me va benissimo in quanto sto solo facendo delle prove…. Grazie mille

  18. aggiungo ancora un dettaglio, Openfiler legge ancora benissimo il disco buono ed eventualmente ricostruisce i raid appena si sostituisce il disco guasto… ma credo che poter cmq leggere i dati da un altra distro , anche live, sarebbe utile.

  19. ho messo i dischi in mirroring, ma collegati singolarmente ad un altro pc con Ubuntu o un’altra distro live [parted magic per esempio} il filesystem non viene riconosciuto

  20. Questo è molto strano.. il mirroring non è altro che una scrittura dei dati su dischi diversi. Ogni singolo disco dell’array è identico all’altro. Non dovrebbe essere necessario nulla di particolare per poterlo leggere. E’ stato creato apposta per avere una copia funzionante sempre pronta…

  21. Ciao ragazzi,
    anche io ho il problema del raid, ma un po diverso,
    il raid lo fatto con l’utility della mia scheda madre,
    e in windows non ho problemi, ho un raid da 2 dischi da 500gb
    l’uno, formattato in NTFS.
    ora come faccio per vedere questo raid ntfs da linux senza perdere i dati che stanno dentro?
    grazie

  22. facci capire, tu hai un pc dove hai creato un raid da bios o da un software windows direttamente tramite la scheda madre? e poi, sei in dual boot oppure il raid è su un computer win e vorresti accedere al raid da un pc linux?

  23. drMauro,

    solo un chiarimento, il sistema operativo non è presente sui 2 HD(/dev/sdb1 e /dev/sda1), giusto? Sono semplicemente 2 dischi dedicati ai dati e il sistema operativo è installato su un HD a parte(diciamo su un 3° HD). E’ giusto oppure ho capito male?

    Grazie

  24. esattamente, ci sono guide in rete che permettono di mettere l’OS sul RAID, però nel mio caso perdeva il significato di archiviazione!

  25. Salve ragazzi, complimenti per l’ottimo articolo ma essendo un niubbo di linux la mia domanda è questa.
    ho creato un macchina con hd da 60gb per il sistema(ubuntu 9.02) e ho aggiunto 2 hd da 250 su sata in raid1.
    ho fatto tutte le operazioni alla lettera ma come mai non vedo l’unita raid montata come drive aggiuntivo? è normale?
    posso solo scrivere file nella cartella di mount che comunque ha le dimensioni di 60gb invece di 250gb come da hd in raid….
    è normale tutto questo?
    grazie ragazzi!!
    Joe!

  26. ciao, ottima guida 🙂 volevo solo un informazione, io ho un controller hardware per fare il raid e volevo farlo gestire a quello non a linux, anche se pero all avvio del pc lo configuro con le raid utils del controller quando entro su linux il mio raid non esiste….su windows andava sai come posso fare per sistemare il tutto??

    grazie in anticipo

    saluti

  27. Ciao, ho letto la tua guida e provato a fare il tutto.
    Ho utilizzato Xubuntu (per avere qualche cosa di veloce e grafico…): ho 2 hd da 1TB che dovevo mettere in Raid.
    Diciamo che ho modificato questo:
    – sudo mdadm -C /dev/md0 -l1 -n2 /dev/sdc1 /dev/sdd1
    – sudo mkfs -t ntfs -L arr_part /dev/md0
    – /dev/md0 /media/RAID ntfs defaults 0 0

    Problema, all’avvio non monta il raid (volevo installare un programma per montarlo dopo aver riavviato (son stato costretto a riavviare) ma in questo momento non mi vede il raid nemmeno con Gparted e all’avvio mi chiede di gestire con M o avviare con S.
    Un aiutino?

I commenti sono chiusi