web-dev-qa-db-fra.com

À quoi servent exactement les paramètres Linux 'allow-discards' et 'root_trim'?

De nombreuses instructions en ligne concernant les disques SSD indiquent que vous devez ajouter allow-discards et root_trim = yes à votre GRUB_CMDLINE_LINUX. Je n’en ai pas encore trouvé qui dit pourquoi vous devriez le faire, c’est-à-dire ce que font exactement (si quoi que ce soit!) Ces paramètres. Où se trouve la documentation à ce sujet et que dit-elle du but de ces deux paramètres?

Selon Notes de version de Cryptsetup 1.4. ,

Depuis le noyau 3.1, les périphériques dm-crypt (facultativement, pas par défaut) prennent en charge les commandes de suppression de bloc (TRIM). Si vous souhaitez activer cette opération, vous devez l'activer manuellement à chaque activation à l'aide de --allow-discards

cryptsetup luksOpen --allow-discards /dev/sdb test_disk 

mais est-ce la même chose quand on le passe au noyau (via GRUB_CMDLINE_LINUX)?

Edit: La liste des paramètres du noyau de Kernel.org ne possède pas (actuellement, janvier 2013 au moins) l'un ou l'autre Les options.

10
Jani Uusitalo

A ma connaissance, le paramètre de démarrage root_trim=yes est spécifique à Gentoo. Dans genkernel il y a un script qui cherche le paramètre et définit l'option --allow-discards avec cryptsetup (voir leur référentiel git ). De plus, j'ai trouvé de nombreux rapports d'utilisateurs Ubuntu ou Debian selon lesquels cela fonctionnait sans le paramètre root_trim. J'ai également trouvé aucune ligne dans le script Ubuntus update-initramfs.

Donc dans l’ensemble, c’est pas de paramètre d’amorçage , mais plutôt un paramètre pour cryptsetup. La documentation de --allow-discards se trouve dans la page de manuel de cryptsetup (8) :

- autoriser les rejets
Autoriser l'utilisation de demandes d'élimination (TRIM) pour le périphérique. Cette option concerne uniquement , créez , luksOpen ou loopaesOpen .

WARNING: évaluez soigneusement les risques de sécurité spécifiques avant d'activer cette option. Par exemple, autoriser les rejets sur les périphériques chiffrés peut entraîner la fuite d'informations sur le périphérique en texte chiffré (type de système de fichiers, espace utilisé, etc.) si les blocs supprimés peuvent être facilement localisés ultérieurement sur le périphérique.

La version du noyau 3.1 ou plus récente est requise. Pour les anciennes versions, l'option est ignorée.

Basé sur ceci blog sur TRIM & dm-crypt , TRIM est une opération dans laquelle la couche supérieure (par exemple, le système de fichiers) informe le périphérique des secteurs qui ne sont plus utilisés (ne contiennent plus de données valides) et que le périphérique pas besoin de garder ce contenu de données.

Dans la terminologie Linux, cette opération est appelée rejet. Dans le monde SCSI, il s'agit de la commande UNMAP.

L’opération de rejet peut être utilisée à deux fins: Thin Provisioning (informe que la zone de données peut être renvoyée au pool d’allocation) et l’optimisation de l’opération SSD.

Les éliminations sont particulièrement utiles pour l'optimisation des disques SSD, car l'architecture interne utilise des blocs plus volumineux que les secteurs et que les blocs doivent être effacés avant qu'une opération d'écriture puisse être effectuée. Les informations sur les secteurs qui n'ont pas besoin de conserver des données sont très utiles car le système de fichiers serait capable d'organiser plus efficacement les blocs de manière à minimiser la fragmentation des données et à augmenter la durée de vie du disque.

6
qbi