Network File System
Fonction | Partage de fichiers |
---|---|
Sigle | NFS |
Date de création | 1984 |
Port | 2049[1] |
RFC |
1989 : RFC 1094 1995 : RFC 1813 2003 : RFC 3530 2010 : RFC 5661 |
Network File System (ou NFS), littéralement système de fichiers en réseau, est à l'origine un protocole développé par Sun Microsystems en 1984[2] qui permet à un ordinateur d'accéder via un réseau à des fichiers distants. Il fait partie de la couche application du modèle OSI et utilise le protocole RPC.
Ce système de fichiers en réseau permet de partager des données principalement entre systèmes UNIX. Des versions existent pour Macintosh ou Microsoft Windows.
NFS est compatible avec IPv6 sur la plupart des systèmes[3].
NFS versions 1, 2 et 3
Les versions 1 et 2 sont non sécurisées, prévues pour fonctionner sur UDP.
La version 3 est étendue pour prendre en charge TCP.
Dans ces versions, la gestion de la sécurité reste élémentaire et souffre d'importantes lacunes. Le système est sans état (stateless) et ne permet pas la reprise sur incident.
NFSv4
Inspirée d'Andrew File System (AFS), la version 4 du protocole marque une rupture totale avec les versions précédentes. L'ensemble du protocole est repensé, et le code totalement réécrit. Il s'agit d'un système de fichiers objet.
Imaginé pour répondre aux besoins d'Internet, NFSv4 intègre :
- Une gestion totale de la sécurité :
- Négociation du niveau de sécurité entre le client et le serveur
- Sécurisation simple, support de Kerberos5, certificats SPKM et LIPKEY[4]
- Chiffrement des communications possible (kerberos 5p par exemple)
- Support accru de la montée en charge :
- Réduction du trafic par groupement de requêtes (compound)
- Délégation (le client gère le fichier en local)
- Systèmes de maintenances simplifiés :
- Migration : le serveur NFS est migré de la machine A vers la machine B de manière transparente pour le client
- Réplication : le serveur A est répliqué sur la machine B
- Reprise sur incidents
- La gestion de la reprise sur incident est intégrée du côté client et du côté serveur.
- Compatibilité :
- NFSv4 peut être utilisé sous Unix et sous MS-Windows. Il est disponible sur Mac depuis Mac OS X Lion (10.7)[5].
- Support de plusieurs protocoles de transports (TCP, RDMA).
Cependant ces améliorations de NFSv4 le rendent incompatible avec NFSv3. Notamment, la reprise sur incident et la délégation impliquent que NFSv4 soit un serveur à état (statefull), non compatible avec les précédentes versions. De plus, NFSv4 n'est pas prévu pour pouvoir utiliser le protocole UDP.
NFSv4 suppose l'utilisation d'UTF-8, pour les noms de fichiers, sans que ce soit obligatoire.
Pour toutes ces raisons il est hautement préférable d'utiliser NFSv4 plutôt que NFSv3, dans la mesure où une migration totale est possible.
NFSv4.1
La version 4.1 de NFS a été publiée dans le RFC 5661 en [6]. Cette version issue de NFSv4 est inspirée de pNFS et de Lustre, ainsi que des protocoles internet tels que HTTP. Elle tire parti de la conception objet du protocole. La notion de géométrie de fichier et celle de segments de fichier sont désormais abstraites : elles peuvent être parallélisées ou utiliser des chemins multiples vers les données. L'utilisation de fichiers de type "sparse file" est optimisée. Le transport de données est également abstrait, et est maintenant indépendant non seulement de TCP mais aussi de IP. La notion de session fait son apparition.
- Délégation par répertoires
- Sessions : la session d'un utilisateur peut être rétablie après interruption.
- Abstraction de la géométrie de fichiers :
- Parallélisation des accès aux fichiers (striping).
NFSv4.2
La version 4.2 de NFS a été publiée dans le RFC 7862 en [7].
Références
- (en) « Network File System (NFS) version 4 Protocol », Request for comments no 3530,
- http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.14.473
- Dont Linux (client et serveur), Solaris, AIX
- Les mécanismes SPKM et LIPKEY sont en voie de disparition (retrait du noyau Linux, résumé de la situation dans OpenSolaris), un remplaçant possible semble être pku2u [1]
- Pages des fonctionnalités de Mac OS X Lion (site officiel)
- (en) « Network File System (NFS) Version 4 Minor Version 1 Protocol », Request for comments no 5661,
- Thomas Haynes, « NFS Version 4 Minor Version 2 »
Voir aussi
Articles connexes
Systèmes de fichiers réseaux non parallèles :
Systèmes de fichiers parallélisés :
Liens externes
- (en) RFC 3530 - Network File System (NFS) version 4 Protocol
- (en) RFC 3010 - NFS version 4 Protocol (rendu obsolète par RFC 3530)
- (en) RFC 1813 - NFS Version 3 Protocol Specification
- (en) RFC 1094 - NFS: Network File System Protocol Specification
- (en) HOWTO décrivant les différences majeures entre la version 3 et la version 4 du protocole NFS