Tout savoir sur Reiser4 et les filesystems [ DOC ] - Débats - Linux et OS Alternatifs
Marsh Posté le 21-04-2003 à 20:13:13
Citation : prometteur, innovant et rafraîchissent |
rafraîchissent -> rafraîchissant
dsl j'y connait en file system, ca sera ma tres tres...maigre contribution
PS : et puis c un beau bien déguisé car c'est vrai que le sujet est plutot intéressant
Marsh Posté le 22-04-2003 à 09:49:35
Merci, l'erreur a été corrigée
Sinon, je me suis renseigné sur ext2, il y a une excellente doc sur le Kernel Hacker's guide, qui décrit non seulement les principes et l'implémentation de ext2, mais aussi les rudiments de VFS :
http://www.tldp.org/LDP/khg/HyperN [...] intro.html
En gros, c'est quand même assez basique, et même s'il a beaucoup évolué depuis, il descend de Minix dont les principes ne sont pas vraiment révolutionnaires...
Reste qu'ext2 est fiable et plutôt prévisible dans ses performances, sans surprises, et l'ext3 lui ajoute simplement la journalisation, ce qui en fait un filesystem relativement bien sécurisé, mais au niveau des performances c'est pas vraiment ca...
En gros, on a des fichiers et des dossiers (qui sont en fait des fichiers contenant une liste des fichiers/dossiers de son arborescence, avec un numéro d'inode), et lorsqu'on doit chercher quelque chose, il faut se taper toute l'arborescence sur tout le disque, avant d'arriver effectivement à l'objet désiré. C'est là que le balanced tree de Reiser est tout de même beaucoup plus efficace : lors de l'accès à un fichier, les performances sont meilleures parce que l'organisation est bien plus intelligente, et lors d'une recherche on n'a qu'à regarder dans le hashtable.
Sinon, moi aussi, Up
J'ai vu de superbes démonstrations de vos connaissances, faites pas vos timides
Marsh Posté le 22-04-2003 à 10:13:37
pas encore lu, mais tu peux faire des paragraphes dans le gros quote s'il-te-plait
Marsh Posté le 22-04-2003 à 10:35:21
Bon, j'ai regardé de plus près l?architecture d'ext2, en fait c'est pas si bidon que ça
D'ailleurs, ext2 est considéré comme le plus performant des systèmes de fichiers à structure linéaire, c'est qu'il doit bien y avoir quelque chose d'intéressant . J'm'en vais vous l'conter :
On peut finalement conclure que ext2 n'est pas le dernier des filesystems et que sa structure, même si elle souffre d'un passé lourd qui aura du mal à disparaître, profite d'optimisations intéressantes qui en font, outre la robustesse et la fiabilité qu'on lui connaît, un filesystem très intéressant et pas si archaïque que ça. D'ailleurs l'implémentation de la journalisation avec ext3 est très propre et peu gourmande en ressources. ext[2/3/...]fs est définitivement le système de fichier phare de Linux en conjuguant habillement performances, sécurité et robustesse, tout en inspirant la confiance que ces années de déboguage lui ont apportée. Espérons que Reiser saura être aussi fiable
Mais Reiser4 sait garder ses secrets, que j'ai décrit un peu plus haut, et votre aide sera certainement très précieuse pour m'en sortir et achever ma doc
Marsh Posté le 22-04-2003 à 10:50:40
Ca y est, j?ai mis des petits paragraphes dans le premier post, et j?ai corrigé toutes mes vilaines fautes, mon sujet est tout propre, maintenant j?attend vos réponses
? et merci à vous lecteurs qui vous intéressez à ce texte
Marsh Posté le 22-04-2003 à 11:09:08
Je connais rien en FS donc juste quelques remarques "esthétiques" :
- 3ème ligne : "entre haute" => "entre autre"
- début 3ème § : "il semble ancien" => "elle semble ancienne"
- Pour la licence, la FDL est plus appropriée pour un exposé non ?
Très intérressant en tout cas tout ça
Marsh Posté le 22-04-2003 à 11:56:36
Voilà, c'est corrigé
Effectivement, c'est bien la FDL à laquelle je pensais
J'espère que d'ici ce soir les spécialistes viendront agrémenter la topic, en attendant merci de vos retours qui me permettent d'améliorer mon texte
Marsh Posté le 22-04-2003 à 14:21:06
Après de nombreuses recherches, voici enfin à quoi ressemble une clé ReiserFS (v3, j'imagine que rien n'a changé pour la v4) :
<locality_id, object_id, offset, uniqueness>
Le locality_id étant l'identifiant unique du dossier parent de l'objet en question, object_id représentant l'identifiant unique de l'objet, offset représentant le point de départ de l'objet dans l'item et uniqueness étant certainement un petit coup de poudre magique pour être sûr que la clé est vraiment unique (vive la parano ).
Reste que je me demande à quoi sert ce fameux locality_id, certainement une astuce pour la résolution par le storage layer ... l'emplacement dans l'arbre du fichier et de son dossier parent seraient donc liés ?
Et la question originelle demeure : comment est organisée la correspondance entre le path et la clé, comment fonctionne le semantic layer ?
Marsh Posté le 22-04-2003 à 14:49:05
Sorry, we could not find the file you requested ...
Marsh Posté le 22-04-2003 à 17:23:07
C'est curieux, je n'arrive à l'avoir qu'avec lecache Google ... mais c'est très intéressant qd même
... et c'est marrant, il n'y a pas grand monde qui semble s'intéresser au fonctionnement des filesystems, mes posts sont mal faits ou c'est le sujet qui ne plaît pas ?!?
Marsh Posté le 22-04-2003 à 17:24:56
- Fred - a écrit : C'est curieux, je n'arrive à l'avoir qu'avec lecache Google ... mais c'est très intéressant qd même |
Mauvais souvenirs de ReiserFS, je pars donc avec un à priori négatif sur Reiser4
Marsh Posté le 22-04-2003 à 18:12:18
SI ça m'intéresse énormément, mais comme j'y connais que dalle...
tout au plus puis je te donner ces quelques liens :
http://forum.hardware.fr/forum2.ph [...] h=&subcat=
http://forum.hardware.fr/forum2.ph [...] &owntopic=
Marsh Posté le 22-04-2003 à 18:34:23
[Albator] a écrit : Mauvais souvenirs de ReiserFS, je pars donc avec un à priori négatif sur Reiser4 |
Tu peux préciser ? Il est à noter que Reiser4 a fait d'énormes progrès en termes de performances (c'est peut-être de ce côté que tu as été déçu), et pour ce qui est de la fiabilité, normalement ca devrait être testé ... reste à attendre la sortie officielle, mais avec les nouveaux sponsors ca s'annonce très bien, d'autant qu'ils avancent vraiment pas à pas : les features sont fixées jusqu'à la v6 !
Sinon Mjules, je vais vraiment faire tout mon possible pour vous amener à tous un exposé clair et précis sur Reiser4, avec quelques annexes notamment sur les filesystems en général.
Du côté des newsgroup, bah les américains ont pas l'air super intéressés, et sur fr.comp.os.linux.debats ils sont partis sur un streetfight entre UTF-8 et ISO-8859-1 bref, j'ai laissé tomber. J'attend donc febrillement votre aide
Marsh Posté le 22-04-2003 à 18:41:44
je sais que reiserfs avait pas mal de pb avec le noyau 2.4.10 (et les précédents il me semble).
Marsh Posté le 22-04-2003 à 18:51:18
Bon, on va essayer de ressusciter les souvenirs de licence sur les systèmes de fichiers.
- Fred - a écrit :
|
À mon avis il parle de couper passwd en plein de petits fichiers, un par utilisateur, avec des permissions spécifiques.
Citation :
|
Ça ressemble à de l'esbrouffe. Ce système permet d'améliorer les performances dans certaines conditions, ce n'est pas pour autant la peine de forcer ces conditions là où il n'y a pas de problèmes de performances particuliers. À mon avis, la vraie différence va se faire sur le stockage et l'accès aux données, où on aura tendance à utiliser certains types de stockages qu'on hésitait parfois à utiliser (enfin, moins depuis l'avènement de reiser 3).
Citation :
|
De ce que j'en sais, ext2 est dérivé de minix, lui-même dérivé du bon vieux système de fichiers System V. Des principes simples, mais efficaces (un bitmap et des i-n?uds), donc c'est plutôt rapide dans pas mal de circonstances.
La FAT mérite tout juste le nom de système de fichiers selon moi. On devrait plutôt parler de « tas de fichiers » dans ce cas
Marsh Posté le 23-04-2003 à 09:41:03
Merci beaucoup JarJar
J'aîmerais juste savoir à quoi correspondent les bitmap et i-noeuds. Et pour ce qui est du respect de POSIX, notamment en ce qui concerne les propriétés et attributs de certains fichiers, n'est-il pas plus judicieux de les stocker dans des petits fichiers plutôt que de les considérer comme un troisième type d'information, au moins pour la clarté du code ?
... bon, perso, je pense aussi qu'il s'arrête à des points de détails (au fond, les attributs sont très bien gérés comme ca et les systèmes de metadonnées ne sont pas si mal non plus), mais ca peut aider à uniformiser l'exploitation du filesystem, à simplifier l'API, non ?
Sinon, pour Mjules, ces problèmes ont été réglé depuis la v2.4.18, et Reiser4 se fonde sur le code "propre" de Reiser3. Bien sûr, les nouveautés demanderont une periode de tests importante, mais globalement ca devrait se passer plutôt bien.
Marsh Posté le 23-04-2003 à 12:13:34
- Fred - a écrit : J'aîmerais juste savoir à quoi correspondent les bitmap et i-noeuds. |
Eh bien tout d'abord, le disque est découpé en blocs (en général de 1 ou 4 Ko). Au début du disque (après le secteur de boot, dans ce qu'on appelle le superbloc), il y a un bitmap qui représente la cartographie des blocs occupés ; ça permet d'allouer intelligemment les blocs pour mettre des fichiers dedans (c'est grâce à ça qu'ext2 peut faire la défragmentation en temps réel dont tu as parlé).
Ensuite, à chaque fichier sur le disque sont associés : un numéro d'i-n?ud (inode) unique, ainsi que le nombre de liens physiques associés et les droits... mais pas le nom. Ensuite, un système intelligent décrit les blocs occupés par ce fichier sur le disque (en allant utiliser des blocs d'index sur le disque si le fichier est gros, histoire de ne pas encombrer la table). Tout ceci est répertorié dans la table des i-n?uds au début du disque (après le superbloc). Ensuite, quand un répertoire est stocké sur le disque, il contient la liste des noms de fichiers avec les i-n?uds associés. C'est ce mécanisme qui permet l'existence de liens physiques, un même i-n?ud pouvant être référencé plusieurs fois.
Globalement, c'est fiable, rapide, et facile à réparer => une bonne recette qui marche depuis 20 ans.
Citation : Et pour ce qui est du respect de POSIX, notamment en ce qui concerne les propriétés et attributs de certains fichiers, n'est-il pas plus judicieux de les stocker dans des petits fichiers plutôt que de les considérer comme un troisième type d'information, au moins pour la clarté du code ? |
Comme ce sont des métainformations, ce n'est pas forcément un mal d'y accéder séparément, mais évidemment c'est clairement plus extensible comme ça.
Citation : ... bon, perso, je pense aussi qu'il s'arrête à des points de détails (au fond, les attributs sont très bien gérés comme ca et les systèmes de metadonnées ne sont pas si mal non plus), mais ca peut aider à uniformiser l'exploitation du filesystem, à simplifier l'API, non ? |
Bien entendu, mais au lieu de faire ça dans leur coin, ils auraient pu s'entendre avec les développeurs des autres implémentations et les organismes de normalisation.
Citation : Sinon, pour Mjules, ces problèmes ont été réglé depuis la v2.4.18, et Reiser4 se fonde sur le code "propre" de Reiser3. Bien sûr, les nouveautés demanderont une periode de tests importante, mais globalement ca devrait se passer plutôt bien. |
Bof, ne présmons pas trop vite. C'est vrai que s'ils ont compris la leçon de reiser 3, ils devraient tester ça un peu mieux.
Marsh Posté le 23-04-2003 à 16:44:09
Curieusement je n'avais pas fait le rapprochement entre inode et i-noeuds . Dans mon exposé, je parle d'inode ou de i-noeuds ? Le terme i-noeuds est-il réellement employé en cours d'info ?
Sinon, pour le bitmap, en gros ca répertorie les blocs occupé et les blocs non occupés non ? D'ailleurs, lorsque ext2 utilise des "air holes", les blocs aloués en plus le sont-ils réellement ou ont-ils un statut spécial dans le bitmap, de sorte qu'ils puissent être libérés si l'espace disque venait à manquer ?
Enfin, pour l'histoire des "blocs d'index", ca veut dire que si je demande à occuper les inodes 1,2,3,4 et 5, je vais dire "j'occupe les inodes de 1 à 5" plutôt que "j'occupe les inodes 1,2,3,4 et 5", pour gagner de l'espace dans le bitmap, non ?
Pour ce qui est des standards, effectivement la véritable voie à suivre aurait été de parler avec les organismes de standardisation. Mais leur choix est si radical qu'il a tout de même peu de chance d'être accepté ...
Pour ce qui est de la FAT, ca marche comme ext1 non ? Un superblock, un bitmap et un bordel de dossiers listant des numéros d'inode et gardant les noms de fichiers, et des fichiers épararpillés à la va-vite sur le disque sans organisation particulière non ? En même temps, c'est du closed-source ... mais les principes de FAT sont connus non (ne serait-ce que pour écrire le driver fat pour Linux) ?
Et pour NTFS, c'est du FAT avec des droits d'accès et un système de cryptage et de flux intégrés, ou ils ont amélioré la structure en attendant ?
D'ailleurs, cette histoire de flux que Reiser voulait résoudre avec sa non distinction de dossiers et des fichiers, qu'est-ce que c'est exactement ? On envoye un paquet de dossiers et fichiers en vrac au lieu de les envoyer un par un par un protocole réseau ? Les flux ne servent-ils que pour les transferts réseau ?
Merci de ton attentionet de ton aide qui m'a déjà permis de bien avancer
Marsh Posté le 23-04-2003 à 17:15:04
tu devrais jeter un oeil sur ce site, il y a peut-être quelques infos intéressantes sur FAT/NTFS
http://bellamyjc.net/fr/multiboot.html
Marsh Posté le 23-04-2003 à 17:42:26
- Fred - a écrit : Le terme i-noeuds est-il réellement employé en cours d'info ? |
Il semblerait bien, oui.
Citation : Sinon, pour le bitmap, en gros ca répertorie les blocs occupé et les blocs non occupés non ? |
C'est exactement ça.
Citation : D'ailleurs, lorsque ext2 utilise des "air holes", les blocs aloués en plus le sont-ils réellement ou ont-ils un statut spécial dans le bitmap, de sorte qu'ils puissent être libérés si l'espace disque venait à manquer ? |
Là je n'en sais tro rien. À mon avis c'est fait en interne dans le driver sans être écrit sur le disque, mais faudrait vérifier.
Citation : Enfin, pour l'histoire des "blocs d'index", ca veut dire que si je demande à occuper les inodes 1,2,3,4 et 5, je vais dire "j'occupe les inodes de 1 à 5" plutôt que "j'occupe les inodes 1,2,3,4 et 5", pour gagner de l'espace dans le bitmap, non ? |
Tu ne mélangerais pas blocs et i-n?uds ? Chaque i-n?ud contient la liste des blocs utilisés par le fichier. Quand le fichier est de petite taille, ça s'arrête là. Quand il est plus grand, à la place de la liste des blocs utilisés par le fichier, on met une liste de blocs d'indirection, alloués exprès, qui contiennent à leur tour l'index des blocs utilisés par le fichier. Si ça ne suffit pas, on rajoute encore des indirections (jusqu'à 3 niveaux) histoire de pouvoir stocker des très gros fichiers. La notion de "blocs tant à tant" n'existe pas vraiment.
Citation : Pour ce qui est de la FAT, ca marche comme ext1 non ? Un superblock, un bitmap et un bordel de dossiers listant des numéros d'inode et gardant les noms de fichiers, et des fichiers épararpillés à la va-vite sur le disque sans organisation particulière non ? En même temps, c'est du closed-source ... mais les principes de FAT sont connus non (ne serait-ce que pour écrire le driver fat pour Linux) ? |
Les principes de la FAT sont bien connus, et n'ont pas grand chose à voir avec les systèmes de fichiers unix. En gros, tu as un compteur de la place libre sur le disque et une FAT (écrite en double), qui décrit l'emplacement des fichiers sur le disque avec une liste chaînée : si mes souvenirs sont bons (je ne sais plus très bien si les listes chaînées sont au niveau de la FAT ou directement mélangées aux données), tu as une cartographie du disque avec pour chaque bloc, le nom du fichier contenu (même si ce n'est pas le début !) et l'emplacement du bloc suivant. Un système lourd, très lent (surtout sur les gros fichiers), et qui se fragmente très vite (quand on cherche un bloc libre, c'est le premier trouvé qui est utilisé).
Citation : Et pour NTFS, c'est du FAT avec des droits d'accès et un système de cryptage et de flux intégrés, ou ils ont amélioré la structure en attendant ? |
Vu que c'est journalisé, ils ont du changer pas mal de choses quand même.
Citation : D'ailleurs, cette histoire de flux que Reiser voulait résoudre avec sa non distinction de dossiers et des fichiers, qu'est-ce que c'est exactement ? On envoye un paquet de dossiers et fichiers en vrac au lieu de les envoyer un par un par un protocole réseau ? Les flux ne servent-ils que pour les transferts réseau ? |
Hmmm, je ne sais pas exactement à quoi ça fait référence. Tu aurais un lien qui en parle ?
Marsh Posté le 23-04-2003 à 20:23:27
J'ai en effet mélangé node et inode ... mais dans la Doc de Reiser4, qui était la première que je lisais sur les filesystems, il n'était question que de nodes, d'où la confusion
Rassures-moi : block et nodes, c'est bien la même chose non ?
Sinon, même à la lecture de la doc de ext2, effectivement, je n'avais pas trop compris ces "blocks d'indirection". Voici ma petite théorie, tu me diras si elle est juste :
Le fait est qu'un bloc de la table peut contenir plusieurs références différentes à des fichiers (plusieurs inodes quoi), par exemple le bloc 'a' peut contenir les numéro de blocs occupés par les fichiers x, y et z s'ils sont assez petits pour que leurs adresses tiennent dans un bloc. Si le fichier x par exemple est gros, et donc que la liste des références aux blocs qu'il occupe ne tiennent pas dans un seul bloc, on insère dans la table, comme une inode simple, une inode de type indirection qui pointe vers une liste de blocs isolés qui contiennent, eux, la liste des références des blocs occupés par le gros fichier x (j'espère que je suis clair ...). Si le fichier y par contre est vraiment très gros, et donc que l'inode de redirection ne tient elle même plus dans un bloc avec un seul niveau de redirection, on utilise un second niveau de redirection, l'inode de redirection première prend le plus de place possible (un bloc ...), et elle redirige donc vers un maximum d'inodes de seconde redirection qui pointent, elles, vers des blocs finaux qui contiendront enfin les blocs alloués au fichier. Arf, c'est fini .
Et ceci serait probablement la limitation de taille d'un fichier : il n'a pas "le droit" de dépasser deux niveaux de redirection, soit 4Go pour ext2. Ce sont vraiment des suppositions ... d'ailleurs, si la taille d'un bloc changeait, la taille maximale d'un fichier changerait, donc ma théorie tombe par terre puisque la taille maximale d'un fichier est renseignée dans les specs de ext2, donc il y a certainement quelques trucs à rectifier .
Une petite question d'ailleurs : le bitmap doit occuper une sacré place qd même, s'il n'utilise pas la concaténation de blocs (les blocs tant à tant sont occupés) non ?
Pour la FAT, c'est vraiment de la sauvagerie leur truc ... m'enfin, ca vient de DOS aussi, c'était pas vraiment destiné à gérer de gros volumes, et c'est pas un changement de 8 en 16 puis 32 à la fin de 'FAT' qui change quelque chose ...
Et cette histoire de chaîne, c'est vraiment risible
D'ailleurs, quand on compare l'évolution d'ext2, qui dérive tout de même de Minix, un filesystem somme toute assez basique, et celle de la FAT32 qui dérive de FAT8, on peut se sontir heureux
... journalisé, NTFS ?!?? En tout cas, il paraît qu'il est plus performant que FAT, même avec toutes les nouvelles fonctions implémentées
Quand je parlais de flux, je fais référence aux 'flux' de NTFS, dont j'ai entendu parlé mais qu'il ne m'a jamais été donné d'utiliser (ou tout du moins explicitement), bref je sais que ca vient de NTFS, que ca sert notamment pour Samba, et que c'était assez demandé ... pas vraiment plus, je vais essayer de me documenter avec comme mot clé 'NTFS streams'.
Marsh Posté le 23-04-2003 à 22:34:04
je troll pas...je suis sous XP, et mes DD sont en FAT...
en plus, y'a des bugs avec la NTFS et le CDFS :
exemple : je backup sur cd des fichiers qui étaient sur un dd en ntfs
je restore le cd sur une nouvelle partition NTFS
et pof, je perds les privilèges sur mes fichiers : le user qui les possède porte un nom généré automatiquement, une suite alphanumérique...bilan, faut se loguer en admin, se réapproprier tt les fichiers (ca peut prendre du temps), et redonner l'usage aux users concernés...
je trouve ca relou
Quant à la vitesse, c prouvé : regarde n'importe quel test de DD qui fait le même bench sur fat32 et NTFS : le NTFS est plus lent d'environ 15%...
Maintenant je dis pas que c mal le NTFS, je dis juste que si tu cherches la rapidité, c pas le bon FS sous win...maintenant, si t'a des contraintes de sécurité, etc, c le bon FS...
Je ne trolle pas du tout là, je suis très sérieux
Marsh Posté le 23-04-2003 à 22:48:25
Bon, pour les streams NTFS, je crois que j'ai trouvé : ce sont des propriétés de fichiers, des attributs, sous forme de fichiers qui ne sont pas directement accessibles dans l'arborescence. Des métadonnées en quelque sorte, mais je ne sais pas si ces streams sont propre à chaque fichier (je crois que si en fait ). Plus d'infos ici (le site ntfs.com est assez intéressant) :
http://www.ntfs.com/ntfs-multiple.htm
Sinon, j'ai lu sur ce site que NTFS supportait , outre les privilèges et autres restriction d'accès, le cryptage et la compression de fichiers, les quotas, les liens, et des optimisation pour le stockage de gros fichiers (d'après JarJar un gros pb pour FAT par ex), et effectivement également le journalising :
http://www.ntfs.com/ntfs_basics.htm
http://www.ntfs.com/ntfs_vs_fat.htm
Après cette petite parenthèse NTFSiène, les questions précédentes restent toujours d'actualité
Marsh Posté le 24-04-2003 à 00:30:55
- Fred - a écrit : Bon, pour les streams NTFS, je crois que j'ai trouvé : ce sont des propriétés de fichiers, des attributs, sous forme de fichiers qui ne sont pas directement accessibles dans l'arborescence. Des métadonnées en quelque sorte, mais je ne sais pas si ces streams sont propre à chaque fichier (je crois que si en fait ). Plus d'infos ici (le site ntfs.com est assez intéressant) : |
J'ai beau chercher, je ne vois pas à quoi ça peut servir. Ce sont des fichiers dans le fichier ? Ça change quoi par rapport à un répertoire ?
C'est impressionnant le nombre de trucs qu'ils ont mis dans un FS particulier au lieu de les mettre dans le VFS. J'ose pas imaginer la gueule du VFS en question, pour qu'ils n'osent même pas y toucher
Marsh Posté le 24-04-2003 à 00:39:46
- Fred - a écrit : Le fait est qu'un bloc de la table peut contenir plusieurs références différentes à des fichiers (plusieurs inodes quoi), par exemple le bloc 'a' peut contenir les numéro de blocs occupés par les fichiers x, y et z s'ils sont assez petits pour que leurs adresses tiennent dans un bloc. Si le fichier x par exemple est gros, et donc que la liste des références aux blocs qu'il occupe ne tiennent pas dans un seul bloc, on insère dans la table, comme une inode simple, une inode de type indirection qui pointe vers une liste de blocs isolés qui contiennent, eux, la liste des références des blocs occupés par le gros fichier x (j'espère que je suis clair ...). Si le fichier y par contre est vraiment très gros, et donc que l'inode de redirection ne tient elle même plus dans un bloc avec un seul niveau de redirection, on utilise un second niveau de redirection, l'inode de redirection première prend le plus de place possible (un bloc ...), et elle redirige donc vers un maximum d'inodes de seconde redirection qui pointent, elles, vers des blocs finaux qui contiendront enfin les blocs alloués au fichier. Arf, c'est fini . |
C'est ça, sauf que tu mélanges blocs et i-n?uds. Quand le peu de place disponible dans un i-n?ud n'est pas suffisant pour stocker toutes les adresses de blocs, ce n'est pas un nouvel i-n?ud qu'il va chercher, mais carrément un bloc dans la surface des données sur le disque.
Citation : Et ceci serait probablement la limitation de taille d'un fichier : il n'a pas "le droit" de dépasser deux niveaux de redirection, soit 4Go pour ext2. Ce sont vraiment des suppositions ... d'ailleurs, si la taille d'un bloc changeait, la taille maximale d'un fichier changerait, donc ma théorie tombe par terre puisque la taille maximale d'un fichier est renseignée dans les specs de ext2, donc il y a certainement quelques trucs à rectifier . |
UFS permettait 3 indirections soit déjà 16 Go. À mon avis ça a plutôt augmenté, en fait je ne vois pas de raison de limiter le nombre d'indirections... La limite vient bêtement de la description de la taille du fichier et des adresses des blocs : maintenant on utilise des entiers de 64 bits au lieu de 32, ce qui a fait sauter la limite de 2 Go.
Citation : Une petite question d'ailleurs : le bitmap doit occuper une sacré place qd même, s'il n'utilise pas la concaténation de blocs (les blocs tant à tant sont occupés) non ? |
Pour une partition de 20 Go, ça fait 5242880 blocs, soit 655360 octets pour le bitmap. Pas si énorme...
Marsh Posté le 24-04-2003 à 09:04:12
Jar Jar a écrit : C'est ça, sauf que tu mélanges blocs et i-n?uds. Quand le peu de place disponible dans un i-n?ud n'est pas suffisant pour stocker toutes les adresses de blocs, ce n'est pas un nouvel i-n?ud qu'il va chercher, mais carrément un bloc dans la surface des données sur le disque. |
Juste une question (c'est de là que vient ma confusion blocs/inodes) : comment un inode est-il limité en taille ? Je suis parti du principe qu'un inode faisait un bloc, mais c'est un peu con puisqu'il n'y a pas grand intérêt à faire une structure de blocs pour l'espace réservé aux inodes. Par contre, dès le second niveau d'indirection, c'est un bloc entier qui est adressé, et "l'inode de second niveau" (si on peut l'appeler comme ça) utilise effectivement un bloc ... non ?
Citation : UFS permettait 3 indirections soit déjà 16 Go. À mon avis ça a plutôt augmenté, en fait je ne vois pas de raison de limiter le nombre d'indirections... La limite vient bêtement de la description de la taille du fichier et des adresses des blocs : maintenant on utilise des entiers de 64 bits au lieu de 32, ce qui a fait sauter la limite de 2 Go. |
A mon avis, la limite d'indirection est purement pratique, pour éviter une trop grande complexité dans le code (le récursif c'est toujours un peu dangereux, surtout pour un filesystem ) ... d'ailleurs, la doc Reiser4 n'en parle presque pas, il y est plutôt question de performances sur petits fichiers, partant du principe qu'un gros fichier gagne a être découpé en petit morceaux.
Citation : Pour une partition de 20 Go, ça fait 5242880 blocs, soit 655360 octets pour le bitmap. Pas si énorme... |
Effectivement ca fait peu
8 octets par bloc ... mais qu'est-ce qui nous bouffe toute la place sur le disque au formatage ? J'imagine le superblock et le bitmap (1Mo au plus ), mais surtout la table et les entêtes de fichiers non ?
Ce qui est sympa, c'est que ces infos vont pouvoir reservir pour le prochain fs d'Apple et de Microsoft, qui partiront semble-t-il aussi sur des principes similaires à ceux de Reiser4.
Pour les streams NTFS, ils doivent ressemble au format d'attributs de Reiser4 : chaque attribut se trouve dans un petit fichier accessible en utilisant le fichier comme un dossier (filename/..stat/owner par ex), et les plugins peuvent créer des attributs spécifiques avec des droits spéciaux, de même que d'autres programme peuvent y insérer des métadonnées. En gros ca doit être ça
... à ton avis, notre topic utilise les inodes étendus ?
Marsh Posté le 24-04-2003 à 10:22:27
- Fred - a écrit : Juste une question (c'est de là que vient ma confusion blocs/inodes) : comment un inode est-il limité en taille ? Je suis parti du principe qu'un inode faisait un bloc, mais c'est un peu con puisqu'il n'y a pas grand intérêt à faire une structure de blocs pour l'espace réservé aux inodes. Par contre, dès le second niveau d'indirection, c'est un bloc entier qui est adressé, et "l'inode de second niveau" (si on peut l'appeler comme ça) utilise effectivement un bloc ... non ? |
Je crois que l'inode a une taille fixe ; d'ailleurs le nombre d'inodes est fixé au formatage.
Citation : A mon avis, la limite d'indirection est purement pratique, pour éviter une trop grande complexité dans le code (le récursif c'est toujours un peu dangereux, surtout pour un filesystem ) |
C'est vrai que ça peut amener de sales trucs. Faudrait vérifier, mais je ne pense pas que ce soit un problème primordial dans la conception du FS.
Citation : 8 octets par bloc ... mais qu'est-ce qui nous bouffe toute la place sur le disque au formatage ? J'imagine le superblock et le bitmap (1Mo au plus ), mais surtout la table et les entêtes de fichiers non ? |
C'est la table des inodes qui prend beaucoup de place, oui. En plus, il y a en général une portion du disque réservée au super-utilisateur, 5 % par défaut.
Marsh Posté le 24-04-2003 à 20:30:15
Mais ... les inodes d'indirection sont-elles d'une taille fixe, ou est-ce qu'on leur alloue tout seulement un bloc ?
Sinon, dans FAT, ce que l'on appelle véritablement FAT (la table quoi) est-elle comparable à la table d'inodes ? Je veux dire, est-ce que c'est si mal fait que la FAT soit simplement le bitmap, et qu'un fichier soit référencé par son premier bloc par un dossier, puis la fin de ce premier bloc pointe vers le second bloc occupé, et ainsi de suite jusqu'à la fin du fichier ... non ?
Et c'est pas con ça, les 5% au root
Marsh Posté le 24-04-2003 à 21:01:23
- Fred - a écrit : Mais ... les inodes d'indirection sont-elles d'une taille fixe, ou est-ce qu'on leur alloue tout seulement un bloc ? |
Bin ce sont des blocs de 4 Ko sur la surface du disque, et on en alloue autant que nécessaire.
Citation : Sinon, dans FAT, ce que l'on appelle véritablement FAT (la table quoi) est-elle comparable à la table d'inodes ? Je veux dire, est-ce que c'est si mal fait que la FAT soit simplement le bitmap, et qu'un fichier soit référencé par son premier bloc par un dossier, puis la fin de ce premier bloc pointe vers le second bloc occupé, et ainsi de suite jusqu'à la fin du fichier ... non ? |
Je ne me souviens plus exactement. En tout cas il n'y a pas de bitmap en tant que tel, et il me semble que toutes les métadonnées sont quand même regroupées dans la FAT, mais sous forme de listes chaînées.
Marsh Posté le 24-04-2003 à 21:06:48
Fred, pour la FAT, il me semble que le post de tetedeiench sur hardware (un des liesn + haut) la décrivait + précisement.
Marsh Posté le 24-04-2003 à 23:36:39
Bon, on a vraiment bien avancé sur le topic, merci à tous
Reste l'organisation des tables de correspondance path/clés et le balancing pour Reiser4 qui est encore un peu mystèrieuse, si vous avez une idée je suis vraiment preneur, sinon je vais poster sur la mailing list de Reiser4 ...
Je vais me matter le topic de tetedeiench ... mais je sais que dans mon exposé, je vais prendre ext comme exemple de fs de type blocs et non FAT
Marsh Posté le 25-04-2003 à 10:12:58
son 2° topic (toujours dans les liens que j'ai mis un peu plus haut) décrit justement (mais peut-être un peu succintement) l'ext2fs. avec la différence entre bloc, inode, vecteurs d'indirection etc.
Marsh Posté le 25-04-2003 à 21:48:52
btw, merci pour ta contribution, Mjules
Bon, j'ai relu avec attention et toute l'expérience que j'ai acquis (notamment dans ce forum, merci ) et voici les quelques nouvelles informations mais aussi questions qui me sont venues :
Ne vous inquietez pas, je vais également poser ces questions sur la devlist de Namesys, et j'espère qu'ils sauront me répondre
Dès que j'ai d'autres infos, je vous les poste.
Marsh Posté le 26-04-2003 à 14:43:22
Bon, pour les différences entre filesystems, j'ai trouvé :
http://www.osnews.com/story.php?news_id=69
Un beau clash en chief programmer ... m'enfin ca date de 2001.
Sinon, j'ai réussi à avoir le responsable release de Reiser4 (en une matinnée, incroyable ) sur la mailing list, voici les quelques infos que j'ai eu :
Pour le reste, les dev devraient refaire leur apparition lundi, donc pour les questions plus techniques ca attendra encore un peu
Marsh Posté le 21-04-2003 à 19:45:38
Salut à tous !
Comme vous le savez certainement, Reiser4 est l?évolution du remarquable système de fichiers Reiser de Namesys, disponible sous Linux et réputé (entre autre) pour ses excellentes performances, en particulier sur les petits fichiers. Il existe actuellement des betas pour kernels 2.5, et le travail semble avoir porté ses fruits : Reiser4 est notablement plus rapide que ses concurrents sur les premiers tests officiels menés. Mais les évolutions sont loin de se limiter à un simple gain de performances, les concepts concrétisés dans cette nouvelle version veulent révolutionner non seulement le petit monde des filesystems, mais aussi renouer avec la sécurité et secouer le standard POSIX.
La release étant prévue pour cet été, et le sujet collant parfaitement avec mes instructions, j?ai choisi Reiser4 comme objet de mon TIPE pour l?année prochaine, tant dans sa conception globale que dans sa comparaison avec les systèmes de fichiers traditionnels (ext2 en particulier) et du point de vue des possibilités qu?il ouvre pour GNU/Linux et l?informatique en général, la sécurité en particulier.
J?ai donc lu la documentation de leur site officiel, mais elle reste assez incomplète sur certains points, et elle semble ancienne tant les imprécisions sur ce qui sera et ne sera pas effectivement inclus dans Reiser4 sont troublantes ? j?ai donc besoin de votre aide, mon expérience en filesystems se résumant aux notions d?utilisateur/administrateur Linux, en plus des quelques lectures de ces deux dernières semaines. Je ne vous demande évidement pas de me faire mon exposé, mais quelques point épineux subsistent, et j?aimerais vraiment que vous m?éclairiez ? pardon d?avance pour les éventuelles erreurs que mon exposé comportera, je vous demande simplement de les signaler et si possible, de les corriger en précisant les notions qui ont pu m?échapper.
Il est tout à fait clair que mes travaux seront accessibles en licence appropriée (FDL ?) à tous, dès que je jugerais l?exposé assez complet et ?propre? pour les futurs lecteurs. Merci d?avance de votre aide et de vos commentaires éventuels...
Commençons d?abord par ce que j?ai compris de Reiser4, je vais tenter ici un petit exposé des nouveautés de Reiser4 et de ses avantages/inconvénients vis à vis des filesystems ?traditionnels? :
Voilà pour le topo, maintenant les quelques interrogations. Les spécialistes auront observé quelques zones d?ombre que j?aimerais éclaircir, notamment sur les fonctionnements internes de Reiser4. Voici les premières questions :
Merci encore de votre aide,
Fred
Références :
Doc officielle -- http://www.namesys.com/v4/v4.html
L'explication "brutale" de Ping -- http://forum.hardware.fr/forum2.php3?post=9912&cat=11
Message édité par - Fred - le 22-04-2003 à 11:40:30
---------------
"You know the name, You know the number..."