Debian e SSD

Debian-swirl.png Versioni Compatibili

Tutte le versioni supportate di Debian

Prefazione

Lo scopo di queste guida è quello di aiutare a configurare un sistema Debian (da installare o esistente) per un utilizzo adeguato con una SSD. La guida tratterà innanzitutto i passaggi obbligatori (nel senso quelli che sono fondamentali per una corretta durata della nostra SSD) ed infine quelli facoltativi (in quanto ci possono essere delle linee di pensiero molto differenti in una configurazione mista HDD/SSD su cosa debba essere di competenza della SSD e cosa dell'HDD).

Partizionamento e Over Provisioning

Prima di tutto per poter utilizzare la nostra SSD è necessario partizionarla. Il consiglio, anche se state utilizzando un sistema non EFI, è quello di utilizzare un sistema di partizionamento GPT e non MBR in quanto immensamente superiore.

Sistema non-EFI

Quindi se state installando Debian e siete nell'utility di installazione andate su una console virtuale (Ctrl+Alt+f2) e procedete come segue. Se invece non siete nell'utility di installazione di Debian la procedura è identica.

Prima cosa individuiamo quale è il device dell'unità con il comando:

# fdisk -l

per il partizionamento però dobbiamo usare cfdisk in quanto l'altro non supporta GPT. Quindi lanciamo:

# cfdisk /dev/sdX

dove /dev/sdX è il nome del nostro device.

Sistema EFI

Se invece state installando su un sistema EFI l'installer provvederà automaticamente a partizionare il disco con il sistema GPT.

Partizionamento

A questo punto bisogna pensare a come partizionare il nostro dispositivo. Ci sono molte teorie sul partizionamento. (Tutto in una partizione. Partizioni separate. Solo la /home su HDD, /home e /var su HDD. /home /var e /tmp su HDD. /home e /var su HDD e /tmp su RAMDISK e soprattutto dove mettere la Swap. La scelta è molto personale ed è anche dettata dalla dimensione della vostra SSD, dalla quantità di RAM che avete e dai gusti.

Personalmente sono amante della mono-partizione con Swap su SSD (permette una ibernazione e un risveglio quasi istantaneo) e una maggiore versatilità del sistema. /var, /home e /tmp le metto nella SSD in quanto per quanto riguarda /var voglio una lettura veloce dei file in essa presenti. Per quanto riguarda /tmp come /var e non voglio sprecare la RAM per creare un RAMDISK. Se però gradite fare ciò o volete creare un RAMDISK persistente troverete la guida sotto.

Anche la /home la metto su SSD in quanto voglio che la lettura dei file di configurazione, della cache del browser ed altro siano letti il quanto più velocemente possibile. Voi mi direte, ma la SSD ha una durata in letture e scritture rispetto all'HDD. Vero, ma per quante scritture ci faccio sarà obsolete prima che la rompa. Per quanto riguarda invece i file più grandi ovvio montando l'HDD in /mnt e mettendo dei link simbolici nella home che puntano in una directory nell'HDD con i permessi del mio utente.

Mentre si partiziona il disco bisogna tenere a mente una cosa importante: l'over provisioning. Esso consiste nel lasciare dello spazio non partizionato. Questo spazio libero viene usato dal controller della SSD sia come spazio di Swap durante il trim, sia come riserva nel caso dei settori siano danneggiati che per il garbage collection che lavora quando il disco non è in uso. Insomma questo spazio non partizionato serve per allungare la vita del vostro SSD. Kingston consiglia di lasciare almeno un 7% di spazio non allocato in utilizzo client e un 28% per un utilizzo enterprise. Poi sta all'utente scegliere quanto spazio lasciare in base all'utilizzo che intende fare del disco.

File System

Il miglior file system da usare per la SSD è EXT4. Anche Btrfs supporta gli SSD con uno speciale comando di mount, ma io lo sconsiglio perché EXT4 è più stabile, meno soggetto a corruzione, insomma è meglio.

Se volete risparmiare scritture non usate EXT2, se mai montate EXT4 senza il journal, ma comunque il journal tenetevelo. Perché rischiare di corrompere il file system a causa di un calo di tensione oppure un crash (ok che Linux è stabile, ma qualche crash può sempre succedere)? Il journal è cosa buona e giusta!

Mounting

Montate la vostra SSD come segue:

UUID=vostro_uuid /               ext4    noatime,errors=remount-ro 0       1

Comunque l'installer Debian riconoscerà automaticamente la SSD e la metterà con l'opzione noatime. Questa opzione è molto utile per evitare inutili scritture durante la lettura dei file in quanto di solito viene aggiornata la data e ora di ultimo accesso. In questo modo non viene più fatto.

Non montate la vostra SSD con l'opzione discard in quanto genera solo problemi. Il trim lo facciamo fare ad anacron giornalmente.

Trim

Per far eseguire automaticamente il trim al sistema (una volta al giorno va più che bene, poi dipende da quanti file cancellate) basta scrivere nel file /etc/cron.daily/99-fstrim e renderlo eseguibile

#!/bin/sh
 
d="`date "+%Y-%m-%d %H:%M:%S"`"
echo -n "$d " >> /var/log/fstrim.log
fstrim -va >> /var/log/fstrim.log

Questo basterà per far eseguire il trim una volta al giorno e, ogni volta che viene effettuato, il risultato del comando verrà salvato in un file di log in /var/log/fstrim.log con data ed ora di quando è stato eseguito. Assicurarsi che sia installato il pacchetto anacron nel sistema per essere certi che i comandi vengano eseguiti giornalmente.

Ridurre l'uso della swap

Se il vostro sistema è dotato di abbastanza RAM (almeno 2 GiB) potete ridurre l'utilizzo della RAM creando il file /etc/sysctl.d/local.conf contenente le seguenti righe:

# Personal values for SSD
vm.swappiness=1




Guida scritta da: marcomg   Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized