7.4. Clustering
Le stockage en cluster (ou en grappe) fournit une image de fichier consistante à travers tous les serveurs dans un cluster, permettant aux serveurs de lire e écrire sur un seul système de fichiers partagé. Ceci simplifie l'administration du stockage en limitant les tâches comme l'installation et la correction des applications à un seul système de fichiers. Un système de fichiers couvrant la totalité du cluster élimine aussi le besoin de copies redondantes des données d'application, simplifiant ainsi la sauvegarde et la récupération après sinistre.
Le module complémentaire Red Hat High Availability offre un stockage en cluster en conjonction avec Red Hat Global File System 2 (faisant partie du module complémentaire Resilient Storage)
7.4.1. Global File System 2
GFS2 (Global File System 2) est un système de fichiers natif qui interagit directement avec le système de fichiers du noyau Linux. Il permet à de multiples ordinateurs (ou nœuds) de simultanément partager le même périphérique de stockage dans un cluster. Le système de fichiers GFS2 effectue ses réglages automatiquement, mais un ajustement manuel est possible. Cette section décrit les considérations de performance à prendre en compte lors d'une tentative manuelle de réglage des performances.
Red Hat Enterprise Linux 4 présente des améliorations quant à la gestion de la fragmentation des fichiers dans GFS2. Les fichiers crées par Red Hat Enterprise Linux 6.3 ou ses versions précédentes étaient plus prônes à la fragmentation de fichiers si de multiples fichiers étaient écrits au même moment par plus d'un processus. Cette fragmentation ralentissait les opérations, particulièrement sur les charges de travail impliquant des fichiers de grande taille. Avec Red Hat Enterprise Linux 6.4, les écritures simultanées se traduisent par moins de fragmentations de fichiers et donc par de meilleures performances pour ces charges de travail.
Même s'il n'y a pas d'outil de défragmentation pour GFS2 sur Red Hat Enterprise Linux, vous pouvez défragmenter des fichiers individuels en les identifiant à l'aide de l'outil filefrag, puis en les copiant vers les fichiers temporaires et en renommant les fichiers temporaires pour remplacer les originaux. (Cette procédure peut aussi être effectuée dans les versions précédant 6.4 tant que l'écriture est réalisée de manière séquentielle.)
Puisque GFS2 utilise un mécanisme de verrouillage global qui nécessite potentiellement des communications entre les nœuds d'un cluster, les meilleures performances seront réalisées lorsque le système est conçu pour éviter les conflits de fichiers et répertoires entre ces nœuds. Certaines méthodes pour éviter des conflits peuvent être utilisées :
- Pré-allouez des fichiers et répertoires avec
fallocate
quand possible afin d'optimiser le processus d'allocation et d'éviter de devoir verrouiller les pages sources. - Minimisez les zones du système de fichiers qui sont partagées entre de multiples nœuds pour minimiser les invalidations de cache à travers plusieurs nœuds et améliorer les performances. Par exemple, si de multiples nœuds montent le même système de fichiers, mais accèdent à différents sous-répertoires, vous obtiendrez probablement de meilleures performances en déplaçant un sous-répertoire sur un autre système de fichiers.
- Sélectionnez une taille et un nombre de groupes de ressource optimaux. Ceci dépend des tailles de fichiers typiques et de l'espace libre disponible sur le système et affecte la probabilité que de multiples nœuds tenteront d'utiliser un groupe de ressources simultanément. Trop de groupes de ressources peut ralentir l'allocation des blocs pendant que l'espace alloué est localisé, tandis que trop peu de groupes de ressources peut provoquer un conflit de verrouillage pendant la dé-allocation. Il est généralement recommandé de tester de multiples configurations afin de déterminer laquelle conviendra le mieux à charge de travail.
Cependant, les contentions ne sont pas les seuls problèmes pouvant affecter les performances du système de fichiers GFS2. D'autres meilleures pratiques pour améliorer les performances générales existent aussi :
- Sélectionnez votre matériel de stockage en fonction des schémas d'E/S auxquels vous vous attendez de la part des nœuds des clusters et en fonction des conditions préalables de performance de votre système de fichiers.
- Utilisez le stockage SSD quand possible afin de diminuer le temps de recherche.
- Créez un système de fichiers de taille appropriée pour votre charge de travail, assurez-vous aussi que le système de fichiers ne soit jamais à plus de 80% de sa capacité. Les systèmes de fichiers plus petits mettront un temps proportionnellement plus court pour effectuer des copies de sauvegarde et nécessiteront moins de temps et de mémoire pour les vérifications du système de fichiers, mais ils seront sujets à une fragmentation plus importante s'ils sont trop petits pour leur charge de travail.
- Définissez des tailles de journaux plus importantes pour les charges de travail de métadonnées intensives ou lorsque des données journalisées sont en cours d'utilisation. Même si cela utilise plus de mémoire, les performances en sont améliorées car davantage d'espace de journalisation est disponible pour stocker des données avant qu'une écriture ne soit nécessaire.
- Assurez-vous que les horloges des nœuds GFS2 sont synchronisées pour éviter les problèmes avec des applications mises en réseau. Nous recommandons d'utiliser NTP (« Network Time Protocol »).
- À moins que les heures d'accès aux fichiers ou répertoires ne soient critiques à l'opération de votre application, montez le système de fichiers avec les options de montage
noatime
etnodiratime
.Note
Red Hat recommande fortement d'utiliser l'optionnoatime
avec GFS2. - Si vous devez utiliser des quotas, essayez de réduire la fréquence des transactions de synchronisation des quotas ou utilisez la synchronisation de quotas approximative afin de prévenir l'apparition de problèmes de performance résultant des mises à jour constantes de fichiers de quotas.
Note
La comptabilité des quotas approximatifs peut permettre aux utilisateurs et aux groupes de légèrement excéder leurs limites de quotas. Pour minimiser le problème, GFS2 réduit dynamiquement les périodes de synchronisation lorsqu'un utilisateur ou un groupe approche de son quota limite.
Pour obtenir des informations détaillées sur chaque aspect des réglages de performances GFS2, veuillez consulter le guide Global File System 2, disponible sur http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.