Using nearline storage/fr: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
No edit summary
No edit summary
 
(231 intermediate revisions by 6 users not shown)
Line 1: Line 1:
<languages />
<languages />


==Système de fichier virtualisé sur bande==
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.  
Le stockage sur l'[[Project layout/fr|espace projet]] est similaire à celui sur ''nearline'', sauf que ce dernier système de fichiers peut virtualiser les fichiers en les copiant sur bande. C’est une solution pour gérer les fichiers qui sont peu utilisés, car les fichiers sur bande n’affectent pas votre quota de disque et ils demeurent accessibles, avec toutefois un accès moins rapide.


Ceci est utile parce que nos bibliothèques de bandes ont une grande capacité qui peut être agrandie. Quand un fichier est copié sur bande (ou virtualisé), il demeure visible dans la liste des fichiers du répertoire. Si une opération de lecture est faite sur le fichier, le processus de lecture est interrompu pendant un certain temps (probablement quelques minutes) pendant que le contenu du fichier est copié de la bande au disque. Par la suite, les opérations IO s’effectuent de la même manière qu’avec les autres fichiers sur disque.
== Restrictions et meilleures pratiques ==


==Utilité et état==
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.
Le délai de lecture d’un fichier sur bande étant plus long, ''nearline'' n’est pas adéquat dans le cas de tâches où le temps alloué est consommé par ce type d’attente. L’accès à ''nearline'' se fait à partir des nœuds de connexion ou de transfert (DTN pour ''data transfer node'').


''Nearline'' est prévu pour les fichiers de taille relativement grande. Ne l’utilisez pas pour un grand nombre de petits fichiers, car le temps de lecture des fichiers sur bande est plus long que celui des fichiers sur disque et le nombre de lecteurs de bandes est limité.
=== Taille des fichiers ===


''Nearline'' est présentement disponible sur [[Graham/fr|Graham]] et les travaux sont en cours pour le rendre disponible aussi sur [[Cedar/fr|Cedar]] et [[Béluga/fr|Béluga]].
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&nbsp;:


==Utilisation==
* les fichiers de moins de ~10Go devraient être rassemblés dans des fichiers archive (<i>tarballs</i>) avec [[A tutorial on 'tar'/fr|tar]] ou un autre [[Archiving and compressing files/fr|outil semblable]];
Pour utiliser ''nearline'', vous n’avez qu‘à déposer vos fichiers dans votre répertoire <tt>~/nearline/PROJECT</tt>. Après un certain temps (présentement 24 heures), les fichiers seront copiés sur bande. Si aucune modification n’est effectuée au fichier après un certain temps (aussi 24 heures), la copie sur disque est supprimée, virtualisant ainsi le fichier sur bande.  
* les fichiers de plus de 4To devraient être divisés en parts de 1To avec un outil comme [[A_tutorial_on_'tar'/fr#Fractionner_des_fichiers |la commande  <code>split</code>]];
* NE COPIEZ PAS DE PETITS FICHIERS SUR /NEARLINE, à l'exception des index (voir <i>Créer un index</i> ci-dessous).


Le fait d’avoir plusieurs petits fichiers est de mauvaise pratique dans le cas de la plupart des systèmes de stockage de CHP. En fait, il peut même être impossible de copier sur bande des fichiers dont la taille est sous un seuil quelconque. Si vous avez un grand nombre de petits fichiers, nous vous recommandons de les regrouper d’abord avec un outil comme [[Archiving and compressing files|tar]].
=== Choisir entre tar et dar ===


Lorsque vous supprimez un fichier de <tt>~/nearline</tt>, la copie sur bande est conservée pour 60 jours. Pour restaurer ces fichiers, vous devez contacter le [[technical support/fr|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 <tt>ls -R > ~/nearline_contents.txt</tt> lancée du répertoire <tt>~/nearline/PROJECT</tt> vous permettra de voir où sont situés les fichiers dans votre espace ''nearline''.
Utilisez [[A tutorial on 'tar'/fr|tar]] ou [[dar/fr|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 <code>-M (--multi-volume)</code> et <code>-L (--tape-length)</code> de <code>tar</code> peuvent être utilisées pour produire des fichiers archive de taille convenable.
 
Avec <code>dar</code>, utilisez l'option <code>-s (--slice)</code>.
 
==== 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 <tt>verbose</tt> pour obtenir plus de détails.
 
{{Command|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 :
 
{{Command|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 (<i>solid-state drives</i>) 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 ==
 
# À sa création ou quand il est d'abord copié sur /nearline, le fichier existe uniquement sur disque et non sur ruban.
# 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.
# Un peu plus tard, la copie sur disque peut être supprimée et le fichier est sur ruban seulement.
# 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 <i>virtualisé</i>), 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 [[Transferring_data/fr|transfert de vos données]] avec [[Globus/fr|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
{{Command|diskusage_report --nearline --per_user --all_users}}
 
Les différentes valeurs de <code>Location</code> sont :
* <code>On disk and tape</code> : les données sont disponibles sur disque.
* <code>Modified, will be archived again</code> : la dernière version des données est sur disque.
* <code>Archiving in progress</code> : les données sont en train d'être copiées ou déplacées sur ruban.
* <code>On tape</code> : les données sont seulement sur ruban.
 
Ensuite, la commande <tt>lfs hsm_state</tt> permet de savoir si un fichier est sur ruban ou encore sur disque (l'abréviation hsm signifie ''hierarchical storage manager'').
 
<source lang="bash">
#  <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, [...]
</source>
 
Vous pouvez forcer le rappel d'un fichier sur ruban sans le lire avec la commande <tt>lfs hsm_restore <FILE></tt>.
 
=== Spécificités de chaque grappe ===
 
<tabs>
<tab name="Béluga">
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 <tt>~/nearline/PROJECT</tt>. 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 <tt>~/nearline</tt> volontairement ou par accident, la copie sur ruban est conservée pour 60 jours. Pour restaurer ces fichiers, vous devez contacter le [[technical support/fr|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 [[Storage and file management/fr#Quotas_et_politiques|copie de sauvegarde]]. Il est donc important que vous conserviez une copie de la structure complète de votre espace /nearline. La commande <tt>ls -R > ~/nearline_contents.txt</tt> lancée du répertoire <tt>~/nearline/PROJECT</tt> vous permettra de voir où sont situés les fichiers dans votre espace /nearline.
</tab>
 
<tab name="Cedar">
Le service /nearline est semblable à celui de Béluga.
</tab>
 
<tab name="Graham">
Le service /nearline est semblable à celui de Béluga.
</tab>
 
<tab name="Narval">
Le service /nearline est semblable à celui de Béluga.
</tab>
 
<tab name="Niagara">
HPSS est le service /nearline pour Niagara.<br/>
Les méthodes d'accès sont :
 
1. Dans une des partitions archive, soumettre une tâche à l’ordonnanceur Slurm avec les commandes HPSS <tt>htar</tt> ou <tt>hsi</tt>; pour des exemples, voyez la [https://docs.scinet.utoronto.ca/index.php/HPSS 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 <tt>salloc --time=1:00:00 -pvfsshort</tt> 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/fr|Globus]] pour transférer vos fichiers HPSS avec le point de chute (''endpoint'') <b>computecanada#hpss</b>. Cette méthode est utile pour un usage occasionnel ou pour les transferts entre HPSS et les autres sites.
 
</tab>
 
</tabs>

Latest revision as of 22:46, 30 April 2024

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.