Montare disco in RAID 1 di un NAS Qnap in Linux

Pubblicato il 23/05/2023

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 lvscane /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.

  • I contenuti di questo articolo sono rilasciati con licenza CC-BY 4.0
  • Eventuali spezzoni di codice presentati seguono, dove non dichiarato, licenza MIT