Chapitre 21. Directives de déploiement des disques SSD
Les performances se dégradent au fur et à mesure que le nombre de blocs utilisés se rapproche de la capacité maximale du disque. Le degré l'impact des performances peut beaucoup varier en fonction du fournisseur. Cepedant, tous les périphériques se dégraderont quelque peu.
Pour répondre au problème de dégradation, le système hôte (par exemple, le noyau Linux) peut utiliser des requêtes d'abandon pour informer le stockage qu'une plage de blocs donnée n'est plus en cours d'utilisation. Un disque SSD peut utiliser ce type d'information pour libérer de l'espace interne en utilisant les blocs disponibles pour ré-équilibrer l'usure. Les abandons seront uniquement émis si le stockage publicise la prise en charge de son protocole de stockage (qu'il s'agisse du protocole ATA ou SCSI). Les requêtes d'abandon sont émises au stockage à l'aide de la commande d'abandon négociée spécifique au protocole de stockage (commande
TRIM
pour ATA, et WRITE SAME
si UNMAP
est défini, ou la commande UNMAP
pour SCSI).
L'activation de la prise en charge de
discard
est surtout utile lorsqu'il y a de l'espace libre sur le système de fichiers, mais le système de fichiers a déjà écrit sur la plupart des blocs logiques du périphérique de stockage sous-jacent. Pour obtenir des informations supplémentaires sur TRIM
, veuillez consulter le document Data Set Management T13 Specifications, disponible sur le lien suivant :
Pour obtenir des informations supplémentaires sur
UNMAP
, veuillez consulter la section 4.7.3.4 du document SCSI Block Commands 3 T10 Specification, disponible sur le lien suivant :
Note
Les périphériques SSD sur le marché n'offrent pas tous la prise en charge de
discard
. Pour déterminer si votre disque dur offre la prise en charge de discard
, veuillez vérifier la présence de /sys/block/sda/queue/discard_granularity
.
21.1. Considérations pour le déploiement
À cause de la structure interne et de l'opération des disques SSD, il vaut mieux partitionner les périphériques sur une limite de bloc de suppression interne (« Erase block boundary »). Les utilitaires de partitionnement sous Red Hat Enterprise Linux 6 choisissent des valeurs par défaut saines si le disque SSD exporte ses informations de topologie.
Cependant, si le périphérique n'exporte pas ses informations de topologie, Red Hat recommande que la première partition soit créée sur une limite de 1 Mo.
À partir de Red Hat Enterprise Linux 6.5 MD MD prend en charge les abandons. Avant 6.5, cela n'était pas pris en cahrge. En revanche, les cibles du gestionnaire de volumes logique LVM et du mappeur de périphériques DM utilisées par LVM prennent en charge les abandons. Les seules cibles DM qui ne prennent pas en charge les abandons sont dm-snapshot, dm-crypt, et dm-raid45. La prise en charge des abandons pour dm-mirror a été ajoutée sur Red Hat Enterprise Linux 6.1.
Red Hat recommande l'utilisation des niveaux RAID 1 ou RAID10 pour ls RAID LVM sur les disques SSD car ces niveaux prennent en charge les abandons. Pendant l'étape d'initialisation de ces niveaux RAID, certains utilitaires de gestion RAID (tels que
mdadm
) écrivent sur tous les blocs du périphérique de stockage pour s'assurer que les checksums fonctionnent correctement. Ceci entraine une dégradation rapide des performances du disque SSD.
Note
Il est possible d'utiliser l'option
--nosync
sur RAID1, RAID10, et les RAID de parité, car la parité sera calculée pour cette bande dans la minute de la première écriture, conservant ainsi toute homogénéité. Cependant, lors des opérations de nettoyage des données, les parties non écrites seront considérées comme étant mismatched/inconsistent
(non correspondantes/inconsistantes).
À partir de Red Hat Enterprise Linux 6.4, ext4 et XFS sont les seuls systèmes de fichiers totalement pris en charge qui offrent les commandes
discard
. Dans les versions précédentes de Red Hat Enterprise Linux 6, seul ext4 prenait totalement en charge discard
. Pour activer les commandes discard
sur un périphérique, veuillez utiliser l'option mount
de discard
. Par exemple, pour monter /dev/sda2
sur /mnt
lorsque discard
est activé, veuillez exécuter :
# mount -t ext4 -o discard /dev/sda2 /mnt
Par défaut, ext4 ne délivre pas la commande
discard
. Cela est le cas afin d'éviter tout problème sur des périphériquers qui pourraient ne pas implémenter la commande discard
correctement. Le code swap
Linux délivrera les commandes discard
aux périphériques sur lesquels discard
est activé, il n'existe aucune option pour contrôler ce comportement.