Les fichiers ouverts peuvent-ils être dissociés sur des volumes montés NFS alors que les applications qui en disposent encore sont ouvertes en lecture / écriture?

9

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?

Mat
la source
Vous voudrez peut-être reformuler (pour éviter les votes), à première vue, il semble que vous demandez si vous pouvez supprimer des fichiers à l'aide de NFS, ce qui m'a laissé perplexe sur la raison pour laquelle vous poseriez une question aussi fondamentale avec le nombre de points que vous avoir. :-)
Red Tux

Réponses:

9

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.

janneb
la source
Il convient de noter que cela ne fonctionne que lorsque le fichier est ouvert sur le même client qui le dissocie, car NFS est sans état.
Quentin Casasnovas