NFS me permet-il de dissocier / supprimer des fichiers ouverts comme je peux le faire avec les systèmes de fichiers locaux?
La raison pour laquelle je demande est que je développe quelque chose qui s'exécute sur plusieurs serveurs et peut accéder à NFS en tant que back-end. Cela simplifie quelque peu les choses si je peux faire une dissociation sur un fichier ouvert.
C'est une fonctionnalité intéressante des systèmes de fichiers linux (unix?) Qui vous permet de dissocier un fichier ouvert. Il supprime simplement l'entrée du répertoire. Le fichier est toujours disponible pour un processus qui le maintient ouvert tant qu'il est ouvert. Une fois fermé, l'inode est détruit.
Cette même fonctionnalité est-elle valable pour les fichiers ouverts sur des montages NFS?
Réponses:
La réponse courte est oui avec des mises en garde.
Étant donné que NFSv3 est sans état, le pilote client NFS accomplit cela avec quelque chose appelé "renom idiot", où le fichier supprimé est renommé quelque chose comme .nfsXXXXXXXXXX. Cela fonctionne généralement, mais il y a quelques mises en garde par rapport à un système de fichiers local. Par exemple, si le client plante, ces fichiers .nfsXXXX ne seront pas supprimés et vous devrez les nettoyer manuellement.
Je pense qu'à partir de NFSv4.1, le protocole possède les fonctionnalités requises pour implémenter la suppression à la dernière fermeture sans renommage idiot, mais je ne sais pas si des clients / serveurs implémentent encore cela.
la source