Personnaliser l’écriture différée de fichiers dans Azure HPC Cache

Les utilisateurs hpC Cache peuvent demander que le cache écrive des fichiers individuels spécifiques dans le stockage principal à la demande à l’aide de l’utilitaire de 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 informatiques 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 dans le centre de données qui dépendent des modifications créées avec Azure HPC Cache, vous pouvez utiliser cet utilitaire pour « envoyer ( push ») 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 les ressources de calcul locales.

Choisir entre la réécriture personnalisée et le vidage

Vous pouvez forcer l’écriture des données avec l’option « vidage cible de stockage » intégrée à Azure HPC Cache, mais cette approche peut ne pas être adaptée à 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, en fonction de la quantité de données et de la vitesse de la liaison réseau vers le système local. En outre, vous ne pouvez pas choisir uniquement les fichiers que vous avez terminés pour être écrits ; 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 un accès contributeur à Azure Resource Manager, que les utilisateurs finaux n’ont peut-être pas.

Par exemple, vous pouvez avoir plusieurs tâches 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. Une fois une tâche terminée, vous souhaitez écrire immédiatement la sortie de ce travail du cache vers votre stockage à long terme sur le serveur principal.

Trois options s’offrent à vous :

  • Attendez que les fichiers mis en cache soient automatiquement réécrits à partir du cache, mais les fichiers peuvent s’asseoir dans le cache pendant plus d’une heure avant qu’ils ne soient entièrement réécrits. La synchronisation dépend du délai d’écriture différée de votre modèle d’utilisation du cache, ainsi que d'autres paramètres tels que les performances des connexions réseau et la taille des fichiers. (Découvrez les modèles d’utilisation du cache pour en savoir plus sur le délai d’écriture différée.)

  • Videz immédiatement les fichiers mis en cache pour l’ensemble de la cible de stockage , mais cela perturberait d’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 demande NFS spéciale au cache pour réécrire uniquement les fichiers spécifiques souhaités. Ce scénario n’interrompt pas l’accès pour d’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 a un script que vous pouvez utiliser pour spécifier des fichiers individuels qui seront écrits à partir du cache vers le système de stockage à long terme.

Le script prend un flux d'entrée des fichiers à écrire, plus le chemin du namespace du cache vers votre cible d'exportation de stockage et une adresse IP de montage du Cache HPC.

Le script utilise un appel « commit » NFSv3 avec des arguments spéciaux activés. Le client nfs-common Linux ne peut pas passer ces arguments de manière appropriée. Par conséquent, l’utilitaire flush_file.py utilise un émulateur de 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 le noyau Linux de votre client de calcul.

Pour utiliser cette fonctionnalité, vous devez effectuer les opérations suivantes :

  • Installez la hpc-cache-nfsv3-client bibliothèque à partir du dépôt gitHub Microsoft HPC-Cache-NFSv3-client à l’adresse https://github.com/microsoft/hpc-cache-nfsv3-client. sur un ou plusieurs clients de calcul informatique. Les informations et instructions requises sont incluses dans le fichier README du référentiel.

  • Utilisez le script « flush_file.py » inclus pour indiquer au cache d’écrire les fichiers exacts dont vous avez besoin dans le système de stockage à long terme.

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