Qu’est-ce que Network File System (NFS)
Network File System (NFS), est un protocole inventé dans les années 80 pour faciliter le partage de fichiers à distance entre serveurs. Il existe plusieurs versions de NFS. NFS v3 est la plus courante. NFS est facile à utiliser et à gérer et nécessite un client dans le noyau qui supporte le montage NFS.
Avantages de l’utilisation de NFS
Au fil des ans, NFS a évolué pour prendre en charge une sécurité accrue, un meilleur partage des fichiers (verrouillage) et de meilleures performances (mise en cache). De plus, il s’agit d’une solution relativement abordable et facile à utiliser pour le partage de fichiers en réseau qui utilise l’infrastructure existante du protocole Internet.
Actuellement, voici les avantages du service NFS :
- Plusieurs clients peuvent utiliser les mêmes fichiers, ce qui permet à tous les membres du réseau d’utiliser les mêmes données, en y accédant sur des hôtes distants comme s’il s’agissait de fichiers locaux.
- Les ordinateurs partagent les applications, ce qui élimine les besoins en espace disque local et réduit les coûts de stockage.
- Tous les utilisateurs peuvent lire les mêmes fichiers, ce qui permet de maintenir les données à jour et d’assurer leur cohérence et leur fiabilité.
- Le montage du système de fichiers est transparent pour tous les utilisateurs.
- La prise en charge des environnements hétérogènes vous permet d’exécuter des technologies mixtes provenant de plusieurs fournisseurs et d’utiliser des composants interopérables.
- Les frais d’administration du système sont réduits grâce à la centralisation des données.
- La diminution du nombre de disques et de lecteurs amovibles permet de réduire les problèmes de sécurité, ce qui est toujours une bonne chose !
Comment fonctionne le système de fichiers du réseau ?
Fondamentalement, le protocole client-serveur NFS commence par une commande « mount », qui spécifie les options ou attributs logiciels du client et du serveur. NFSv4 est un protocole à état, avec plus de 30 options uniques qui peuvent être spécifiées sur la commande mount, allant de la taille du bloc en lecture/écriture au protocole utilisé. Les protocoles de sécurité valident l’accès du client aux fichiers de données ainsi que les options de sécurité des données, etc.
Parmi les options logicielles les plus intéressantes du protocole NFS figurent les options de mise en cache, les caractéristiques de verrouillage des fichiers partagés et la prise en charge de la sécurité. Le verrouillage des fichiers et la mise en cache interagissent, et les deux doivent être correctement spécifiés pour que l’accès aux fichiers partagés fonctionne. Si les données d’un fichier (en lecture ou en écriture) ne résident que dans le cache d’un hôte et qu’un autre hôte tente d’accéder au même fichier, les données qu’il lit peuvent être erronées, à moins que les deux (ou plutôt) tous les clients du serveur de stockage NFS utilisent les MÊMES options de verrouillage et de mise en cache pour le système de fichiers monté.
Le verrouillage des fichiers a été conçu pour prendre en charge l’accès partagé aux fichiers. C’est-à-dire lorsqu’un fichier est accessible par plus d’une application ou d’un thread (de calcul). L’accès partagé aux fichiers peut se produire au sein d’un seul hôte (avec ou sans multi-core/multi-thread) ou entre différents hôtes accédant au même fichier via NFS.
Inconvénients du système de fichiers réseau
La norme Internet NFS actuelle présente de nombreux inconvénients qui peuvent ou non être résolus à l’avenir ; par exemple, certaines critiques de NFSv4 et NFSv4.1 suggèrent que ces versions ont une bande passante et une évolutivité limitées (améliorées avec NFSv4.2) et que NFS ralentit en cas de trafic réseau intense. En voici d’autres :
- Sécurité – Tout d’abord, il y a un problème de sécurité, étant donné que NFS est basé sur des RPC qui sont intrinsèquement non sécurisés et ne devraient être utilisés que sur un réseau de confiance derrière un pare-feu. Sinon, NFS sera vulnérable aux menaces Internet.
- Bavardage du protocole – Le protocole client-serveur NFS nécessite la mise en place d’un grand nombre de requêtes pour transférer des données. Le protocole NFS nécessite de nombreuses petites interactions ou étapes pour lire et écrire des données, ce qui équivaut à une tonne de surcharge pour quelqu’un qui interagit activement avec les charges de travail actuelles d’IA/ML/DL qui consomment un nombre énorme de petits fichiers.
- Le partage de fichiers est très complexe – La configuration et la mise en place d’un accès approprié aux fichiers partagés par le biais du verrouillage des fichiers et de la mise en cache sont, au mieux, des tâches décourageantes. D’une part, cela ajoute une grande partie de la surcharge du protocole, ce qui conduit au bavardage mentionné ci-dessus. D’autre part, elle laisse encore beaucoup à désirer, dans la mesure où toute commande de montage de chaque hôte pour le même système de fichiers peut facilement déraper.
- Accès parallèle aux fichiers – NFS a été conçu comme un moyen d’accéder séquentiellement à un fichier réseau partagé, mais de nos jours, les applications traitent des fichiers plus volumineux et un accès non séquentiel ou parallèle aux fichiers est nécessaire. Cette fonctionnalité a été ajoutée à NFSv4, mais peu de clients la prennent en charge.
Limitation de la taille des blocs – La norme actuelle du protocole NFS autorise le transfert d’un maximum de 1 Mo de données lors d’une demande de lecture ou d’écriture. En 1984, 1 Mo représentait beaucoup de données, mais ce n’est plus le cas. Il existe des catégories d’applications qui devraient transférer des Go et non des Mo de données.
Il y a d’autres problèmes avec NFS, mais ce sont nos cinq principaux. Oui, les restrictions sur la taille des blocs pourraient facilement être élargies, mais il faudrait alors ajuster les délais d’attente et peut-être les repenser. Et oui, l’accès parallèle aux fichiers arrive, mais les problèmes de bavardage protocolaire et de partage de fichiers (verrouillage-cache) énumérés ci-dessus sont beaucoup plus difficiles à résoudre.
NFS fonctionne bien depuis plus de 35 ans maintenant. Il n’est pas certain que NFS puisse être sauvé dans le monde des petits fichiers d’aujourd’hui. Une autre version de NFS pourrait être poussée par le comité de la norme, mais nous pensons que le problème de bavardage est trop endémique dans la définition du protocole pour être entièrement éliminé, ET que NFS doit soit supporter entièrement les fichiers partagés, soit ne pas le faire, les deux étant une prescription pour l’échec.
Comment accélérer les performances du système de fichiers réseau ?
NFS offre des performances et une évolutivité limitées pour les environnements modernes. Pour les réseaux et les capacités d’aujourd’hui, il est très limité. NFS offre des capacités allant jusqu’à 1,5 Gb/s alors que les cartes réseau peuvent offrir 100 Gb/s. NFS n’est pas non plus efficace pour gérer les métadonnées. Weka offre la simplicité de NFS avec les performances et l’évolutivité de SAN et la capacité de saturer des tuyaux de 100 Gb/s.