Stockage jusqu'à 10 millions de fichiers

Bonjour,

Pour un projet d’hébergement d’avatars, je suis confronté au stockage massif de petits fichiers (< 50 ko).
J’ai opté pour une partition ReiserFS, reconnue pour sa rapidité dans de telles conditions.

Pouvez-vous me confirmer que ReiserFS est capable de gérer jusqu’à 10 millions de fichiers dans un seul répertoire ?

Sinon j’ai aussi la possibilité de les stocker sous forme hexadécimale, par exemple : /a9/f0/18/55.png
Cela me permet d’avoir 256 fichiers maximum par répertoire, et plus de 4 milliards de fichiers en tout.

Est-ce préférable que d’avoir tous les fichiers dans le même répertoire ?
Si oui, sur quel système de fichier, toujours ReiserFS ou Ext3 conviendrait mieux cette fois-ci ?

Merci pour vos lumières.

Donald

Pour 4 millions de fichiers, c’est le temps d’accès au fichier plus que la rapidité d’accès une fois l’inode ouvert que tu dois regarder. Tu as donc intérêt à privilégier les systèmes de fichiers utilisant les arbres équilibrés (balanced trees). Je crois que c’est le cas de Reiserfs donc ma réponse serait «Oui» et très nettement.

edit: Confirmation, Reiserfs utilise les B-trees, pour ton utilisation, c’est indispensable.

Je rajouterai que le format ZFS est d’ailleurs un champion dans le genre mais malheureusement plus réservé à des systèmes solaris ou bsd :confused:

Merci de me confirmer ReiserFS, la partition était déjà installée.

Je me posais la question depuis que je n’envisage plus le stockage dans un seul répertoire mais dans plusieurs comme je vous l’expose dans mon premier post.

Quelle solution adopteriez-vous ?

A) 8 HEX dans le même répertoire (/a5f1c0b5.png)

B) 2 HEX x 4 REP (/a5/f1/c0/b5.png)

Merci

Hum, si tes noms sont explicites, alors l’efficacité des B-Trees suggèrerait plutôt de faire moins de répertoires car Reiserfs s’occupe lui même de faire une arborescence efficace. Sauf pour des besoins de maintenance particuliers, et si les fichiers doivent être exploités par un programme et c’est tout, je suggère plutôt un seul répertoire où il y a tous tes fichiers avatars.

Mon seul soucis est l’optimisation et la performance.

Mes fichiers ont un id unique en bdd correspondant au nom du fichier dans ReiserFS.
Les id donc nom de fichiers sont sous la forme hexa / 8 caractères.

Tu me conseilles de laisser ReiserFS indexer les fichiers comme bon lui semble, je trouve ça logique et je suis ton raisonnement.

Lui donner des milliers de répertoires à indexer en plus des millions de fichiers ne peut qu’alourdir sont travail ?!

Merci

Oui, c’est mon raisonnement. En fait, j’avais eu à faire pour l’institut du monde arabe un disque virtuel contenant des fichiers de 16 octets caractérisant une séquence vidéo (pour un robot avec des magnétoscopes 8mm), MSDOS n’était pas assez rapide pour le nombre de fichiers et j’avais refait un OS complet (comprendre des fonctions C bopen, bclose, bread, bwrite, bseek) avec les fichiers organisés en B-trees, et tout était dans un seul répertoire parce que c’était le plus efficace; on était assuré de l’équilibre de l’arbre des fichiers.

J’en suis pas au point d’implémenter mon propre FS :smiley:

Je vais rester sur du Reiser mono-répertoire.

VENDU !

Bonjour,
merci beaucoup pour votre discussion. une fois Reiserfs installé dans une instance Ubuntu par exemple avec un mono répertoire comment accédez vous à vos images dont le nom est l’identifiant ?
merci

Je te conseils vivement d’ouvrir ton propre fil.