Forum général.cherche-logiciel Copy on write de fichier

Posté par  (site web personnel) .
Étiquettes : aucune
0
2
oct.
2008
Je cherche un moyen de sauver de l'espace disque en remplaçant des doublons par des liens.

Le problème des liens se posent lors d'une écriture, je voudrais qu'une copie soit créé à ce moment là. Je pourrais le faire à la main avec des droits uniquement en lecture, mais il y a un risque d'erreur non négligeable.

Je me demande si c'est possible car les systèmes de fichiers ne connaissent pas "copie" mais uniquement "read" et "write". D'ailleurs si "copie" existait, cela éviterait que les opérations de copie par nfs fasse 1 aller retour entre le serveur et le client.
  • # NTFS

    Posté par  . Évalué à 0.

    NTFS sous Windows supporte cela(ca s'appelle Single Instance Storage), aucune idee si les implementations de NTFS sous Linux le supportent par contre.

    Au pire et si t'as du temps, ca devrait etre implementable sur n'importe quel FS qui supporte des reparse points, mais evidemment va falloir le coder.
  • # cowdancer

    Posté par  . Évalué à 2.

    http://www.netfort.gr.jp/~dancer/software/cowdancer.html.en
    "cowdancer is an userland implementation of copy-on-write filesystem. "
    Voir aussi les liens en bas de page.
  • # Lien hard

    Posté par  . Évalué à 1.

    Ce genre de chose se fait généralement par un lien hard.

    Lorsqu'un lien hard est créé (avec cp ou ln), un même fichier peut être accédé par plusieurs noms différents.

    Si les programmes que tu utilisent pour manipuler ces fichiers sont corrects, ils recréent un nouveau fichier lorsque tu fais un enregistrement, provoquant ainsi une copie à l'écriture. C'est le cas de tous les grands éditeurs: vim, emacs, joe, oowriter...
    Si ton programme se contente de modifier quelques octets dans le fichier, c'est fichu.

    Les développeurs du noyau Linux utilisaient beaucoup cette technique (avant les outils de gestion de version), en faisant une copie de toute l'arborescence sous forme de liens hard (cp -al je crois).
    • [^] # Re: Lien hard

      Posté par  (site web personnel) . Évalué à 2.

      C'est le fait de compter sur le comportement de l'application qui me gène. Cela ne s'applique pas forcément aux gros fichiers, dont il serait trop long de faire une recopie.

      Dans le cas d'utilisation de lien en dur, le fait de le mettre en read-only devrait prévenir un écrasement mais je ne pense pas qu'un rename sois autorisé.

      Est-ce qu'il existe des systèmes de fichiers "indexé par contenu" ? Genre le numero d'inode est une clef sha-256 des 1er Mo du fichier. Dans le cadre d'entreprise, j'ai l'impression qu'il y a des centaines de copies des mêmes fichiers pour chacun des /home/.

      "La première sécurité est la liberté"

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.