Stockage /nearline

From Alliance Doc
Jump to navigation Jump to search
This page is a translated version of the page Using nearline storage and the translation is 100% complete.
Other languages:

Le système de fichiers /nearline utilise de l'espace de stockage sur ruban et sert à conserver les données inactives, par exemple les ensembles de données que vous n'avez pas besoin d'utiliser pendant des mois.

Restrictions et meilleures pratiques

Il n'est pas nécessaire ce compresser les données que vous voulez copier sur /nearline puisque le système d'archivage sur ruban le fait automatiquement.

Taille des fichiers

S'il n'est pas efficace de récupérer des petits fichiers enregistrés sur ruban, récupérer de très gros fichiers pose d'autres problèmes. Nous vous demandons d'observer les règles suivantes :

  • les fichiers de moins de ~10Go devraient être rassemblés dans des fichiers archive (tarballs) avec tar ou un autre outil semblable;
  • les fichiers de plus de 4To devraient être divisés en parts de 1To avec un outil comme la commande split;
  • NE COPIEZ PAS DE PETITS FICHIERS SUR /NEARLINE, à l'exception des index (voir Créer un index ci-dessous).

Choisir entre tar et dar

Utilisez tar ou dar pour créer un fichier archive. Gardez les fichiers source dans leur système de fichiers d'origine. Ne copiez pas les fichiers source dans /nearline avant de créer l'archive.

Si vous avez plusieurs centaines de Go de données, les options -M (--multi-volume) et -L (--tape-length) de tar peuvent être utilisées pour produire des fichiers archive de taille convenable.

Avec dar, utilisez l'option -s (--slice).

Créer un index

Quand des fichiers sont regroupés, avec tar par exemple, il devient difficile de repérer un fichier particulier. Plutôt que de récupérer une grande collection enregistrée sur ruban pour seulement quelques fichiers, vous pourriez construire un index au moment où la collection est créée. Avec tar, vous pouvez ajouter l'option verbose pour obtenir plus de détails.

Question.png
[name@server ~]$ tar cvvf /nearline/def-sponsor/user/mycollection.tar /project/def-sponsor/user/something > /nearline/def-sponsor/user/mycollection.index

Si l'archive vient d'être créée, la commande suivante (avec tar dans cet exemple) crée l'index :

Question.png
[name@server ~]$ tar tvvf /nearline/def-sponsor/user/mycollection.tar > /nearline/def-sponsor/user/mycollection.index

Même s'il s'agit souvent de petits fichiers, les fichiers d'index peuvent être enregistrés dans /nearline.

Pas d'accès à partir des nœuds de calcul

Puisque l'obtention de données dans /nearline peut prendre un certain temps (voir la section Fonctionnement ci-dessous), nous ne permettons pas que les tâches y lisent des données. /nearline n'est pas monté sur les nœuds de calcul.

Utiliser un nœud de transfert, si possible

Comme la création de fichiers archive exige beaucoup des ressources, il est préférable d'utiliser un nœud de transfert de données (DTN) plutôt qu'un nœud de connexion si vous pouvez vous connecter à la grappe par un nœud DTN.

Avantages

Les avantages du stockage sur ruban par rapport aux disques et aux SSD (solid-state drives) sont :

  • le coût par unité de données stockée est moindre;
  • la capacité de stockage peut être facilement augmentée par l'achat de rubans additionnels;
  • la consommation énergétique par unité de données stockée est effectivement nulle.

Par conséquent, nous pouvons offrir beaucoup plus de capacité de stockage sur /nearline que sur /project. De plus, le fait de ne pas stocker de données inactives sur /project allège la charge et améliore la performance.

Fonctionnement

  1. À sa création ou quand il est d'abord copié sur /nearline, le fichier existe uniquement sur disque et non sur ruban.
  2. Après un certain temps (environ une journée) et si le fichier remplit certains critères, il est copié sur ruban et se trouve alors sur disque et sur ruban.
  3. Un peu plus tard, la copie sur disque peut être supprimée et le fichier est sur ruban seulement.
  4. Quand un tel fichier est rappelé, il est copié du ruban au disque et revient au deuxième état.

Quand un fichier est entièrement copié sur ruban (ou virtualisé), il demeure visible dans la liste des fichiers du répertoire. Si une opération de lecture est faite sur le fichier virtuel, le ruban doit être trouvé dans la bibliothèque et la copie doit se faire sur le disque, ce qui prend du temps et bloque le processus qui tente de faire la lecture. Selon la taille du fichier et les demandes au système de stockage sur ruban, ceci peut nécessiter entre moins d'une minute et plus d'une heure.

Transférer des données à partir de /nearline

Pendant le transfert de vos données avec Globus ou tout autrement, les données exclusivement sur ruban seront automatiquement restaurées sur disque à leur simple lecture. Cependant, puisque l'accès aux données sur ruban est relativement lent, chaque restauration de fichier ralentira le transfert de quelques secondes à quelques minutes. Par conséquent, il faut s'attendre à ce que les transferts à partir de /nearline prennent plus de temps.

Pour avoir un aperçu de l'état des fichiers dans vos espaces /nearline, certaines grappes peuvent présenter un sommaire avec la commande

Question.png
[name@server ~]$ diskusage_report --nearline --per_user --all_users

Les différentes valeurs de Location sont :

  • On disk and tape : les données sont disponibles sur disque.
  • Modified, will be archived again : la dernière version des données est sur disque.
  • Archiving in progress : les données sont en train d'être copiées ou déplacées sur ruban.
  • On tape : les données sont seulement sur ruban.

Ensuite, la commande lfs hsm_state permet de savoir si un fichier est sur ruban ou encore sur disque (l'abréviation hsm signifie hierarchical storage manager).

#  <FILE> se trouve seulement sur disque.
$ lfs hsm_state <FILE>
<FILE>:  (0x00000000)

# <FILE> est présentement copié sur ruban.
$ lfs hsm_state <FILE>
<FILE>: [...]: exists, [...]

# <FILE> se trouve à la fois sur disque et sur ruban.
$ lfs hsm_state <FILE>
<FILE>: [...]: exists archived, [...]

# <FILE> se trouve sur ruban et n'est plus sur disque; ouvrir ce fichier prendra plus de temps. 
$ lfs hsm_state <FILE>
<FILE>: [...]: released exists archived, [...]

Vous pouvez forcer le rappel d'un fichier sur ruban sans le lire avec la commande lfs hsm_restore <FILE>.

Spécificités de chaque grappe

L'accès au répertoire /nearline se fait par les nœuds de connexion et les DTN (Data Transfer Nodes).

Enregistrez vos fichiers dans votre répertoire ~/nearline/PROJECT. Ils seront copiés sur ruban après un certain temps (24 heures en date de février 2019). Si le fichier n’est pas modifié pendant un certain temps (24 heures en date de février 2019), la copie sur disque sera supprimée, virtualisant ainsi le fichier sur ruban.

Lorsque vous supprimez un fichier de ~/nearline volontairement ou par accident, la copie sur ruban est conservée pour 60 jours. Pour restaurer ces fichiers, vous devez contacter le soutien technique en mentionnant le chemin complet et la version (avec la date), de la même manière que vous procéderiez pour restaurer une copie de sauvegarde. Il est donc important que vous conserviez une copie de la structure complète de votre espace /nearline. La commande ls -R > ~/nearline_contents.txt lancée du répertoire ~/nearline/PROJECT vous permettra de voir où sont situés les fichiers dans votre espace /nearline.

Le service /nearline est semblable à celui de Béluga.

Le service /nearline est semblable à celui de Béluga.

Le service /nearline est semblable à celui de Béluga.

HPSS est le service /nearline pour Niagara.
Les méthodes d'accès sont :

1. Dans une des partitions archive, soumettre une tâche à l’ordonnanceur Slurm avec les commandes HPSS htar ou hsi; pour des exemples, voyez la documentation HPSS. Travailler avec des scripts offre l’avantage de pouvoir automatiser les transferts; il s’agit de la meilleure méthode si vous utilisez HPSS régulièrement. Vos fichiers HPSS se trouvent dans le répertoire $ARCHIVE, qui est semblable à $PROJECT, mais où /project est remplacé par /archive.

2. Utiliser le nœud VFS (virtual file system) par la commande salloc --time=1:00:00 -pvfsshort quand vous avez peu de fichiers HPSS. Vos fichiers HPSS se trouvent dans le répertoire $ARCHIVE, qui est semblable à $PROJECT, mais où /project est remplacé par /archive.

3. Utilisez Globus pour transférer vos fichiers HPSS avec le point de chute (endpoint) computecanada#hpss. Cette méthode est utile pour un usage occasionnel ou pour les transferts entre HPSS et les autres sites.