Debian e SSD
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 |