Archiviazione RAID con Raspberry

Condividi:

In questo articolo vedremo come installare un array di 4 dischi ssd sata III da 512 GB in configurazione RAID5 su Raspberry PI 3 modello B+. E’ una soluzione poco performante, ma economica sia come hardware che come consumi, in attesa di poter acquistare una vera docking station per i dischi sata, con controller raid ed ethernet. Il Raspberry unitamente ai dischi SSD inoltre, ci permettono di avere un sistema di archiviazione molto silenzioso da tenere in casa.

Premessa

Certamente l’ hardware del Raspberry non è la soluzione migliore per gestire un raid, i due limiti principali sono dovuti alla corrente disponibile per alimentare i dispositivi collegati e le 4 porte usb che appartengono ad un unico hub USB2.0 che limita la velocità di trasferimento a circa 10 MB/s Non sufficienti per vedere un film in 4k ma abbastanza per tenere i propri documenti, foto e video in uno spazio capiente ed assicurato contro i malfunzionamenti grazie al raid ed al controllo costante di smartd. Avendo a disposizione 4 porte usb possiamo utilizzare “solo” 4 dischi. Un raid 6 sarebbe certamente più sicuro, ma utilizzare 2 dischi su 4 per la parità non avrebbe senso, tanto varrebbe realizzare un raid 1 o un raid 10. Con il raid 5 invece possiamo usare 3 dischi su 4 per i dati. Il Raspberry non riesce ad alimentare 4 dispositivi, quindi i 4 cavi adattatori SATA3 USB con cui collegheremo i dischi devono essere dotati di alimentazione esterna. Anche l’alimentatore collegato alla porta micro USB del Raspberry deve essere in grado di fornire la corrente necessaria, quindi ne occorre uno almeno da 3A ( reali ) con un buon cavetto di collegamento ( corto e spesso ) in grado di trasportarli

Preparazione e controlli preliminari

Partiamo da una distribuzione raspbian perfettamente aggiornata

Inseriamo nella configurazione di boot del Raspberry la direttiva che permette di aumentare il limite di erogazione di corrente sulle porte USB a 1.2 A

Riavviamo il raspberry

Una volta riavviato, verifichiamo che il supporto multi device del kernel sia già caricato tramite la presenza del file mdstat in /proc

Se non fosse presente dobbiamo caricare il modulo md-mod

Verifichiamo che sia prente un device md in /dev

Se non fosse presente, per il momento creiamolo noi con mknod

Colleghiamo i dischi con i loro alimentatori e verifichiamo che siano stati rilevati tramite la presenza dei file sd* in /dev

Installazione del software

Abbiamo bisogno di mdadm per l’amministrazione del raid, xfsprogs per formattare il filesystem xfs e smartmontool per monitorare i dischi

Monitoraggio dei dischi

Con il nostro array abbiamo la possibilità di perdere un disco prima di compromettere il contenuto dell’archivio ma è meglio avere il tempo di ordinarne uno per poterlo sostituire

Commentiamo le righe che cominciano per DEVICESCAN nel file /etc/smartd.conf. Questa operazione è necessaria altrimenti l’inserimento delle righe dedicate alla configurazione dei check per ciascun device verrebbero ignorate

Poi inseriamo nel file di configurazione di smartd 4 righe per tenere sotto controllo i nostri dischi e ricevere una mail in caso di problemi. Faremo eseguire gli short self test tutti i giorni ad orari diversi tra mezzanotte e le 4,  i long self test invece in giorni divesi dopo le 5 in modo da non avere 2 dischi contemporaneamente rallentati per i test

Ora riavviamo smartd

Creazione del raid 5

E’ stato creato l’array, i primi 3 dischi sono già disponibili mentre il quarto rimane spare fino a che avrà completato la fase si sync che impiegherà molte ore

Possiamo osservare le informazioni sul completamento di questa fase tramite /proc/mdstat

La situazione finale sarà questa

Ora possiamo salvare le informazioni per la costruzione dell’array all’avvio tramite i servizi mdadm

Creazione del filesystem

Come filesystem utilizziamo xfs che è particolarmente adatto agli ambienti RAID

Terminata la formattazione, creiamo un mountpoint e montiamo l’array

Inseriamo in fstab il riferimento per montare il raid al boot

Condivisione su SAMBA

Creiamo un utente dedicato alla condivisione dei files chiamandolo raiduser

Assegnamo l’ownership del mountpoint a raiduser

Configuriamo smb.conf creando una nuova share pubblica RAID dove è possibile leggere e scrivere files tramite l’utente raiduser

Riavviamo samba