Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

Chapitre 7. Systèmes de fichiers

Veuillez lire ce chapitre pour avoir un aperçu des systèmes de fichiers pris en charge pour une utilisation avec Red Hat Enterprise Linux et pour optimiser leur performance.

7.1. Considérations pour optimiser des systèmes de fichiers

Plusieurs considérations, communes à tous les systèmes de fichiers, sont à prendre en compte pour une meilleure optimisation : les options de formatage et de montage sélectionnées sur votre système et les actions disponibles aux applications qui peuvent améliorer leur performance sur un système donné.

7.1.1. Options de formatage

Taille des blocs des systèmes de fichiers

La taille de bloc peut être sélectionnée au moment de mkfs. La gamme de tailles valides dépend du système : la limite supérieure est la taille de page maximum du système hôte, tandis que la taille inférieure dépend du système de fichiers. La taille de bloc par défaut est appropriée dans la plupart des cas.

Si vous pensez devoir créer de nombreux fichiers plus petits que la taille de bloc par défaut, vous pouvez définir une taille de bloc plus petite afin de minimiser la quantité d'espace gaspillé par le disque. Remarquez cependant que paramétrer une taille de bloc plus petite peut limiter la taille maximum du système de fichiers et causer une surcharge de runtime supplémentaire, particulièrement pour les fichiers plus importants que la taille de bloc sélectionnée.
Géométrie des systèmes de fichiers

Si votre système utilise un stockage par bandes tel que RAID5, vous pouvez améliorer la performance en alignant les données et les métadonnées sur la géométrie sous-jacente du stockage lors de mkfs. Pour RAID logiciel (LVM ou MD) et le stockage de matériel d'entreprise, cette information est recherchée et définie automatiquement, mais dans de nombreux cas l'administrateur doit spécifier cette géométrie manuellement avec mkfs sur la ligne de commande.

Reportez-vous au Guide d'administration du stockage pour obtenir des informations supplémentaires sur la création et la maintenance de ces systèmes de fichiers.
Journaux externes

Les charges de travail intensives de métadonnées signifient que la section « log » (journal) d'un système de fichiers de journalisation (tel que ext4 et XFS) est extrêmement fréquemment mise à jour. Pour minimiser le temps de recherche du système de fichiers au journal, vous pouvez placer le journal sur le stockage dédié. Remarquez cependant que placer le journal sur un stockage externe plus lent que le système de fichiers principal peut annuler tout avantage potentiellement associé à l'utilisation d'un stockage externe.

Avertissement

Assurez-vous que le journal externe soit fiable. La perte d'un périphérique journal externe provoquera la corruption du système de fichiers.
Les journaux externes sont créés lors de mkfs et les périphériques journaux sont spécifiés lors du montage. Reportez-vous aux pages man mke2fs(8), mkfs.xfs(8) et mount(8) pour obtenir davantage d'informations.

7.1.2. Options de montage

Barrières

Une barrière d'écriture est un mécanisme du noyau utilisé pour s'assurer que les métadonnées du système de fichiers soient écrites et ordonnées correctement sur un stockage persistant, même lorsque les périphériques de stockage avec des caches d'écriture volatiles subissent une perte de puissance. Les systèmes de fichiers avec des barrières d'écriture activées assurent aussi que toutes données transmises via fsync() persistent lors de pannes de courant. Red Hat Enterprise Linux active les barrières par défaut sur tout le matériel qui les prend en charge.

Cependant, l'activation des barrières d'écritures ralentit certaines applications de manière significative ; particulièrement les applications utilisant fortement fsync(), ou qui créent et suppriment de nombreux fichiers de petite taille. Pour les stockages sans cache d'écriture volatile, ou dans le rare cas où les inconsistances et pertes de données d'un système de fichiers après une panne de courant sont acceptables, les barrières peuvent être désactivées en utilisant l'option de montage nobarrier. Pour obtenir davantage d'informations, veuillez vous reporter au Guide d'administration du stockage.
Temps d'accès (noatime)

Historiquement, lorsqu'un fichier est lu, le temps d'accès (atime) de ce fichier doit être mis à jour dans les métadonnées de l'inode, ce qui implique des écritures d'E/S supplémentaires. Si des métadonnées atime précises ne sont pas requises, montez le système de fichiers avec l'option noatime afin d'éliminer ces mises à jour de métadonnées. Cependant, dans la plupart des cas, atime n'est pas une grosse surcharge résultant du comportement « atime » relatif par défaut (ou relatime) dans le noyau Red Hat Enterprise Linux 6. Le comportement relatime met uniquement à jour atime si le atime précédent est plus ancuen que le temps de modification (mtime) ou le temps de modification de statut (ctime).

Note

L'activation de l'option noatime active aussi le comportement nodiratime ; il n'est pas nécessaire de paramétrer noatime ainsi que nodiratime en même temps.
Prise en charge de la lecture à l'avance améliorée

La lecture à l'avance accélère l'accès aux fichiers en récupérant les données à l'avance et en les chargeant dans le cache de la page de manière à ce qu'elles soient disponibles plus tôt dans la mémoire au lieu de depuis le disque. Certaines charges de travail, comme celles impliquant une diffusion importante d'entrées et sorties séquentielles, bénéficient de hautes valeurs de lecture à l'avance.

L'outil tuned et l'utilisation de l'agrégation par bandes de LVM (« LVM striping ») augmentent la valeur de lecture à l'avance, mais ceci n'est pas toujours suffisant pour certaines charges de travail. En outre, Red Hat Enterprise Linux n'est pas toujours en mesure de définir une valeur de lecture à l'avance appropriée en se basant sur ce qui a été détecté de votre système de fichiers. Par exemple, si une matrice de stockage puissante se présente à Red Hat Enterprise Linux en tant que LUN unique puissant, le système d'exploitation ne la traitera pas en tant que matrice LUN puissante, et par défaut, ne fera pas plein usage des avantages de la lecture à l'avance potentiellement disponibles au stockage.
Utilisez la commande blockdev pour afficher et modifier la valeur de lecture à l'avance. Pour afficher la valeur de la lecture à l'avance actuelle pour un périphérique bloc particulier, vuillez exécuter :
# blockdev -getra périphérique
Pour modifier la valeur de lecture à l'avance pour ce périphérique bloc, veuillez exécuter la commande suivante. N représente le nombre de secteurs de 512 octets.
# blockdev -setra N périphérique
Remarquez que la valeur sélectionnée avec la commande blockdev ne persistera pas lors de redémarrages. Nous recommandons de créer un script init.d de niveau d'exécution pour définir cette valeur pendant le démarrage.

7.1.3. Maintenance de systèmes de fichiers

Abandonner les blocs inutilisés

Les opérations d'abandon en ligne et d'abandon du lot sont des fonctionnalités des systèmes de fichiers montés qui abandonnent les blocs qui ne sont pas utilisés par le système de fichiers. Les opérations sont utiles pour les disques SSD et les allocations fines et dynamiques de stockage.

Les Opérations d'abandon par lot sont exécutées de manière explicite par l'utilisateur avec la commande fstrim. Cette commande abandonne tous les blocs inutilisés dans un système de fichiers qui correspondent aux critères de l'utilisateur. Les deux types d'opérations sont pris en charge avec les systèmes de fichiers XFS et ext4 dans Red Hat Enterprise Linux 6.2 et ses versions supérieures tant que le périphérique bloc sous-jacent au système de fichiers prend en charge les opérations d'abandon physique. Les opérations d'abandon physique sont prises en charge si la valeur de /sys/block/périphérique/queue/discard_max_bytes n'est pas zéro.
Les Opérations d'abandon en ligne sont spécifiées lors du montage avec l'option -o discard (soit dans /etc/fstab ou en faisant partie de la commande mount) et exécutées en temps réeal sans intervention de la part de l'utilisateur. Les opérations d'abandon en ligne abandonnent uniquement les blocs passant de « Utilisé » à « Libre ». Les opérations d'abandon en ligne sont prises en charge sur les systèmes de fichiers ext4 dans Red Hat Enterprise Linux 6.2 et ses versions supérieures, ainsi que sur les systèmes de fichiers XFS dans Red Hat Enterprise Linux 6.4 et ses versions supérieures.
Red Hat recommande les opérations d'abandon par lot, à moins que la charge de travail du système ne soit telle que l'abandon par lot ne soit pas faisable, ou que des opérations d'abandon en ligne soient nécessaires pour effectuer la maintenance.

7.1.4. Considérations pour l'application

Pré-allocation

Les systèmes de fichiers ext4, XFS et GFS2 prennent en charge la pré-allocation d'espace efficace via l'appel glibc fallocate(2). Dans les cas où les fichiers pouvaient être mal fragmentés à cause des schémas d'écriture, conduisant ainsi à de pauvres performances de lecture, la pré-allocation d'espace peut être une technique utile. La pré-allocation marque l'espace disque comme s'il a été alloué à un fichier, sans écrire de données dans cet espace. Jusqu'à ce que de véritables données soient écrites sur un bloc pré-alloué, les opérations de lecture retourneront des zéros.