Isilon : Comprendre les descripteurs de fichier Isilon
Summary: Comprendre le fonctionnement des descripteurs de fichiers OneFS.
Symptoms
Un descripteur de fichier est l’unité de base de l’accès NFS (Network File System). Il s’agit de références à des fichiers ou répertoires indépendants du nom du fichier ou du répertoire. Presque tous les appels de procédure à distance (RPC) ou NFS nécessitent un descripteur de fichier ou un ID de fichier. Les descripteurs de fichier sont opaques pour le client, mais les descripteurs de fichier OneFS sont persistants sur chaque nœud. Dans OneFS, les informations relatives aux descripteurs de fichiers sont stockées dans des inodes, et chaque fichier qui utilise le même inode utilise également le même descripteur de fichier. Cela permet d’éviter les descripteurs de fichiers obsolètes lors des basculements. OneFS ne recycle pas les descripteurs de fichier et un descripteur de fichier pour un fichier peut exister tant que son fichier existe.
Cause
Resolution
En général, les descripteurs de fichiers sont créés sur le serveur NFS et peuvent varier selon les plates-formes. Dans OneFS, un descripteur de fichier est créé lorsqu’un INode logique (LIN) est créé au moment de la création du fichier. Les descripteurs de fichier se composent d’un ID de système de fichiers (FSID), d’un ID d’exportation et d’un LIN du fichier/répertoire en question. Les descripteurs de fichiers OneFS sont 64 bits, ce qui les rend illimités en théorie (total possible des descripteurs de fichiers simultanés = 18 quintillions * 10^19). Lors d’une utilisation maximale, il faudrait théoriquement 1 milliard d’années pour épuiser les inodes logiques disponibles sur un cluster Isilon.
Étant donné que OneFS ne recycle pas les inodes logiques, il est normal qu’une LIN soit associée à son descripteur de fichier équivalent.
La tâche lincount peut être utilisée pour trouver le nombre actuel de LIN du cluster :
# isi job start lincount # isi job reports view <JobID> Example: ------------ ps9500x3-2# isi job start lincount Started job [5983] ps9500x3-2# isi job reports view 5983 LinCount[5983] phase 1 (2025-11-25T20:40:04) -------------------------------------------- LINs traversed 28865 SINs traversed 0 JE/Error Count 0 JE/Time elapsed 7 seconds JE/Time working 9 seconds LinCount[5983] Job Summary -------------------------- Final Job State Succeeded Phase Executed 1
Étant donné que les LIN font partie des descripteurs de fichier OneFS, un LIN peut être extrait d’un descripteur de fichier. Suivez le lien ci-dessous pour en savoir plus sur ce processus.
Comment obtenir un LIN à partir d’un descripteur
de fichierCertains systèmes d’exploitation et applications existantes ne peuvent pas accepter les descripteurs de fichiers 64 bits et ne peuvent pas interagir avec le cluster Isilon en raison de cette limitation.
Pour contourner cette limitation, OneFS peut renvoyer des ID de fichier 32 bits aux clients, mais cette fonctionnalité a un coût et une mise en garde.
Si les quatre milliards de fichiers sont dépassés, ou s’il y a suffisamment de rotation de fichiers créés et supprimés, il est possible que les LIN soient encapsulés (modulo 32 bits). Cela peut entraîner plusieurs LIN pointant vers le même descripteur de fichier. Mathématiquement, cette situation est hautement improbable, mais la possibilité d’une perte de données grave existe si les conditions ci-dessus sont remplies. Soyez prudent lors de l’implémentation d’ID de fichier 32 bits. À l’heure où nous écrivons ces lignes, ce problème n’a jamais été observé sur un cluster Isilon.
Comment implémenter l’utilisation d’ID de fichier 32 bits sur NFS
Il arrive parfois que vous rencontriez des problèmes avec des descripteurs de fichiers obsolètes. Un descripteur de fichier obsolète est un descripteur de fichier qui ne correspond plus à un FSID actif. Les FSID sont basés sur un ID de génération (GENID) qui est similaire à un « numéro de version » pour le fichier. Les écritures ne sont pas basées sur la dernière version de GENID, de sorte qu’une erreur de descripteur de fichier obsolète peut être générée.
Les descripteurs de fichier obsolètes peuvent résulter de problèmes de mise en cache du client, ou le fichier n’était pas verrouillé et était ouvert à la modification par deux utilisateurs simultanés ou plus. Le verrouillage du fichier est nécessaire pour corriger les descripteurs de fichier obsolètes.