GFS2 – Wikipedia – Serveur d’impression
Développeur (s) | chapeau rouge |
---|---|
Nom complet | Système de fichiers global 2 |
Introduit | 2005 avec Linux 2.6.19 |
Des structures | |
Contenu du répertoire | Haché (petits répertoires bourrés dans inode) |
Allocation de fichier | bitmap (groupes de ressources) |
Mauvais blocs | Non |
Limites | |
Max. nombre de fichiers | Variable |
Max. longueur du nom de fichier | 255 octets |
Caractères autorisés dans les noms de fichiers | Tous sauf NUL |
Caractéristiques | |
Dates enregistrées | modification d'attribut (ctime), modification (mtime), accès (atime) |
Résolution de date | Nanoseconde |
Les attributs | No-atime, données journalisées (fichiers normaux uniquement), hériter des données journalisées (répertoires uniquement), écriture synchrone, ajout uniquement, immuable, exhash (répertoires uniquement, lecture seule) |
Permissions du système de fichiers | Autorisations Unix, ACL et attributs de sécurité arbitraires |
Compression transparente | Non |
Cryptage transparent | Non |
Déduplication des données | à travers les nœuds seulement |
Autre | |
Systèmes d'exploitation supportés | Linux |
Développeur (s) | Red Hat (anciennement Sistina Software) |
---|---|
Nom complet | Système de fichiers global |
Introduit | 1996 avec IRIX (1996), Linux (1997) |
Des structures | |
Contenu du répertoire | Haché (petits répertoires bourrés dans inode) |
Allocation de fichier | bitmap (groupes de ressources) |
Mauvais blocs | Non |
Limites | |
Max. nombre de fichiers | Variable |
Max. longueur du nom de fichier | 255 octets |
Caractères autorisés dans les noms de fichiers | Tous sauf NUL |
Caractéristiques | |
Dates enregistrées | modification d'attribut (ctime), modification (mtime), accès (atime) |
Résolution de date | 1s |
Les attributs | No-atime, données journalisées (fichiers normaux uniquement), hériter des données journalisées (répertoires uniquement), écriture synchrone, ajout uniquement, immuable, exhash (répertoires uniquement, lecture seule) |
Permissions du système de fichiers | Autorisations Unix, ACL |
Compression transparente | Non |
Cryptage transparent | Non |
Déduplication des données | à travers les nœuds seulement |
Autre | |
Systèmes d'exploitation supportés | IRIX (maintenant obsolète), FreeBSD (maintenant obsolète), Linux |
En informatique, le Système de fichiers global 2 ou GFS2 est un système de fichiers à disque partagé pour les clusters d’ordinateurs Linux. GFS2 diffère des systèmes de fichiers distribués (tels que AFS, Coda, InterMezzo ou GlusterFS) car GFS2 permet à tous les nœuds d'avoir un accès simultané direct au même stockage de bloc partagé. De plus, GFS ou GFS2 peuvent également être utilisés en tant que système de fichiers local.
GFS n'a pas de mode de fonctionnement déconnecté et pas de rôle de client ou de serveur. Tous les nœuds d'un cluster GFS fonctionnent en tant qu'homologues. L'utilisation de GFS dans un cluster nécessite du matériel pour permettre l'accès au stockage partagé et un gestionnaire de verrouillage pour contrôler l'accès au stockage.
Le gestionnaire de verrous fonctionne comme un module distinct: ainsi GFS et GFS2 peuvent utiliser le gestionnaire de verrous distribué (DLM) pour les configurations de cluster et le gestionnaire de verrous "nolock" pour les systèmes de fichiers locaux. Les anciennes versions de GFS prennent également en charge GULM, un gestionnaire de verrous basé sur serveur qui implémente la redondance via le basculement.
GFS et GFS2 sont des logiciels libres, distribués sous les termes de la licence publique générale GNU.[1][2]
Sommaire
Histoire[[[[modifier]
Le développement de GFS a commencé en 1995 et a été développé à l'origine par Matthew O'Keefe, professeur à l'Université du Minnesota, et un groupe d'étudiants.[3] Initialement écrit pour le système d’exploitation IRIX de SGI, il a été porté sous Linux en 1998, car le code source ouvert constituait une plate-forme de développement plus pratique. À la fin de 1999 / au début de 2000, il s’est rendu chez Sistina Software, où il a vécu pendant un certain temps en tant que projet à source ouverte. En 2001, Sistina a choisi de faire de GFS un produit exclusif.
Les développeurs ont créé OpenGFS à partir de la dernière version publique de GFS, puis l’ont amélioré pour y inclure les mises à jour lui permettant de fonctionner avec OpenDLM. Mais OpenGFS et OpenDLM sont devenus obsolètes depuis que Red Hat a acheté Sistina en décembre 2003 et publié GFS ainsi que de nombreux composants d’infrastructures de clusters sous GPL à la fin du mois de juin 2004.
Red Hat a par la suite financé de nouveaux développements axés sur la correction et la stabilisation des bogues. Un développement ultérieur, GFS2[4][5] dérive de GFS et a été inclus avec son gestionnaire de verrou distribué (partagé avec GFS) dans Linux 2.6.19. Red Hat Enterprise Linux 5.2 a inclus GFS2 en tant que module de noyau à des fins d'évaluation. Avec la mise à jour 5.3, GFS2 est devenu une partie du package du noyau.
À partir de 2009[update], GFS fait partie des distributions CentOS Linux de Fedora, Red Hat Enterprise Linux 5.3 et versions ultérieures. Les utilisateurs peuvent acheter un support commercial pour exécuter GFS entièrement pris en charge sur Red Hat Enterprise Linux. Depuis la version 5.3 de Red Hat Enterprise Linux, la plate-forme avancée Red Hat Enterprise Linux inclut la prise en charge de GFS sans frais supplémentaires.
La liste suivante récapitule les numéros de version et les principales fonctionnalités introduites:
Matériel[[[[modifier]
La conception de GFS et de GFS2 cible des environnements de type SAN. Bien qu'il soit possible de les utiliser en tant que système de fichiers à un seul noeud, l'ensemble des fonctionnalités complètes nécessite un réseau de stockage. Cela peut prendre la forme d'un iSCSI, d'un FibreChannel, d'une AoE ou de tout autre périphérique pouvant être présenté sous Linux comme un périphérique bloc partagé par plusieurs noeuds, par exemple un périphérique DRBD.
Le DLM nécessite un réseau IP sur lequel communiquer. Il s’agit normalement d’Ethernet, mais là encore, il existe de nombreuses autres solutions possibles. En fonction du choix du SAN, il peut être possible de le combiner, mais la pratique normale[[[[citation requise] implique des réseaux distincts pour le DLM et le stockage.
Le système de fichiers GFS nécessite du matériel de clôture. Ceci est une exigence du cluster
infrastructure, plutôt que GFS / GFS2 lui-même, mais il est requis pour tous les clusters multi-nœuds. Les options habituelles incluent les commutateurs d'alimentation et les contrôleurs d'accès à distance (par exemple, DRAC, IPMI ou ILO). La clôture est utilisée pour garantir qu'un nœud dont le cluster est en panne ne peut pas fonctionner soudainement pendant qu'un autre nœud récupère le journal du nœud défaillant. Il peut également éventuellement redémarrer le nœud défaillant automatiquement une fois la récupération terminée.
Différences par rapport à un système de fichiers local[[[[modifier]
Bien que les concepteurs de GFS / GFS2 aient voulu émuler un système de fichiers local de près, il existe un certain nombre de différences à prendre en compte. Certaines d'entre elles sont dues aux interfaces de système de fichiers existantes ne permettant pas la transmission d'informations relatives au cluster. Certains découlent de la difficulté d'implémenter efficacement ces fonctionnalités de manière groupée. Par exemple:
- L'appel système flock () sur GFS / GFS2 n'est pas interruptible par des signaux.
- L'appel système fcntl () F_GETLK renvoie le PID de tout verrou bloquant. S'agissant d'un système de fichiers en cluster, ce PID peut faire référence à un processus sur l'un des noeuds sur lesquels le système de fichiers est monté. Dans la mesure où cette interface a pour objectif de permettre l’envoi d’un signal au processus de blocage, cela n’est plus possible.
- Les baux ne sont pas pris en charge avec le module de verrouillage lock_dlm (cluster), mais ils sont pris en charge lorsqu'ils sont utilisés en tant que système de fichiers local.
- dnotify fonctionnera sur la base du "même nœud", mais son utilisation avec GFS / GFS2 n'est pas recommandée.
- inotify fonctionnera également sur la base du "même nœud" et n'est donc pas recommandé (mais il pourra éventuellement être pris en charge ultérieurement)
- l'épissure est prise en charge sur GFS2 uniquement
L'autre différence principale, partagée par tous les systèmes de fichiers de cluster similaires, est que le mécanisme de contrôle du cache, appelé glocks (prononcé gee-locks) pour GFS / GFS2, a un effet sur l'ensemble du cluster. Chaque inode du système de fichiers est associé à deux glocks. L'un d'eux (appelé le «iopen glock») garde une trace des processus pour lesquels l'inode est ouvert. L'autre (l'inode glock) contrôle le cache relatif à cet inode. Un glock a quatre états, UN (déverrouillé), SH (partagé – un verrou de lecture), DF (différé – un verrou de lecture incompatible avec SH) et EX (exclusif). Chacun des quatre modes correspond directement à un mode de verrouillage DLM.
En mode EX, un inode est autorisé à mettre en cache des données et des métadonnées (qui peuvent être "sales", c'est-à-dire en attente d'écriture dans le système de fichiers). En mode SH, l'inode peut mettre en cache des données et des métadonnées, mais ne doit pas être sale. En mode DF, l'inode est autorisé à mettre en cache uniquement les métadonnées et, encore une fois, il ne doit pas être modifié. Le mode DF est utilisé uniquement pour les E / S directes. En mode UN, l'inode ne doit mettre en cache aucune métadonnée.
Pour que les opérations qui modifient les données ou les métadonnées d'un inode n'interfèrent pas, un verrou EX est utilisé. Cela signifie que certaines opérations, telles que créer / dissocier des fichiers à partir du même répertoire et écrit au même Le fichier doit généralement être limité à un seul nœud du cluster. Bien entendu, ces opérations à partir de plusieurs nœuds fonctionneront comme prévu, mais en raison de la nécessité de vider fréquemment les caches, cela ne sera pas très efficace.
La question la plus fréquemment posée sur les performances de GFS / GFS2 est la suivante: pourquoi les performances peuvent-elles être médiocres avec les serveurs de messagerie? La solution consiste à fractionner le courrier en plusieurs répertoires et à essayer de conserver (autant que possible) chaque nœud en lecture et en écriture dans un ensemble privé de répertoires.
Journalisation[[[[modifier]
GFS et GFS2 sont tous deux des systèmes de fichiers journalisés. et GFS2 prend en charge un ensemble similaire de modes de journalisation que ext3. Dans data = writeback mode, seules les métadonnées sont journalisées. C'est le seul mode pris en charge par GFS, mais il est possible d'activer la journalisation sur des fichiers de données individuels, mais uniquement lorsqu'ils sont de taille zéro. Les fichiers journalisés dans GFS sont soumis à un certain nombre de restrictions, telles que
ne prend pas en charge les appels système mmap ou sendfile, ils utilisent également un format sur disque différent des fichiers normaux. Il existe également un attribut "inherit-journal" qui, lorsqu'il est défini sur un répertoire, active le drapeau (ou hérite-journal, respectivement) dans tous les fichiers (et sous-répertoires) créés dans ce répertoire. Ceci peut être utilisé à la place du données = journal option de montage prise en charge par ext3 (contrairement à GFS / GFS2).
GFS2 prend également en charge données = commandé mode qui est similaire à data = writeback sauf que les données modifiées sont synchronisées avant chaque vidage du journal. Cela garantit que les contenus des blocs ajoutés à un inode verront leur contenu resynchronisé sur le disque avant la mise à jour des métadonnées afin d'enregistrer la nouvelle taille, empêchant ainsi les blocs non initialisés d'apparaître dans un fichier dans des conditions d'échec de nœud. Le mode de journalisation par défaut est données = commandé, pour correspondre à la valeur par défaut de ext3.
À partir de 2010[update], GFS2 ne supporte pas encore données = journal mode (mais contrairement à GFS) utilise le même format sur disque pour les fichiers normaux et journalisés, et prend également en charge les mêmes attributs journalisés et hérités. GFS2 assouplit également les restrictions relatives à l'attribut de journalisation d'un fichier lorsque celui-ci n'est pas ouvert (également que ext3).
Pour des raisons de performances, chaque nœud de GFS et GFS2 possède son propre journal. Dans GFS, les journaux sont des extensions de disque, dans GFS2, les journaux ne sont que des fichiers normaux. Le nombre de nœuds pouvant monter le système de fichiers à tout moment est limité par le nombre de journaux disponibles.
Fonctionnalités de GFS2 par rapport à GFS[[[[modifier]
GFS2 ajoute un certain nombre de nouvelles fonctionnalités qui ne sont pas dans GFS. Voici un résumé des caractéristiques non mentionnées dans les cases à droite de cette page:
- Le système de fichiers de métadonnées (vraiment une racine différente) – voir Compatibilité et méta-système GFS2 ci-dessous
- Des points de trace spécifiques à GFS2 sont disponibles depuis le noyau 2.6.32.
- L’interface de quota de style XFS est disponible dans GFS2 depuis le noyau 2.6.33.
- Les ACL de mise en cache sont disponibles dans GFS2 depuis la version 2.6.33.
- GFS2 prend en charge la génération de demandes "rejetées" pour les demandes TRIM / SCSI TRIM
- GFS2 prend en charge les barrières d’entrée / sortie (activé par défaut, en supposant que le périphérique sous-jacent le supporte. Configurable à partir du noyau 2.6.33 et plus)
- FIEMAP ioctl (pour interroger les mappages d'inodes sur le disque)
- Prise en charge de Splice (appel système)
- Prise en charge de mmap / splice pour les fichiers journalisés (activée en utilisant le même format de disque que celui des fichiers normaux)
- Beaucoup moins de réglages (rendant l'installation moins compliquée)
- Mode d'écriture commandée (selon ext3, GFS ne dispose que du mode écriture)
Compatibilité et méta système de fichiers GFS2[[[[modifier]
GFS2 a été conçu pour que la mise à niveau à partir de GFS soit une procédure simple. À cette fin, la majeure partie de la structure sur disque est restée identique à celle de GFS, y compris le classement des octets big-endian. Il y a quelques différences cependant:
- GFS2 possède un "méta-système de fichiers" via lequel les processus accèdent aux fichiers système
- GFS2 utilise le même format sur disque pour les fichiers journalisés que pour les fichiers normaux
- GFS2 utilise des fichiers standard (système) pour les journaux, tandis que GFS utilise des étendues spéciales
- GFS2 en a d'autres "per_node"fichiers système
- La disposition de l'inode est (très légèrement) différente
- La disposition des blocs indirects diffère légèrement
Les systèmes de journalisation de GFS et GFS2 ne sont pas compatibles. La mise à niveau est possible à l'aide d'un outil (gfs2_convert) qui est exécuté avec le système de fichiers hors ligne pour mettre à jour les métadonnées. Certains blocs de réserve dans les journaux GFS sont utilisés pour créer le (très petit) per_node fichiers requis par GFS2 pendant le processus de mise à jour. La plupart des données restent en place.
Le "méta-système de fichiers" GFS2 n'est pas un système de fichiers à part entière, mais une autre racine du système de fichiers principal. Bien qu'il se comporte comme un système de fichiers "normal", son contenu est constitué des divers fichiers système utilisés par GFS2, et les utilisateurs n'ont normalement pas besoin de le consulter. Les utilitaires GFS2 montent et démontent le méta-système de fichiers selon les besoins, dans les coulisses.
Voir également[[[[modifier]
Références[[[[modifier]
- ^
Teigland, David (29 juin 2004). "Spécifications techniques de l'architecture et des composants du cluster Symmetric" (PDF). Red Hat Inc. Récupéré 2007-08-03. - ^
Soltis, Steven R .; Erickson, Grant M .; Preslan, Kenneth W. (1997). "Le système de fichiers global: un système de fichiers pour le stockage sur disque partagé" (PDF). Transactions IEEE sur des systèmes parallèles et distribués. Archivé de l'original (PDF) le 2004-04-15. - ^ Partage de données OpenGFS avec un cluster de stockage GFS
- ^
Whitehouse, Steven (27-30 juin 2007). "Le système de fichiers GFS2" (PDF). Actes du Symposium Linux 2007. Ottawa, Ontario, Canada. pp. 253–259. - ^
Whitehouse, Steven (13-17 juillet 2009). "Test et vérification des systèmes de fichiers du cluster" (PDF). Actes du Symposium Linux 2009. Montréal, Québec, Canada. pp. 311–317.
Liens externes[[[[modifier]
Commentaires
Laisser un commentaire