Système de fichiers distribué

En informatique, un système de fichier distribué (DFS ou « distributed filesystem ») [1], est un protocole d'agrégation de ressources en réseau collectant des points d'entrée de multiple serveurs de fichier physiques actifs au sein du réseau, pour présenter les données au client (un utilisateur, ou une application) sous une dénomination unique. Le client en ignore ainsi la véritable localisation physique, et peut se servir de ces données de façon transparente, par exemple sans avoir à chaque fois à redéfinir un chemin d'accès précis.

Description

Le système de fichier distribué est par essence un système de fichiers en réseau. La notion « distribué » implique que les fichiers sont issus de sources (serveurs) multiples. Cela ne fait aucunement référence au fait qu'il y ait de multiple clients pour une source unique, puisque c'est la caractéristique même d'un système de fichier en réseau de s'exposer à plusieurs clients, ce n'est pas particulier à un système de fichier distribué.

Le système de fichier distribué expose donc fondamentalement plusieurs serveurs de fichiers face à plusieurs clients sous un mécanisme simplifié effaçant aux yeux du client final la présence réelle de sources multiples, alors qu'un simple système de fichier en réseau (non distribué), expose traditionnellement un serveur face à plusieurs clients.

Associé à une option de réplication, le système de fichier distribué assure une sauvegarde des données afin d'en assurer aussi la redondance le cas échéant.

Le « clustered filesystem » (CFS), ou en traduction littérale système de fichier organisé par bloc de serveurs, est une catégorie particulière de système de fichier distribué qui se caractérise par le fait que le « cluster » va présenter les fichiers aux clients réseau sous un point d'accès unique, ici un « block device » autorisant des accès concurrents de la part de plusieurs noeuds réseau. Dans un système de fichier distribué simple, un même fichier peut se trouver présent simultanément en de multiples noeuds réseau, par exemple sur les ordinateurs personnels de plusieurs utilisateurs, dans ce cas il y a un système de synchronisation qui assure que le fichier soit identique pour tout le monde. Si une source devient indisponible, il sera possible de « ressourcer » le fichier d'un autre endroit réputé détenir la même copie. Dans un système de fichier par bloc, le fichier en question se présente sur un noeud réseau unique, mais derrière le système va assurer la relation avec plusieurs serveurs physiques.

Pour un cas d'usage typique d'une architecture en « cluster », on va plus rechercher la performance en distribuant la charge réseau sur plusieurs serveurs physiques répliqués pour éviter les goulets d'étranglement.

L'utilisateur final ne verra pas la différence entre un système distribué simple et un « clustered filesystem », il s'agit d'une différence d'ordre technique qui intéresse avant tout les services informatiques et qui va les orienter sur leur choix en fonction de ce qu'ils préfèrent en terme d'architecture réseau. GlusterFS, CephFS sont par exemple des systèmes de fichier organisés en « cluster »[2].

Clarifications terminologiques

DFS, CFS, « network filesystem » sont des notions couramment confondues, même dans la littérature anglaise.

Ainsi Windows CIFS (ou SMB) est souvent présenté comme un système de fichier distribué, ce qui n'est pas tout à fait exact. Un ensemble de serveurs Windows CIFS généreront bien un système de fichier distribué uniquement si la fonctionnalité DFS est activée. Si le protocole DFS n'est pas activé chaque serveur agira comme un serveur séparé, à défaut de chef d'orchestre, ce qui impliquera pour l'utilisateur de se connecter à chaque fois sur des adresses réseau différentes. Monter un serveur personnel SMB via un ordinateur personnel Windows ou Linux n'en fera donc pas un système de fichier distribué, le système de fichier distribué impliquant dans tous les cas à minima plusieurs serveurs. La remarque est la même pour NFS sous Linux.

CIFS (partage Windows ou Samba sous Linux), est avant tout un protocole d'accès réseau aux fichiers (« network filesystem »), que le système de fichier en dessous soit distribué, « clusterisé » ou non, c'est un autre aspect qui n'est pas le sujet de la norme CIFS, le DFS étant pris en charge par une autre couche logiciel.

Finalités

Le système de fichier distribué est un protocole d'agrégation de ressources en réseau qui :

- assure le partage des données au sein d'une organisation d'une façon plus simple et efficace

- assure la redondance et la sauvegarde de ces données

- permet l'évolutivité de l'architecture des données en réseau, en étant capable d'agglomérer de façon dynamique de nouvelles ressources réseau.

- permet des opérations de migration physique de données en toute transparence[3].

- assure la performance du réseau en répartissant la charge de travail entre plusieurs serveurs, ce qui sera particulièrement vrai d'une architecture en « cluster ».

Exemples

Article connexe

  • Clustered file system (en)

Références

  1. (en-US) Nutanix, « Distributed File Systems - What is DFS? | Nutanix », sur www.nutanix.com, (consulté le )
  2. (en) « Difference between a distributed and a cluster file system », sur Unix & Linux Stack Exchange (consulté le )
  3. « OpenAFS », sur www.openafs.org (consulté le )
  • Portail de l’informatique