Montare disco in RAID 1 di un NAS Qnap in Linux
Antefatto
Il mio NAS Qnap TS-251 mi ha abbandonato all’improvviso. Avendo l’idea di passare ad un Synology e non essendo sicuro di poter montare i dischi sul nuovo dispositivo senza doverli formattare, ho avuto la necessità di recuperare alcuni dati.
Il NAS ha due dischi in RAID 1.
Domanda
Come monto in Linux un disco SATA appartenente a un RAID 1 ?
Assunzioni
Le istruzioni che seguono sono state provate su Ubuntu Mate 20.04.6
E' necessario avere un cavo sata2USB per attaccare il disco al pc.
Che fare
Installare i pacchetti necessari.
sudo apt-get install mdadm, lvm2
mdadm
permette di gestire l’array di dischi RAID.
lvm2
è il manager dei volumi logici. Qnap, o almeno questo modello e relativa versione di sistema operativo Qnap, usa volumi logici per gestire i dischi.
Collegare il disco SATA via USB.
Eseguire il comando dmesg | tail
per capire il nome con cui è stato risolto il disco appena collegato.
Nel mio caso ho trovato queste righe
[ 4382.212422] sda: sda1 sda2 sda3 sda4 sda5
[ 4382.214171] sd 0:0:0:0: [sda] Attached SCSI disk
Normalmente su questo tipo di NAS la partizione di interesse è la terza, sda3
nel caso specifico.
Usando mdadm
esaminare la partizione e vedere se la dimensione corrisponde a quella che ci aspettiamo.
sudo mdadm -E /dev/sda3
Nel caso l’array di dischi non sia attivo, attivarlo con
sudo mdadm -A -R /dev/md100 /dev/sda3
Se ci troviamo davanti a una risposta come la seguente, potrebbe essere che l’array di dischi sia già attivo
mdadm: /dev/sda3 is busy - skipping
Se l’array è già attivo bisogna capire il device a cui è stato legato, sarà qualcosa del tipo /dev/md
seguito da un numero. Io mi sono aiutato con l’applicazione dischi per capire il device corretto ( nel mio caso /dev/md1
)
A questo punto bisogna attivare i volumi logici.
Per prima cosa fare una scansione per avere la lista e lo stato dei volumi logici.
~ sudo lvscan
WARNING: PV /dev/md1 in VG vg1 is using an old PV header, modify the VG to update.
inactive '/dev/vg1/lv544' [<27,85 GiB] inherit
inactive '/dev/vg1/lv1' [2,69 TiB] inherit
Attivare i volumi logici per rendere i dati disponibili.
~ sudo vgchange -ay
WARNING: PV /dev/md1 in VG vg1 is using an old PV header, modify the VG to update.
2 logical volume(s) in volume group "vg1" now active
A questo punto è possibile montare la partizione con i dati, nel mio caso la sorgente /dev/vg1/lv1
l’ho recuperata guardando le dimensioni presenti nel risultato del precedente lvscan
e /mnt/your-pc-folder
è una cartella creata da me per ospitare i dati. Nel caso specifico ho preferito montare in sola lettura per evitare scritture involontarie (-o ro
).
sudo mount -o ro /dev/vg1/lv1 /mnt/your-pc-folder
Risorse
Quanto scritto in queste note è un estratto provato sul campo recuperato da questa discussione sul sito Qnap.
Update 07-11-2023: Ho utilizzato il processo descritto per recuperare i dati dal mio NAS morto all’improvviso. L’ho fatto perchè dalle mie ricerche in rete non risultava possibile recuperare automaticamente i volumi RAID neanche passando ad un altro modello Qnap. La realtà si è dimostrata diversa: ho acquistatato un altro NAS Qnap, un TS-233 nel mio caso. Quando ho inserito i dischi il sistema operativo, il QTS 5.x, ha riconosciuto la presenza di un precedente RAID e ha provveduto a ricostruirlo. Voglio però segnalare un passaggio importante che può aiutare altri nella stessa situazione: una volta ricostruito il RAID il NAS mostrerà lo spazio disco occupato, ma non visualizzerà alcun file al suo interno. Per fare riapparire i file si devono ricreare manualmente, e con lo stesso identico nome di prima, le directory root. Non appena queste verranno ricreate, come per magia, riappariranno al loro interno tutti i file e sotto-cartelle presenti.