Il NAS definitivo con Debian e Nextcloud (parte 2 configurazione LVM con cache)

Premesse

Questo è il secondo articolo sulla serie “Il NAS definitivo con Debian e Nextcloud”, se vi siete persi il primo vi consiglio di andare a fare un salto prima al precedente articolo e poi tornare qui.

Partiamo dal presupposto che abbiate già assemblato il NAS (anche perché potreste aver modificato la configurazione o essere partiti da componenti già pre-esistenti), se non lo avete ancora fatto esistono innumerevoli guide e videoguide al riguardo, inoltre solitamente è anche chiaramente spiegato sulle istruzioni della scheda madre.

Presupponiamo di aver già creato l’installer e di averlo avviato. Se invece non avete idea di come creare un drive USB per l’installazione abbiamo un’ottima guida al riguardo sul wiki. Inoltre per capire come funziona la procedura di installazione potete visitare sempre il nostro wiki.

Quello che andremo ad analizzare oggi è la configurazione dei dischi da adottare per fare una cosa fighissima: archiviare i dati sull’HDD, ma al contempo, utilizzare l’SSD come cache per accelerare notevolmente l’accesso e la scrittura dei files più utilizzati e quindi avere un NAS molto reattivo!

Configurazione dischi di sistema

Avviate l’installer Debian con i firmware inclusi e proseguite l’installazione fino a che non vi troverete di fronte alla schermata del partizionamento. Selezionate manuale

A questo punto selezionate l’SSD e iniziate il partizionamento creando

  • 100MB di partizione EFI;
  • 300MB di partizione ext4 e selezionare il punto di montaggio /boot;
  • restante parte selezionate volume fisico per LVM.

Sarebbe buona norma lasciare alla fine del disco SSD un 10% di spazio non partizionato utilizzato al fine dell’over-provisioning.

Fatto questo selezionate “Configurare il Logical Volume Manager” e create un nuovo gruppo volumi che chiamiamo “SSD”. Selezionate la partizione creata come volume fisico per LVM.

A questo punto selezioniamo crea volume logico e creiamo un volume chiamato debianOS e creiamo un volume di 50GB.

Ripetiamo la procedura e creiamo un altro volume logico che chiamiamo swap e facciamolo di dimensioni pari alla dimensione della RAM installata.

A questo punto clicchiamo su termina e, una volta tornati alla lista dello schema delle partizioni selezioniamo il volume debianOS

Scegliamo di usare come File System Ext4 con Journaling e come punto di mount selezioniamo /

Selezioniamo poi la partizione logica creata come swap e selezioniamo usare come “Area di swap”.

A questo punto abbiamo finito il partizionamento manuale e possiamo procedere con l’installazione come di consueto. Alla schermata di scelta del software da installare selezionate solamente “server SSH” e “Utilità di sistema standard”.

A questo punto completate l’installazione e riavviate.

Dal momento che è stato installato SSH potrete ora collegarvi tranquillamente dal vostro computer remoto con SSH.

La cosa migliore è impostare una autenticazione con public-key per la quale sul wiki c’è una guida molto completa.

Configurazione dischi aggiuntivi

Ora è giunto il momento di configurare il disco rigido. Quello che vogliamo fare è creare una nuova partizione su LVM per i dati che salveremo su Nextcloud, ma la particolarità è che lo spazio che abbiamo lasciato residuo sulla SSD verrà sfruttato come cache in lettura e scrittura.

Diamo per scontato che /dev/sda sia la vostra SSD e che /dev/sdb sia il nuovo disco magnetico da configurare.

Per prima cosa cancelliamo tutte le partizioni sul disco magnetico con

wipefs -a /dev/sdb

Ora creiamo una unica nuova partizione per LVM, per farlo

cfdisk /dev/sdb

Selezioniamo lo schema di partizionamento GPT e creiamo una nuova partizione grande come tutto il disco e come tipo selezioniamo Linux LVM.

Salviamo le modifiche e creiamo il volume fisico sull’HDD con

pvcreate /dev/sdb1

aggiungiamo ora il volume fisico al gruppo di volumi precedentemente chiamato SSD (per fare la cache il gruppo volumi deve essere lo stesso quindi se in fase di installazione avete scelto un nome diverso dovete utilizzare quello)

vgextend SSD /dev/sdb1

creiamo sull’SSD, nel gruppo SSD il volume di cache chiamato datacache. Ovviamente assicuratevi prima con fdisk -l che /dev/sda3 sia la partizione corrispondente alla partizione dedicata ad LVM nell’SSD

lvcreate --type cache-pool -l 100%FREE -n datacache SSD /dev/sda3

Creiamo sull’HDD il volume dati che verrà “agganciato” alla cache-pool creata precedentemente

lvcreate --type cache -l 100%FREE -n data --cachepool datacache SSD --cachemode writeback /dev/sdb1

A questo punto creiamo il file system nella partizione logica appena creata.

mkfs.ext4 -m 0 /dev/SSD/data

Configurazione montaggio automatico al boot

Adesso che abbiamo appena creato i dischi e il file system configuriamo il montaggio automatico al boot del disco dati.

Creiamo la directory di montaggio con

mkdir /mnt/data

E modifichiamo il file /etc/fstab aggiungendo la riga

/dev/mapper/SSD-data /mnt/data ext4 discard,noatime 0 1

Proviamo la nuova configurazione con

mount -a

Conclusioni

Ricapitolando al momento abbiamo installato Debian con il NAS e configurato LVM avendo una partizione per il sistema operativo ed una per i dati.

La partizione dati sarà montata in /mnt/data e configurata per utilizzare in maniera trasparente l’SSD come cache.

Nel prossimo articolo installeremo finalmente l’ambiente LAMP e Nextcloud!