web-dev-qa-db-fra.com

Quel système de fichiers linux fonctionne le mieux avec SSD

De wiki:

La fonction vitale TRIM est prise en charge par le système d’exploitation Linux à partir du noyau 2.6.33 (disponible au début de 2010). Cependant, la prise en charge entre différents systèmes de fichiers est toujours incohérente ou inexistante. L'alignement correct des partitions n'est également pas effectué par le logiciel d'installation.

Ainsi, quel système de fichiers fonctionne le mieux pour les disques SSD et prend en charge l'alignement des partitions TRIM + pendant l'installation et est disponible sur Ubuntu?

117
hbt

Système de fichiers EXT4 + TRIM:

  • EXT4 avec TRIM améliore les performances en réduisant les cycles d'écriture inutiles sur le lecteur SSD car ils limitent les cycles d'écriture/réécriture.
  • Ubuntu et d'autres versions de Linux prennent en charge EXT 4 avec TRIM immédiatement.

Partition SWAP:

  • Assurez-vous de ne pas avoir d'espace SWAP sur le SSD, encore une fois pour réduire les cycles d'écriture.
  • Si vous avez un lecteur mécanique, vous devez créer un espace SWAP sur le lecteur mécanique et éviter de le placer sur le SSD.

Alignement de partition:

  • La partition doit démarrer sur une limite propre de 1 Mo afin que la taille de bloc du système de fichiers s'aligne sur la taille de bloc du disque SSD.

Utilisez donc EXT4 + TRIM avec un SWAP sur un disque dur mécanique ou sans SWAP sur SSD.

Ce qui précède peut être mis en œuvre en vous référant à la source: Comment optimiser les performances SSD .

88
aliasgar

Réponse courte

  • Choisissez ext4 _ et puis montez-le avec l'option discard pour TRIM support ou utilisez FITRIM (voir ci-dessous). Utilisez également l'option noatime si vous craignez "l'usure des disques SSD".

  • Ne changez pas votre planificateur d'E/S par défaut (CFQ) sur des serveurs multi-applications, car il assure l'équité entre les processus et prend en charge automatiquement les disques SSD. Toutefois, utilisez Deadline sur les ordinateurs de bureau _ pour obtenir une meilleure réactivité sous charge.

  • Pour garantir facilement un alignement correct des données, le secteur de départ de chaque partition doit être un multiple de 2048 (= 1 Mio). Vous pouvez utiliser fdisk -cu /dev/sdX pour les créer. Lors des récentes distributions, cela s’occupera automatiquement de vous.

  • Réfléchissez-y à deux fois avant d'utiliser le swap sur SSD. Il sera probablement beaucoup plus rapide que le swap sur disque dur, mais le disque s'use plus rapidement (ce qui peut ne pas être pertinent, voir ci-dessous).

Longue réponse

  • Systèmes de fichiers:

Ext4 est le système de fichiers Linux le plus répandu (bien entretenu). Il offre de bonnes performances avec les disques SSD et prend en charge la fonction TRIM (et FITRIM) pour conserver de bonnes performances SSD au fil du temps (cela efface les blocs de mémoire inutilisés pour un accès en écriture rapide et ultérieur). NILFS est spécialement conçu pour les lecteurs de mémoire flash, mais pasvraiment fonctionne mieux que ext4 sur les tests. Btrfs est toujours considéré comme expérimental (et ne fonctionne pas vraiment mieux ni ).

  • SSD performance & TRIM:

La fonction TRIM efface les blocs SSD qui ne sont plus utilisés par le système de fichiers. Cela optimisera les performances en écriture à long terme et est recommandé sur les disques SSD en raison de leur conception. Cela signifie que le système de fichiers doit pouvoir indiquer au lecteur ces blocs. L'option de montage discard de ext4 émettra de telles commandes TRIM lorsque les blocs du système de fichiers seront libérés. Ceci est mise au rebut en ligne.

Cependant, ce comportement implique une légère surcharge de performances. Depuis Linux 2.6.37, vous pouvez éviter d'utiliser discard et choisir de faire de manière occasionnelle suppression par lot avec FITRIM (par exemple, à partir de la crontab). L'utilitaire fstrim effectue cette opération (en ligne), ainsi que l'option -E discard de fsck.ext4. Vous aurez cependant besoin de la version "récente" de ces outils.

  • Usure SSD:

Vous voudrez peut-être limiter les écritures sur votre lecteur, car les disques SSD ont une durée de vie limitée à cet égard. Ne vous inquiétez pas trop cependant, le pire disque dur SSD de 128 Go que nous puissions prendre en charge au moins 20 Go de données écrites par jour pendant plus de 5 ans (1 000 cycles d'écriture par cellule). Les meilleurs (et aussi les plus grands) peuvent durer beaucoup plus longtemps: vous les aurez probablement remplacés d'ici là.

Si vous voulez utiliser swap sur SSD, le noyau remarquera un disque non rotatif et utilisation aléatoire du swap (nivellement de l'usure au niveau du noyau): vous verrez alors un SS (Solid État) dans le message du noyau lorsque l’échange est activé:

Ajout de 2097148k swap sur/dev/sda1. Priorité: -1 étendue: 1 sur: 2097148k SS

  • Planificateurs d'E/S:

De plus, je suis d’accord avec la plupart des réponses de {aliasgar (même si la plupart d’entre elles ont été copiées de manière non conforme? - copiées à partir de de ce site Web ), mais je ne suis pas tout à fait d’accord sur le ordonnanceur partie. Par défaut, le planificateur d’échéance is est optimisé pour les disques rotationnels lorsqu’il implémente l’algorithme elevator . Alors, clarifions cette partie.

Réponse longue sur les planificateurs

À partir du noyau 2.6.29, les disques SSD sont automatiquement détectés et vous pouvez le vérifier avec:

cat /sys/block/sda/queue/rotational

Vous devriez obtenir 1 pour les disques durs et 0 pour un SSD.

Désormais, le planificateur CFQ peut adapter son comportement en fonction de ces informations. Depuis linux 3.1, la documentation du noyau cfq-iosched.txt fichier dit :

CFQ dispose d’optimisations pour les disques SSD et s’il détecte un support non rotatif pouvant prendre en charge une plus grande profondeur de file d’attente (plusieurs demandes en vol à la fois), [...].

De plus, le planificateur d'échéance tente de limiter les mouvements de tête non ordonnés sur les disques de rotation, en fonction du numéro de secteur. Citation de la documentation sur le noyau deadline-iosched.txt, fifo_batchdescription de l’option :

Les demandes sont regroupées dans des "lots" d'une direction de données particulière (lecture ou écriture), qui sont traités dans un ordre de secteur croissant.

Toutefois, il peut être intéressant de régler ce paramètre sur 1 lors de l’utilisation d’un disque SSD:

Ce paramètre ajuste la balance entre la latence par requête et le débit global. Lorsque la latence est la principale préoccupation, le plus petit est le mieux (où une valeur de 1 correspond au comportement du premier arrivé, premier servi). Augmenter fifo_batch améliore généralement le débit, au détriment de la variation de latence.

Certains repèressuggèrentque il y a peu de différence de performances entre les différents planificateurs. Alors, pourquoi ne pas recommander équité? quand CFQ est rarement mauvais sur le banc. Cependant, sur les configurations de bureau, vous rencontrerez généralement meilleure réactivité avec Deadline une charge, en raison de sa conception (probablement à un coût de débit plus faible).

Cela dit, un meilleur point de repère essaierait d’utiliser Deadline avec fifo_batch=1.

Pour utiliser Deadline sur les SSD par défaut, vous pouvez créer un fichier, par exemple, /etc/udev.d/99-ssd.rules, comme suit:

# all non-rotational block devices use 'deadline' scheduler
# mostly useful for SSDs on desktops systems
SUBSYSTEM=="block", ATTR{queue/rotational}=="0", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="deadline"
67
Totor

L’article archlinux Disques SSD dit dans la section Choix du système de fichiers :

De nombreuses options existent pour les systèmes de fichiers, notamment Ext2/3/4, Btrfs, etc.

Btrfs
Le support de Btrfs a été inclus dans la version principale 2.6.29 du noyau Linux. Certains pensent qu'il n'est pas assez mature pour une utilisation en production alors qu'il existe également des adopteurs précoces de ce successeur potentiel à ext4. Les utilisateurs sont invités à lire l’article Btrfs pour plus d’informations.

Ext4
Ext4 est un autre système de fichiers prenant en charge SSD. Il est considéré comme stable depuis le 2.6.28 et est suffisamment mature pour un usage quotidien. Contrairement à Btrfs, ext4 ne détecte pas automatiquement la nature du disque; les utilisateurs doivent explicitement activer la prise en charge de la commande TRIM à l’aide de l’option discard mount dans fstab (ou avec tune2fs -o discard/dev/sdaX).

Btrfs et Ext4 répondent tous deux aux deux exigences principales pour une utilisation efficace du SSD:

  • Le système de fichiers doit pouvoir émettre des commandes ATA_TRIM sur le SSD sous-jacent
  • Le système de fichiers ne doit pas effectuer d’écritures inutiles sur le disque

Pour la performance, il existe deux autres exigences:

  • Les partitions doivent être alignées sur la taille de bloc du disque SSD.
  • TRIM doit être explicitement activé pour chaque partition formatée Ext4

Le premier est aujourd'hui automatique avec la plupart des installateurs Linux. fdisk créera également des partitions à la frontière de 1024 Ko si les indicateurs "-cu" sont lancés.

La seconde est automatique pour Btrfs, mais pour Ext4 cela se fait manuellement en ajoutant "discard" à la liste des options de montage pour chaque partition Ext4 dans le fichier "/ etc/fstab". Pour plus de détails voir ce howto .

À mon avis, cela nécessite peu de manipuler fstab car Ext4 n’est pas une raison pour ne pas utiliser ce système de fichiers mature et excellent.

13
harrymc