Partager via


Personnaliser l’écriture du fichier dans Azure HPC Cache

Les utilisateurs HPC Cache peuvent demander à ce que le cache écrive des fichiers individuels spécifiques dans le stockage principal à la demande à l’aide de l’utilitaire flush_file.py. Cet utilitaire est un package logiciel téléchargé séparément que vous installez et utilisez sur des ordinateurs clients Linux.

Cette fonctionnalité est conçue pour les situations où vous souhaitez que les modifications apportées aux fichiers mis en cache soient disponibles dès que possible pour les systèmes qui ne montent pas le cache.

Par exemple, vous pouvez utiliser Azure HPC Cache pour mettre à l’échelle vos travaux de calcul dans le cloud, mais stocker votre jeu de données définitivement dans un centre de données local. Si des tâches de calcul se produisent au centre de données qui dépendent des modifications créées avec Azure HPC Cache, vous pouvez utiliser cet utilitaire pour « envoyer » la sortie ou les modifications générées par une tâche cloud vers le stockage NAS local. Cela permet aux nouveaux fichiers d’être utilisés presque immédiatement par des ressources de calcul locales.

Choisir entre l’écriture différée personnalisée et le vidage

Vous pouvez forcer l’écriture des données avec l’option « vidage de la cible de stockage » intégrée à Azure HPC Cache, mais cette approche peut ne pas être appropriée pour toutes les situations.

  • L’écriture de tous les fichiers modifiés dans le système de stockage peut prendre plusieurs minutes ou même des heures, selon la quantité de données et la vitesse de la liaison réseau vers le système local. En outre, vous ne pouvez pas choisir uniquement les fichiers dont vous avez terminé l’écriture ; les fichiers qui sont toujours en cours de modification seront inclus dans ce calcul.

  • Le cache peut bloquer le traitement de certaines requêtes de cette cible de stockage pendant le processus de vidage. Cela peut retarder le traitement s’il existe d’autres clients de calcul utilisant des fichiers qui résident sur la même cible de stockage.

  • Le déclenchement de cette action nécessite l’accès Contributeur à Azure Resource Manager, que les utilisateurs finaux n’ont peut-être pas.

Par exemple, vous pouvez avoir plusieurs travaux de calcul parallèles (mais qui ne se chevauchent pas) qui consomment des données résidant sur la même cible de stockage HPC Cache. Quand un travail est terminé, vous souhaitez écrire immédiatement la sortie de ce travail du cache vers votre stockage à long terme sur le back-end.

Trois options s’offrent à vous :

  • Attendre que les fichiers mis en cache soient automatiquement réécrits à partir du cache, mais les fichiers peuvent résider dans le cache pendant plus d’une heure avant d’être entièrement réécrits. Le moment dépend du délai d’écriture différée de votre modèle d’utilisation du cache, ainsi que d’autres facteurs, comme les performances de liaison réseau et la taille des fichiers. (Pour en savoir plus sur le délai d’écriture différée, consultez Comprendre les modèles d’utilisation du cache.)

  • Vider immédiatement les fichiers mis en cache pour l’intégralité de la cible de stockage, mais cela perturberait les autres travaux de calcul qui utilisent également les données de cette cible de stockage.

  • Utilisez cet utilitaire d’écriture différée personnalisé pour envoyer une requête NFS spéciale au cache pour écrire uniquement les fichiers spécifiques souhaités. Ce scénario n’interrompt pas l’accès pour les autres clients et peut être déclenché à tout moment dans la tâche de calcul.

À propos de l’utilitaire d’écriture différée

L’utilitaire d’écriture différée possède un script que vous pouvez utiliser pour spécifier des fichiers individuels qui seront écrits du cache vers le système de stockage à long terme.

Le script prend un flux d’entrée des fichiers à écrire, ainsi que le chemin d’accès de l’espace de noms de cache vers votre exportation cible de stockage et une adresse IP de montage HPC Cache.

Le script utilise un appel « commit » NFSv3 avec des arguments spéciaux activés. Le client nfs-common Linux ne peut pas transmettre ces arguments de manière appropriée, ainsi l’utilitaire flush_file.py utilise un émulateur client NFS dans une bibliothèque Python pour communiquer avec le service NFS HPC Cache. La bibliothèque inclut tout ce qui est nécessaire, ce qui contourne toutes les limitations qui peuvent exister dans le client NFS basé sur noyau Linux du client de calcul.

Pour utiliser cette fonction, vous devez procéder comme suit :

En savoir plus sur l’installation et l’utilisation du script flush_file.py dans le référentiel GitHub.