Systèmes de gestion de fichiers répartis

Page 1 sur 78Lecteur de document UniversityLib

Systèmes de gestion de fichiers répartis

Systèmes de fichiers, Répartition, NFS, AFS, GoogleFS · course

Voir tous les documents en gestion et économie

ENSI –SAR

II2-RSR/SLE

Chapitre 6

Systèmes de gestion

de fichiers répartis

Contenu du cours

1.Introduction

2.Rappels

3.SGFR : concepts généraux

4.Système de fichiers à accès partagé : NFS

5.Système de fichiers avec redondance : AFS

6.Système à haute disponibilité : googleFS

Systèmes et applications répartis

2

Pourquoi partager des fichiers ?

Travail en équipe

Projets à plusieurs développeurs

Mise à jour d’une base de données

Travail personnel

Utilisation de machines banalisées

Utilisation de machines différentes

Ordinateur fixe avec un large disque et copie de sauvegarde

Ordinateur portable

Accès optimisé aux données

Répartition des données sur plusieurs machines (sharing)

Redondance des informations

ENSI

Systèmes et applications répartis

3

Ce problème n’est pas récent

 En 1985, DEC fournit VAXClusters

Partage de périphériques de mémoire de masse comme s’ils

étaient locaux

Basé sur une politique de droits rigides (à la VMS)

 Au même moment, Sun Microsystems livre NFS

Distinction entre fichier local et fichier distant

Plus souple à administrer, plus orienté Unix

NFS, avec quelques améliorations entre temps, est encore utilisé

aujourd’hui.

ENSI

Systèmes et applications répartis

4

Rappels : Notion de fichier

Fichier = Abstraction de mémoire permanente : une

séquence de données similaires non interprétées (des

articles) souvent de taille un octet

Accès séquentiel : on lit ou écrit des sous séquences

d’items sur un pointeur courant.

Accès aléatoire : accès direct dans le fichier sur une

adresse calculée (par exemple en fonction d'une clé

hachée).

Accès indexé : utilisation d’un index accédé sur une

clé pour obtenir une adresse dans le fichier.

ENSI

Systèmes et applications répartis

5

Notion de système de fichiers

Système de fichiers : logiciel dédié à

La création et la destruction de fichiers

L’enregistrement d’articles dans un fichier

La restitution d’articles

Le nommage

Le partage

La protection

Notion de répertoire : un fichier d’un type spécial qui

permet d’associer à un nom de fichier un identifiant de

représentation interne.

ENSI

Systèmes et applications répartis

6

Systèmes de fichiers centralisés : La

gestion des répertoires

 Service de gestion des répertoires

 Défini par un ensemble d’opérations sur des fichiers d’un type particulier,

répertoire: créer, détruire.

 Manipulation de fichiers dans les répertoires: créer, détruire un fichier,

renommer des fichiers, déplacer des fichiers d’un répertoire à un autre.

 Notion de système de fichiers hiérarchisé : gestion hiérarchisée

des répertoires

 Création de liens entre répertoires et sous répertoires au moyen du système

de désignation.

 Création de liens ‘symboliques’: dans certains systèmes de fichiers

 Plusieurs noms logiques peuvent être associés au même descripteur

physique (liens multiples sur le même inode en Unix) .

ENSI

Systèmes et applications répartis

7

Désignation dans les fichiers

centralisés Unix

ENSI

Systèmes et applications répartis

8

Systèmes de fichiers répartis

 Situation : différents systèmes de fichiers attachés à différents hôtes

d’un système réparti.

 Objectif : Réaliser la transparence des systèmes de fichiers à la

répartition.

 Autre terminologie : NAS Network Attached Storage (ex NFS).

 Organisation différente: SAN ‘Storage Area Network’ un réseau haut

débit (exemple Fibre Channel) permet des accès au niveau des blocs

physiques à des disques attachés au réseau.

ENSI

Systèmes et applications répartis

9

Description physique des fichiers Unix:

Informations dans les Inodes

 Type du fichier : ordinaire, répertoire

 Protection : droits d’utilisation (rwx).

 Nombre de liens : pour détruire finalement le fichier.

 Propriétaire du fichier : UID User identifier.

 Groupe du fichier : GID Group Identifier.

 Taille du fichier : en octets.

 Adresses physiques directes de blocs : 10 blocs.

 Adresses physiques indirectes : 3 blocs.

 Date/heure : dernier accès.

 Date/heure : dernière modification.

 Date/heure : dernière modification inode.

ENSI

Systèmes et applications répartis

10

SGFR

Concepts généraux des systèmes de

fichiers répartis

ENSI

Systèmes et applications répartis

11

Principaux objectifs (1)

Résoudre les problèmes habituels posés par la

répartition.

 Problème de désignation (nommage, ‘naming’).

 Construire une désignation (un nommage) uniforme des fichiers cohérente

avec les différents systèmes.

 Problème de localisation.

 Retrouver dans le système réparti quel hôte gère un fichier.

 Problème d’accès distant.

 Accéder effectivement aux fichiers sur leur site de résidence.

 Problème de concurrence.

 Gérer les accès concurrents en univers réparti.

 Problème des pannes.

 Panne des serveurs de fichiers, panne du réseau ->partition du réseau.

ENSI

Systèmes et applications répartis

12

Principaux objectifs (2)

 Problème des performances.

Assurer des performances acceptables (similaire à l’univers

centralisé).

 Problème de l’hétérogénéité

Des processeurs, des systèmes d’exploitation.

 Problème d’extensibilité (‘Scalability’).

Fonctionnement dans de grandes configurations.

Passage à l’échelle

 Problème de migration.

Déplacement des fichiers d’un système à l’autre

 Problème de réplication.

Existence de copies multiples des fichiers

ENSI

Systèmes et applications répartis

13

Systèmes de fichiers répartis :

Evolution Historique

 Années 1970 : création des protocoles de transfert de fichiers FTP

et premiers projets sur les accès distants

 1974 Newcastle Connection : espace unifié de fichiers, idée de

super racine

 1979 Locus : système unique de fichiers.

 1984 NFS : produit Sun => devenu standard universel.

 1988 AFS / DFS : initialement projet de recherche, puis produit.

 1988 technologie RAID : (‘Redundant Array of Independent Disks’)

 Années 1990 disques en réseau : SAN, NAS.

 Années 2000 : FSU ‘File Sharing Utilities’ ou ‘Peer to Peer’

systèmes “pair à pair” (Napster, FreeNet, Gnutella, Groove etc …)

ENSI

Systèmes et applications répartis

14

Service et protocole

Service.

La spécification des services que le système de fichiers

répartis offre au client.

Comporte le service d’accès aux données: lecture, écriture aléatoire,

écriture en fin de fichier (‘appending’)

Comporte le service de gestion des répertoires : création et

destruction de fichiers dans des répertoires.

Serveur de fichiers

Un processus distant qui tourne sur une machine distante et

Publicité

implante un service de fichiers.

Protocole de fichiers répartis

Les échanges de requêtes qui transforment des primitives du

service en opérations d’un serveur de fichiers distant.

ENSI

Systèmes et applications répartis

15

Quelques

critères de classification

 Communications : utilisation des messages ou du RPC.

 Serveurs :

avec ou sans état.

mono ou multi processus

 Désignation/nommage : structure de l’espace de noms de

fichiers.

 Sémantique du partage : “Unix”, session, transaction.

 Caches et duplication : caches clients , caches serveurs,

cohérence des caches

 Tolérance aux fautes : duplication, reprise

 Sécurité : modèles d’authentification, de protection …

ENSI

Systèmes et applications répartis

16

Le modèle de transfert de fichiers

 Service de transfert de fichiers complets :

Mode Upload / Download (pré chargement).

Service défini par une opération principale: transférer un

fichier (lire à distance et écrire localement un fichier complet).

Les accès au fichier sont réalisés ensuite sur le site client.

Si nécessaire (après modifications) le fichier est retourné sur

son site d’origine (le serveur).

 Exemple type : FTP ‘File Transfer protocol’

ENSI

Systèmes et applications répartis

17

Le modèle de transfert de fichiers

 Cacher localement sur le client tout ou partie du fichier

 Latence réduite

 Serveur moins chargé

 Problèmes de cohérence

ENSI

Systèmes et applications répartis

18

Transfert de fichiers :

avantages /inconvénients

 Avantages

Simplicité très grande.

Accès au fichier non partagé (sauf sur le site client).

 Inconvénients

Si le volume est très important et si l’accès ne porte que sur

une petite partie du fichier, transférer tout le fichier est

inutile.

Le fichier occupe de la place sur différents sites.

Si les écritures sont concurrentes => partage des

modifications très difficile (techniques d’invalidation ou

réconciliation des versions)

ENSI

Systèmes et applications répartis

19

Le modèle d’accès distant

Service d’exécution de primitives d’accès aux fichiers

à distance sur le site serveur: Mode ‘Remote Access’

(page à la demande).

Le service définit l’ensemble d’opérations sur fichiers (créer,

détruire, ouvrir, fermer, lire , écrire, modifier des attributs,

etc.).

Les opérations sont réalisées sur le site serveur (le système

de fichiers ne s’exécute que sur le site serveur).

Exemple type NFS : ‘Network File System’

Autres exemples : AFS (‘Andrew File System’), Coda,

Microsoft DFS (‘Distributed File System’)

ENSI

Systèmes et applications répartis

20

Le modèle d’accès distant

Envoi de toutes les requêtes et leurs paramètres au

serveur

Le fichier reste sur le serveur

Pas de problème de cohérence!

Latence pour chaque opération

Serveur = goulot d'étranglement

ENSI

Systèmes et applications répartis

21

Modèle d’accès distant : Avantages et inconvénients

 Avantages

On ne transfère pas tout le fichier: uniquement ce sur quoi on

travaille.

On n’utilise pas d’espace disque sur le site client.

Les accès partagés entre clients sont possibles sur le serveur:

une seule copie que l’on peut soumettre à un contrôle de

concurrence.

 Inconvénients

Si de nombreuses opérations sont réalisées sur le même article:

beaucoup d’échanges inutiles.

Système de fichiers plus complexe à développer que les outils

de transfert complet de fichiers.

ENSI

Systèmes et applications répartis

22

Architecture générique du SGFR

 Le SGFR est composé de :

 Module côté client

 Offre une API pour solliciter le système de fichiers

 Localise le serveur de fichiers

 Module de gestion de noms

 Crée et gère les fichiers dans les répertoires des noms (Structure de

données ou SDD du système)

 Deux modes de désignation : intégré (dans le serveur de fichiers) ou séparé

(serveur de noms)

 Module de gestion de fichiers

 Effectue les opérations sur les fichiers : création, lecture, écriture,

destruction …

 Gère l’accès au bloc de fichiers.

 Module d’accès aux fichiers

 Accès local ou distant

 Module de gestion de cohérence

ENSI

Systèmes et applications répartis

23

Architecture générique du SGFR

ENSI

Systèmes et applications répartis

24

Désignation : Dépendance ou

indépendance des noms à la localisation

 Deux idées d’indépendance

 Adressage : le nom d’un fichier (un chemin d’accès) ne comporte aucune indication

(directe) sur la localisation du fichier.

 Migration : le nom d’un fichier n’est pas modifié lorsqu’on le déplace d’un support à un

autre (on réalloue ses blocs).

 Exemple de dépendance de la localisation

 Structure des noms : /serveur/rep1/rep2/rep3/Fich

 Le nom d’un fichier comporte celui du serveur de résidence physique du fichier.

 Un fichier ne peut-être déplacé sans changer de nom.

 Exemple d’indépendance de la localisation

 Structure des noms : une arborescence unique globale à tous le système réparti

/rep1/rep2/rep3/Fich

 Le nom d’un fichier ne donne pas d’informations sur l’emplacement physique du

fichier (l’emplacement est donné par consultation du catalogue).

 Un fichier peut-être déplacé sans changer de nom.

ENSI

Systèmes et applications répartis

25

Désignation : Trois catégories

principales de systèmes de désignation

 Nom de machine + chemin d’accès local :

/machine/chemin_local ou machine:chemin_local

 Les premiers systèmes de fichiers répartis (‘Newcastle Connection’)

 Montage : d’un système de fichiers distant sur la hiérarchie

locale (extension du montage en local).

 SUN NFS

 Construction d’un système de nommage complètement

nouveau : dans lequel tous les fichiers reçoivent un nom

universel (qui a la même forme pour tous les serveurs et tous

les clients).

 Systèmes de fichiers : Chorus, Mach, Amoeba, Apollo

ENSI

Systèmes et applications répartis

26

Désignation : arborescence de désignation

unique

 La vue logique des fichiers est la même sur toutes les machines. Les

noms sont globaux.

 Les fichiers sont physiquement répartis sur les serveurs.

 Cette solution s'appuie sur des noms internes uniques dans le temps et

dans l'espace (UID).

ENSI

Systèmes et applications répartis

27

Techniques de Résolution des noms : Transformation

du chemin d'accès

 Principe : Chaque machine résoud le morceau de chemin qui la

traverse.

 Un client veut accéder au fichier /a/b/c :

1. Client -> M1 qui reçoit tout le chemin

2. sur M1 :

 - / évalué sur M1 : donne le nom interne "racine", on va sur le disque

 - dans le répertoire racine on trouve le nom interne de "a", on va sur le disque

 - dans le répertoire "a", on trouve une indication telle "b dans ss-arbre sur M2", on passe

/b/c à M2

3. sur M2 : le reste du chemin /b/c/ est évalué de la même façon, /c est passé

à M3

4. sur M3 la fin du nom est résolu et retour du résultat au client

ENSI

Publicité

Systèmes et applications répartis

28

Techniques de Résolution des noms : Autre variante de la

transformation de chemin d'accès

 Résolution par chaque serveur et retour au client après

chaque étape

L'effort de résolution est supporté surtout par le client.

Solution adoptée par NFS.

ENSI

Systèmes et applications répartis

29

Techniques de Résolution des noms : Méthode

des identificateurs structurés

 Utiliser un identificateur structuré qui identifie une sous-arborescence

qui contient le fichier cible.

 identificateur structuré (is):

 < identif de ss-arbre ; identif de fichier dans le ss-arbre>

 Une table contient sur chaque site la correspondance : nom symbolique <-> id ss-

arb

 La table peut être gérée de différentes façons :

 -> remplissage suivant le principe de résolution par transformation de chemin d'accès

 -> gérée sur chaque site à l'image d'un cache ou accédée sur un serveur de noms

– Exemple :

 Le nom est indépendant de la localisation, quand le fichier migre il suffit

de mettre à jour la table.

ENSI

Systèmes et applications répartis

30

Techniques de Résolution des noms : Méthode des caches de

suggestion ("hints")

 intervient pour la localisation

 améliore la performance si le cache contient une information non

périmée (valide)

 si l'information est invalide, on peut utiliser les techniques

précédentes pour la recharger.

 Solutions utilisées lors d'une résolution de chemin d'accès :

 accès cache de noms côté client sinon requête au serveur de fichiers

(ANDREW)

 accès cache de noms (partie préfixe du chemin) sinon diffusion de la

demande (SPRITE)

 accès cache de noms sinon emploi d'une heuristique (APOLLO-DOMAIN)

 accès cache de noms sinon interrogation d'un serveur de noms

(GRAPEVINE)

ENSI

Systèmes et applications répartis

31

Techniques de Résolutions des noms :

Points d'attachement

 Un point d'attachement est l'association d'une sous-

arborescence à une feuille d'une autre sous arborescence.

 Une table mémorise l'association <feuille ; sous-arbre>

 On parcours la table à chaque fois qu'un chemin d'accès

traverse un point d'attachement.

ENSI

Systèmes et applications répartis

32

Partage de l’accès aux fichiers :

Problème du contrôle de concurrence

 Terminologie multiple : Contrôle de concurrence, de cohérence, de

consistance (‘Consistency Semantics’)

 Objectif : définir les entrelacements légaux d’opérations lire et écrire

(l’instant où modifications apportées à un fichier par un usager sont

observables par les autres usagers).

 Indispensable : pour prédire le comportement d’un programme qui

utilise un fichier lorsque ce fichier est partagé.

 Délimitation des accès :

 aucune délimitation,

 entre une opération d’ouverture et une opération de fermeture,

 des instants quelconques de début et de fin de transaction

ENSI

Systèmes et applications répartis

33

Partage de l’accès aux fichiers :

Les quatre versions

On ne présente en général que quatre versions

1. Sémantique UNIX : chaque opération est

‘’instantanément’’ visible pour tous les autres usagers.

2. Sémantique de session : aucune modification n’est

visible jusqu’à ce que le fichier soit fermé.

3. Fichiers non mutables : aucune modification n’est

autorisée.

4. Approche transactionnelle : toutes les modifications

sont visibles par tous ou par personne.

ENSI

Systèmes et applications répartis

34

Partage de l’accès aux fichiers :

La sémantique Unix : définition

 Définition : une écriture est visible immédiatement par tous les

autres usagers qui ont ouvert le fichier (s’ils effectuent une lecture

ces usagers obtiendront la nouvelle valeur écrite).

 Autre terminologie : cohérence/consistance atomique, les

requêtes sont traitées en séquence dans l’ordre des dates de leur

émission.

ENSI

Systèmes et applications répartis

35

Partage de l’accès aux fichiers :

La sémantique Unix : réalisation

Sémantique facile à réaliser en univers centralisé (si les

clients utilisent un seul cache).

Sémantique plus difficile en univers réparti

Besoin de nombreux messages : par exemple si chaque

usager utilise un cache lorsqu’une modification est réalisée les

copies sont invalidées puis modifiées toutes.

Assez simple en réparti: si l’on accède à un seul serveur de

fichiers distant, que les clients n’ont pas de cache. => Le

serveur peut traiter les requêtes en séquence dans l’ordre

temporel.

ENSI

Systèmes et applications répartis

36

Partage de l’accès aux fichiers :

La sémantique de session

 Définition :

 Chaque intervalle entre une ouverture (open) et une fermeture

(close) forme une session. Les modifications d’un usager sont

visibles par lui.

 Tous les autres usagers ayant déjà ouvert le fichier ne peuvent voir

ces modifications.

 Lorsqu’un fichier est fermé les modifications deviennent visibles aux

autres usagers qui commencent une session après la fermeture.

ENSI

Systèmes et applications répartis

37

Partage de l’accès aux fichiers :

Réalisation de la sémantique session

Solution de base :

Chaque utilisateur travaille sur sa propre copie du

fichier (au moins pour ce qui concerne les

enregistrements modifiés).

Lorsque le fichier est fermé les modifications sont

reportées sur la copie du serveur.

Problème : que deviennent les écritures générées

en parallèle par plusieurs usagers?

ENSI

Systèmes et applications répartis

38

Partage de l’accès aux fichiers :

Fichiers non mutables ‘Immutables’

Trois opérations seulement sont prévues :

1. Création d’un fichier :

 Par écriture complète du fichier à partir de la mémoire centrale ou

d’un autre fichier.

 Dès que le fichier est créé (qu’il est déclaré partageable il ne peut plus

être modifié par personne).

2. Destruction du fichier.

3. Lecture du fichier.

 Une modification de fichier ne peut être obtenue que par recréation

d’un autre fichier.

ENSI

Systèmes et applications répartis

39

Partage de l’accès aux fichiers :

Fichiers non mutables ‘Immutables’

Solution rare :

Qui correspond néanmoins à un certain profil

d’utilisation (des fichiers de petite taille en éditeur

de texte).

Qui facilite le partage mais le problème des

modifications en parallèle subsiste.

Problème : des fichiers de grande taille souvent

modifiés => utiliser en parallèle d’autres systèmes de

fichiers.

Exemple : système réparti Amoeba.

ENSI

Systèmes et applications répartis

40

Partage de l’accès aux fichiers :

L’approche transactionnelle

Délimitation de transactions : comportant ouverture,

fermeture et accès à des fichiers.

Garantie des propriétés transactionnelles ‘ACID’ : sur les

lectures et écritures aux fichiers.

Transactions sérialisées: tout se passe comme si les

transactions (suites d’opérations) avaient été réalisées en

séquence.

Réalisation : moniteur transactionnel.

Concurrence entre les accès limitée : si de nombreuses

écritures sont effectuées.

Tolérance aux pannes : validation à deux phases.

ENSI

Systèmes et applications répartis

41

Tolérance aux pannes : serveurs avec ou sans état

Publicité

(‘stateless’ vs ‘Sateteful’)

Le serveur de fichier conserve ou non des informations

relatives aux opérations des différents clients en activité.

Avantages des serveurs sans état

Pas d’espace mémoire occupé sur le serveur dans des tables.

Pas de limites sur le nombre de fichiers ouverts.

Pas de problèmes liés aux pannes des clients.

Avantages des serveurs avec état

Messages de requêtes courts (informations à transporter).

Meilleures performances en temps d’exécution.

Lecture/écriture en fin de fichier facile.

Gestion du verrouillage possible.

ENSI

Systèmes et applications répartis

42

SGFR

Accès partagé à distance :

Le système de fichiers répartis SUN

NFS

(‘Network File System’)

ENSI

Systèmes et applications répartis

43

NFS : système basique au départ

 Développé par SUN IETF : RFC 1094 (année 1988)

 Prévu pour ressembler au système de fichiers Unix

 Réalisation de la désignation par montage d’arborescences sur

l’arborescence locale.

 Utilise les RPC de Sun

Données codées selon le protocole XDR

Utilisation d’un service de portmapping

 Pas d’état stocké sur le serveur

 Pas ou peu de cache utilisé par le client

Le cache n’est utile que pour les gros fichiers

La sémantique du cache est douteuse sans état sur le serveur

ENSI

Systèmes et applications répartis

44

Généralités NFS :

Architecture de NFS

ENSI

Systèmes et applications répartis

45

Généralités NFS :

Opérations réalisées pour un accès

1. Réception d’un appel système d’accès fichier.

2. Sélection entre traitement local du fichier ou traitement

distant : utilisation de la couche VFS ‘Virtual file System’ qui

appelle soit ‘local file access’ soit ‘NFS client box’.

3. Préparation d’un appel RPC par le client NFS pour faire la

requête (utilisation UDP pour l’efficacité en performances).

4. Réception par le serveur généralement sur le port UDP

2049 mais on peut aussi utiliser un port quelconque alloué

pour la circonstance (port éphémère).

5. Traitement de la requête par le système de fichiers local via

la couche VFS serveur.

6. Transmission de la réponse : résultat de la requête qui est

délivré au client.

ENSI

Systèmes et applications répartis

46

Généralités NFS :

La famille des protocoles NFS

 NFS : Protocole proprement dit de réalisation des accès

distants.

 Mount : Protocole pour le montage d'arborescences distantes

sur l’arborescence locale (permettant la désignation en univers

réparti).

 Lock Manager : Protocole de gestion de verrous pour le

contrôle de concurrence (avec état).

 Network Monitor : Protocole de surveillance du réseau.

 RPC, XDR, PortMapper : protocoles définis dans le cadre du

RPC SUN pour réaliser les communications, faire des

conversions de représentation, déterminer les numéros de

ports utilisés dans les RPC.

ENSI

Systèmes et applications répartis

47

NFS : le protocole de montage

Montage de systèmes de fichiers distants

 Extension : de la notion de montage existant entre systèmes de

fichiers locaux à un montage de fichiers distants.

 Fichier /etc/exports : Définition par le serveur d’une liste des

répertoires qui peuvent être montés à distance sous la forme :

nom de répertoire, liste d’accès des utilisateurs et machines

autorisées à effectuer le montage

 ligne du fichier <dossier partagé> <hôte>(<options>) <hôte2>(<options>)...

 Exemple : /usr client

 Remarque : Le nom d’un répertoire correspond à une sous-arborescence

(pas à un système de fichiers).

 Commande mount : Définition par le client du point où il désire

accrocher l’arborescence distante.

 mount –t nfs nom_serveur:/chemin_serveur /chemin_client

ENSI

Systèmes et applications répartis

48

Systèmes de fichiers répartis NFS :

Exemple de montage distant

Fichier exports /usr client

$ mount –t nfs serveur:/usr /usr

ENSI

Systèmes et applications répartis

49

NFS : Fonctionnement du montage

 Utilisation de trois processus usager (hors système).

 Le processus client de montage

 Le processus serveur de montage (‘Mount daemon’)

 Le gestionnaire de ports pour RPC (‘PortMapper’)

ENSI

Systèmes et applications répartis

50

NFS : Fonctionnement du montage (2)

 Démarrage du serveur de port (PortMapper) quand le site serveur démarre.

 Démarrage du processus serveur de montage.

 (1) Le processus serveur de montage s’enregistre auprès du serveur de port.

 Un client effectue une commande mount : montage d’une arborescence

serveur sur son arborescence locale.

 (2) Le client demande au serveur de ports le numéro de port du processus

serveur de montage.

 (3) Le serveur de port fournit le numéro.

 (4) Le processus client (commande mount) émet un RPC pour obtenir une

poignée file handle du système de fichiers distant.

 (5) Réponse de la poignée.

 (6) Le processus client (commande mount) émet une commande au NFS local

pour associer la poignée et le point de montage local. A partir de ce moment le

NFS local utilisera cette poignée pour accéder à distance au serveur de fichiers

réel.

ENSI

Systèmes et applications répartis

51

Système de fichiers répartis NFS :

Notion de poignée fichier ‘File Handle’

 Quand un client ouvre un fichier : il reçoit une structure de données

concernant le fichier (‘File Handle’).

 Contient essentiellement l’identifiant du fichier pour réaliser l’accès sur le bon

fichier

 Structure ‘opaque’ : le client ne manipule pas la structure.

 Le client doit fournir au serveur cette poignée : pour chaque nouvelle

requête effectuée .

 Exemple Serveur de fichiers UNIX: informations ‘handle’

 Numéro du système de fichiers : ‘filesystem id’.

 Numéro de l’i-node : identifiant interne du fichier dans le fs.

 Numéro de génération : ce numéro change à chaque fois qu’un numéro d’inode

est réutilisé pour un nouveau fichier pour éviter les ambigüités entre fichiers

anciens et nouveaux.

 Eventuellement du bourrage : pour compléter la taille selon les versions (versions

à taille fixe 32 , 64 octets, version à taille variable définie par la longueur).

ENSI

Systèmes et applications répartis

52

Fichiers répartis NFS : Interface virtuelle

VFS ‘Virtual File System’

Interface séparant l’utilisation d’un fichier de son

implantation.

Nouvelle interface d’E/S fichier avec le noyau Unix qui

reçoit toutes les requêtes considérées par VFS comme

génériques.

Réalisation effective des opérations par les différents

systèmes de fichiers (systèmes de fichiers locaux ou

distants).

VFS implante la désignation en réparti par montage

d’arborescence.

ENSI

Systèmes et applications répartis

53

Fichiers répartis NFS : Concepts de

l’interface virtuelle VFS

 Concepts VFS représentés par des structures de données

 Notion de "Virtual File System" (système de fichier virtuel)

Tous les systèmes de fichiers connus sont représentés par des VFS qui

sont identifiés par un ident numérique interne.

Un VFS est un descripteur qui contient un identificateur du système de

fichiers réel et un pointeur sur le V-node sur lequel il est monté.

 Notion de "Virtual node V-node" (fichier virtuel).

Tous les fichiers connus sont représentés par des V-nodes qui sont

identifiés par un identifiant numérique interne.

Un V-node est un descripteur qui contient un pointeur sur le système de

fichiers auquel il appartient et éventuellement sur le système qui est

monté sur ce point.

ENSI

Systèmes et applications répartis

54

Interface virtuelle VFS ‘Virtual File

System’ : opérations VFS

Différentes opérations sur un VFS

Publicité

struct vfsops {

/ mount file system /

int (*vfs_mount)();

int (vfs_unmount)(); / unmount file system */

int (*vfs_root)();

int (*vfs_statfs)();

int (*vfs_sync)();

int (*vfs_vget)();

/ get root vnode /

/ get fs statistics /

/ flush fs buffers /

/ get vnode from fid /

};

ENSI

Systèmes et applications répartis

56

NFS : sécurité

Support de Kerberos, très contraignant

Authentification basée sur les adresses IP

La sécurité implique l’intégrité du réseau et celle des

administrateurs

ENSI

Systèmes et applications répartis

57

SGFR

Accès partagé avec redondance :

Andrew File System (AFS)

ENSI

Systèmes et applications répartis

58

AFS : Hypothèses de conception

 AFS vise plusieurs dizaines de clients.

AFS vise l'adaptabilité et l'extensibilité.

 Les fichiers sont petits < 10 Ko

 Il y a plus de lectures que d'écritures (6 fois)

 L'accès est souvent séquentiel rarement aléatoire

 Peu de partage entre utilisateurs, quand il y a partage, c'est souvent

un seul utilisateur qui le modifie

ENSI

Systèmes et applications répartis

59

AFS : utilisation d’un cache local

 Utilisation d’un cache côté client

Stocke les fichiers

Les clients cachent des fichiers entiers

Les serveurs transfèrent tout un fichier quand un client fait un

accès sur celui-ci

Stocke les données de répertoire

 Utilisation d’un système de callbacks

Possibilité pour le client d’utiliser sa copie locale,

supposée valide

Callback appelé par le serveur en cas d’invalidation

 Le serveur maintient une connaissance de l’état des caches

des clients.

ENSI

Systèmes et applications répartis

60

AFS : propriétés du cache

Cache persistant

Résiste au redémarrage de la machine

Stocke un numéro de version associé à chaque

donnée

Accès concurrents

Accès en lecture : ne nécessite aucune opération

réseau une fois le fichier dans le cache

Accès en écriture : provoque une demande

d’invalidation de cache par le serveur à tous les

clients pour les données modifiées

ENSI

Systèmes et applications répartis

61

AFS : organisation

Espace de nommage unique : /afs

Domaine administratif : la cellule

Un ou plusieurs serveurs

Zéro ou plusieurs clients accédant aux données

Chaque cellule exporte des volumes montés

sous /afs

Administration du client minimale

Le client contactera de lui-même la cellule pour

trouver un serveur offrant le volume demandé

ENSI

Systèmes et applications répartis

62

AFS : organisation

 Les fichiers respectent le modèle Unix : suite d'octets "plate".

Les fichiers sont regroupés par Volumes, le volume est l'unité de

localisation et de migration. Une partition = +sieurs volumes.

 L'arborescence des fichiers est constituée de volumes reliés par des

points de montage.

 Les répertoires et les fichiers dans l'espace partagé sont identifiés de

façon unique par un fids de 96 bits :

 Il est indépendant de la localisation.

 La résolution des noms est à la charge des clients (Venus) et est faite

morceau par morceau comme dans NFS.

ENSI

Systèmes et applications répartis

63

AFS : localisation et réplication

 La localisation des serveurs contenant un fichier

demandé est stockée dans un annuaire.

Cet annuaire est répliqué sur tous les clients.

Un protocole gère la cohérence des réplicas qui peuvent

parfois ne pas être tout à fait à jour.

 La stratégie de réplication d’AFS est simple et

pessimiste :

Un seul serveur autorise les écritures.

Tous les autres agissent comme des esclaves fournissant les

fichiers en lecture seule.

ENSI

Systèmes et applications répartis

64

AFS :Protocole de gestion de cohérence des

caches

 La cohérence des caches est fondée sur un mécanisme de

"promesse de rappel" :

 Quand un client demande un fichier, le serveur lui fournit une copie

et conserve une "promesse de rappel" avec le nom du client.

 Le client à la réception de son fichier garde un jeton qui a l'état

valide.

 Lorsqu'un client vide son cache, le fichier est recopié sur le

serveur.

 Si d'autres clients ont une copie du fichier dans leur cache, ils sont

rappelés par le serveur.

 Quand un client est rappelé, il met le jeton concerné à invalide.

 Si un programme utilisateur sur le client veut accéder à ce fichier, il

doit demander une copie fraiche au serveur.

ENSI

Systèmes et applications répartis

65

AFS : protocole

Du client vers le serveur

Lecture et écriture des données

Modification de la hiérarchie de fichiers

Gestion des volumes

Verrouillage

Du serveur vers le client

Invalidation du cache

Avec de la sécurité

Gestion de jetons par Kerberos

ACL (Access Control List) fines par répertoire

AFS ne cherche pas à imiter un système de fichiers

local.

ENSI

Systèmes et applications répartis

66

AFS : disponibilité

Premières implémentations développées par CMU

(Carnegie Mellon University)

Implémentation commerciale développée par

TransArc, achetée par IBM, et libérée sous le nom

d’OpenAFS

Implémentation libre : Arla

Implémentation partielle par RedHat dans Linux

depuis le noyau 2.6.10

N’a jamais vraiment pris de succès sauf dans certaines

universités américaines (notamment CMU)

ENSI

Systèmes et applications répartis

67

NFS : une norme qui évolue

 La norme évolue

 NFS v4 : décembre 2000, avril 2003, influencé par AFS et CIFS (Common

Internet File System)

 NFS v4.1 : janvier 2012

 Efficacité

 Regroupement des requêtes

 Système de cache avec invalidation possible

 TCP privilégié pour détecter les ruptures de connexion

 Délégation à des serveurs secondaires

 Accès aux fichiers en parallèle (striping ) et notion de session

 Sécurité

 Simplification du modèle par rapport aux versions précédentes

 Possibilité de chiffrement

 Possibilité d’imposer des contraintes sur le niveau de sécurité requis, côté

client et côté serveur

ENSI

Systèmes et applications répartis

68

SGFR

Système à haute disponibilité :

Goo...