Répertoire /scratch ː Purge automatique

From Alliance Doc
Revision as of 15:20, 15 March 2019 by FuzzyBot (talk | contribs) (Updating to match new version of source page)
Jump to navigation Jump to search
Other languages:

Page enfant de Storage and file management


Sur les grappes de Calcul Canada, le système de fichiers scratch sert au stockage rapide et temporaire des données utilisées en cours d'exécution. Pour leur part, les données qui doivent être stockées à long terme et les données de référence sont enregistrées dans l'espace /project ou dans une des zones d'archivage. Pour toujours garder suffisamment d'espace scratch, les fichiers sont supprimés périodiquement aux 60 jours, en fonction de leur âge; cette période correspond à un peu plus du double de la durée maximale d'une tâche.

Procédure

À la fin de chaque mois, les fichiers susceptibles d'être supprimés le 15 du mois suivant sont repérés. Au premier jour du mois, un message d'avertissement est affiché aux utilisateurs qui possèdent au moins un de ces fichiers et un avis leur est envoyé par courriel; cet avis contient aussi une liste de tous les fichiers susceptibles d'être supprimés. Vous avez donc deux semaines pour copier les fichiers que vous voulez conserver.

Le 12 du mois, un dernier avis est envoyé avec une liste à jour des fichiers susceptibles d'être supprimés le 15, ce qui vous laisse 72 heures pour déplacer vos fichiers. Le 15 du mois en fin de journée, tous les fichiers dans l'espace scratch pour lesquels ctime et atime sont de plus de 60 jours sont supprimés. Ces fichiers ne doivent pas se trouver dans l'espace scratch et Calcul Canada émet cet avertissement uniquement à titre de courtoisie.

Prenez note que le fait de copier un fichier ou d'utiliser la commande rsync pour le déplacer modifie atime et fait que le fichier ne sera pas considéré lors de la purge. Une fois les données déplacées, veuillez supprimer les fichiers et répertoires d'origine plutôt que d'attendre qu'ils soient supprimés par la procédure de purge.

Connaître l'âge d'un fichier

L'âge d'un fichier est déterminé par :

  • atime, le moment du dernier accès et
  • ctime, le moment de la dernière modification.

Pour trouver ctime utilisez

Question.png
[name@server ~]$ ls -lc <filename>

Pour trouver atime utilisez

Question.png
[name@server ~]$ ls -lu <filename>

Le paramètre (mtime) n'est pas utilisé parce que sa valeur peut être modifiée par l'utilisateur ou par un autre programme pour afficher une fausse information.

Il serait suffisant de n'utiliser que atime étant donné que sa valeur est mise à jour par le système en synchronisation avec ctime. Par contre, les programmes à l'intérieur de l'espace d'un utilisateur peuvent potentiellement modifier atime pour situer sa valeur dans le passé. Le fait d'utiliser aussi ctime ajoute un deuxième niveau de contrôle.

Mauvaises pratiques

Il demeure cependant possible de fausser l'âge des fichiers avec l'exécution périodique de la commande récursive touch. Notre équipe technique dispose toutefois de moyens pour détecter ce genre de pratique et les utilisateurs qui s'y prêtent seront priés de retirer les fichiers trafiqués de l'espace scratch.

How to safely copy a directory with symlinks

In most cases, cp or rsync will be sufficient to copy data from scratch to project. But if you have symbolic links in scratch, copying them will cause problems since they will still point to scratch. To avoid this, you can use tar to make an archive of your files on scratch, and extract this archive in your project. You can do this in one go:

cd /scratch/.../your_data
mkdir project/.../your_data
tar cf - ./* | (cd /project/.../your_data && tar xf -)