Liens connexes

Dépêche modérée par

Dépêche éditée par

: ext3cow : système de fichier versionné

Posté par Nÿco (Jabber id, page perso, ). Modéré le 07 mai 2007.
1
ext3cow est un système de fichier versionné basé sur ext3. Il fonctionne sur le noyau Linux 2.6, est disponible sous forme de patch, et il est bien entendu opensource. ext3cow (third extended filesystem, copy-on-write) permet aux utilisateurs de voir leur système de fichier (fichiers et répertoires) comme il était à n'importe quel point dans le temps passé (« timeshifting »).

Cela peut être utile pour la gestion de révision évidemment (code source, documentation, fichiers personnels, etc.), mais aussi la détection d'intrusions, la prévention de perte de données et également pour répondre aux besoins légaux de rétention de données.

Certains points de ext3cow sont intéressants :
  • il ne pollue pas les répertoires de copies de fichiers nommés (généralement suffixés) par un identifiant de version ;
  • il consomme peu en terme de stockage (5 à 15 % de metadata) et performance (lors des snapshots) ;
  • il est modulaire et ne nécessite pas de changements du noyau ou des interfaces VFS.

Le concept de système de fichiers versionnés n'est pas nouveau (euphémisme), mais ext3cow diffère des autres par de nombreux avantages (voir synthèse en PDF), dont le fait qu'il référence des versions à n'importe quelle date dans le temps et pas par des identifiants de version (qu'il faut évidemment connaître). ext3cow est bien entendu incompatible avec ext2/ext3, mais il devrait apparaître des outils de conversion triviaux rapidement car il y a regain d'intérêt dû à une brève sur Slashdot.

> Lire la suite (47 commentaires, moyenne: 3,5).   [dépêche : 0 caractères]

Exemple rapide :
[user@machine] echo "This is the original foo.txt" > foo.txt
[user@machine] snapshot
Snapshot on . 1057845484
[user@machine] echo "This is the new foo.txt." > foo.txt
[user@machine] cat foo@1057845484
This is the original foo.txt.
[user@machine] cat foo
This is the new foo.txt.
[user@machine] snapshot /usr/bin
Snapshot on /usr/bin 1057866367
[user@machine] ln -s /usr/bin@1057866367 /usr/bin.preinstall
[user@machine] /usr/bin.preinstall/gcc

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

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

intéressant

Posté par Farvardin (page perso, ) le 07/05/2007 à 12:50. (lien). Évalué à 8.

c'est intéressant, et cela à l'air sympa à utiliser. Par contre est-ce que cela ne fait pas un peu redondance face à un système comme zfs, qui semble plus puissant tout en offrant entre autres cette fonctionnalité, et surtout qui permettrait d'avoir un système de fichier compatible linux, *bsd et mac osx ?

--
You can't grep dead trees...

IPoT

Posté par Elephant (page perso, ) le 07/05/2007 à 13:53. (lien). Évalué à 10.

Couplé avec l'IPot ça peut devenir un outil surpuissant pour prévoir les intrusions futures et les éviter.

ext3cow couplé à IPoT, quelques scripts pour régler à la volée le firewall : je crois qu'on a là une protection ultime :)

mouai

Posté par Laurent J (page perso, ) le 07/05/2007 à 16:20. (lien). Évalué à 2.

dont le fait qu'il référence des versions à n'importe quelle date dans le temps et pas par des identifiants de version


Ce ne sont peut etre pas des identifiants de version, mais quand je vois ça

cat foo.txt@1057845484


pour moi, ce numéro est tout aussi cryptique qu'un simple numéro de version. Je doute en effet que la majorité des utilisateurs savent faire de tête des conversions de date en nombre de secondes depuis 01/01/70..

Bref, je ne vois pas en quoi c'est un avantage par rapport à un simple numéro de serie (pour l'utilisateur j'entend).

À moins qu'on puisse indiquer une vraie date genre foo.txt@2006-04-21_12h35
(oui, j'ai pas lu la doc, la flemme d'ouvrir tout ces pdf)

A quand la versionnalisation du future?

Posté par dmg () le 07/05/2007 à 16:38. (lien). Évalué à 6.

[user@time-machine] echo "This is the original foo.txt" > foo.txt
[user@time-machine] snapshot
Snapshot on . 1057845484
[user@time-machine] echo "This is the new foo.txt." > foo.txt
[user@time-machine] cat foo@1057845487
This is the future foo.txt.


Ca serait bien j'aurais plus qu'a faire un "cat these.tex.01012009" pour avoir ma these :p

en mieux

Posté par z a (Jabber id, ) le 07/05/2007 à 16:43. (lien). Évalué à 5.

pour disposer de ce genre de fonctions sans avoir besoin de dépendre de ext3 ou de patcher son kernel (et qui utilise FUSE donc un peu plus multi-os) :
http://wayback.sourceforge.net/
http://n0x.org/copyfs/
(entre autres)

snapshot

Posté par Matthieu C () le 07/05/2007 à 17:41. (lien). Évalué à 7.

[user@machine] echo "This is the original foo.txt" > foo.txt
[user@machine] snapshot
Snapshot on . 1057845484


Arf, c'est qu'un système de snapshot, moi qui croyait qu'a chaque modif du fichier (open/close ?) une version était crée...

Intérêt ?

Posté par Xavier Maillard (Jabber id, page perso, ) le 07/05/2007 à 18:10. (lien). Évalué à 3.

Avec ma (dé)formation de dévelopeur je me suis imaginé un système où il fallait entrer un descriptif pour chaque modification :)

Suis-je le seul à penser que les bons vieux backup de dino sont les seules solutions *fiables* pour garder une trace/l'historique des modifications faites sur un système de fichiers ?

Et puis quand je lis que le système consomme peu de ressources de stockages (entre 5 et 15%), je me gausse. 15%, ça commence à se chiffrer pour un truc qui in fine, ne servira que rarement. Où alors je n'ai pas bien saisi l'utilité de la chose.

P.S: au fait, Emacs fait ça depuis des années, c'est simple, il laisse trainer des fichiers partout, du coup je retrouve facilement les X dernières versions de chaque fichier modifié sans me gratter la tête

Revenir en haut de page