Snapshot quand un fichier est en train de se copier [ZFS] - Divers - Linux et OS Alternatifs
Marsh Posté le 06-01-2014 à 20:57:15
tu dois attendre que le fichier soit fermé pour faire un snapshot, ou copier le fichier pour avoir son contenu a un temps T mais les modifs entre ce temps T et le snapshot ne seront pas sauvés.
Marsh Posté le 09-01-2014 à 13:30:35
Donc si je comprends bien, tout est normal.
Mais en fait, à part exceptions, les snapshots sont faits automatiquement (toutes les heures par exemple). Ce qui fait que des fichiers peuvent être ouverts et en copie au même moment.
Marsh Posté le 09-01-2014 à 19:55:10
oui et non...
tu peux faire un snapshot planifié effectivement mais seuls les fichiers dans leur état à un instant T disons par exemple quelques secondes avant le snapshot sont disponibles.
par exemple tu as 3 fichiers utilisés/ouverts à ces moments : (fermé=enregistrés)
Snapshot1 : fichier1=ouvert, fichier2=ouvert, fichier3=fermé
Snapshot2 : fichier1=ferme, fichier2=ouvert, fichier3=fermé
Snapshot3 : fichier1=ferme, fichier2=fermé, fichier3=fermé
Snapshot4 : fichier1=ouvert, fichier2=fermé, fichier3=ouvert.
et là tu veux restaurer depuis ces snapshot le fichier1
le contenu du fichier1 sera le contenu validé le plus récent donc identique au fichier1 du snapshor 3meme si tu restore le snapshot4 et idem pour le fichier3
Marsh Posté le 06-01-2014 à 19:27:13
Bonjour !
Config : FreeNAS-9.1.1-RELEASE-x64 (a752d35) + client Windows 7
Je me demandais ce qui arrivait lorsqu'un snapshot est effectué pendant la copie d'un fichier volumineux. Autrement dit, avant que le fichier soit intégralement copié.
J'ai donc fait un essai via samba : j'ai lancé une copie d'un fichier de 4 Go et j'ai fait un snapshot en plein milieu de la copie, avant la fin du transfert.
En navigant dans le dossier du snapshot, je me retrouve donc avec un fichier qui semble complet (d'après « ls -l ») mais qui ne l'est pas (la somme MD5 n'est pas bonne).
# Fichier (incomplet) dans le snapshot.
[a@freenas] /mnt/vol/a/test/.zfs/snapshot/1% ls -l
-rw------- 1 a utilisateurs 4103075840 Jan 5 19:27 fichier_test.iso # La taille semble bonne mais en réalité le fichier est incomplet.
[a@freenas] /mnt/vol/a/test/.zfs/snapshot/1% md5 fichier_test.iso
MD5 (fichier_test.iso) = b379ce8f825f13f90067e4a38d151322 # Pour preuve : le MD5 n'est pas correct.
# Fichier copié (complet).
[a@freenas] /mnt/vol/a/test% ls -l
-rw------- 1 a utilisateurs 4103075840 Dec 25 16:23 fichier_test.iso
[a@freenas] /mnt/vol/a/test% md5 fichier_test.iso
MD5 (fichier_test.iso) = 4a1847d849e7732d4583d8875c228669 # MD5 correct.
Ce comportement est peut-être normal mais, sauf erreur de ma part, s'il y a une écriture en plein milieu d'un snapshot, le snapshot contiendra juste le début du fichier.
En fait, j'aurais préféré tout ou rien : le fichier complet ou pas de fichier du tout plutôt qu'un fichier incomplet.
J'ai peur d'avoir des bizarreries si je restaure un fichier provenant d'un snapshot !