Cours 6 : Service de fichiers Flashcards
Comment marche l’echange de fichier poste a poste.
- Souvent non structure a l’avance.
- Ne cherche pas a reproduire la semantique de l’acces a un fichier local (POSIX).
- Se preoccupe de la mise a l’echelle, de la performance globale et individuelle, et de l’equite des usagers (donner versus recevoir la bande passante) et parfois de l’anonymat.
- Pour des gros fichiers publics (e.g. torrent d’image ISO de logiciels libres), la contestation d’un regime dictatorial, ou l’echange de fichiers dont l’usage est restreint par droits d’auteur.
Definir comment fonctionne NAPSTER.
- Serveur centralise pour l’index (liste des pairs offrant un fichier donne).
- Un client se connecte a l’index pour avoir la liste des autres clients offrant un fichier qu’il recherche. Il offre ses propres fichiers qui sont ajoutes a l’index.
- Le client se connecte a un des autres clients pour obtenir le fichier recherche.
- Il se peut que d’autre clients se connectent au premier pour telecharger un des fichiers qu’il offre.
Comment fonctionne GNUTELLA?
• Pas de serveur central, seulement des pairs parmi lesquels certains sont plus puissants et se distinguent (ultra-pairs).
• Graphe bien connecte avec chaque pair connecte a quelques ultra-pairs et les ultra-pairs connectes a des dizaines d’ultra-pairs.
• Chaque pair envoie la liste de ses fichiers aux ultra-pairs connectes (code de dispersement des mots contenus dans les titres).
• Les ultra-pairs font l’union des tables de leurs pairs et
envoient cette information a leurs ultra-pairs.
• Une requete est envoyee de preference a un nœud ayant le fichier, autrement a un ultra-pair qui a annonce le fichier, et finalement a un ultra-pair a la fois.
• La requete contient l’adresse de l’ultra-pair qui a initie la recherche et le fichier trouve lui est envoye directement.
Comment fonctionne BITTORRENT.
• Systeme reparti poste a poste specialement concu pour la propagation de gros fichiers (e.g. image iso Ubuntu, contenu de DVD…).
• Fichier .torrent donne le nom et la longueur du fichier,
l’adresse du serveur central de suivi pour ce fichier, et une somme de controle.
• Le serveur maintient une liste des pairs qui ont une copie complete ou partielle du fichier.
• Un client obtient du serveur une liste de pairs possedant le fichier. Il les contacte pour obtenir les morceaux en parallele dans n’importe quel ordre.
• Des statistiques sont maintenues aux 10s sur ce que chaque pair contribue. Chaque pair donne normalement priorite aux autres pairs qui contribuent a l’effort.
• Les morceaux de fichiers les plus rares sont offerts en priorite.
Qu’est-ce que le module local d’acces aux fichiers.
• Pilote d’interface: disque(s) ou partition de disque accessible sous la forme d’un vecteur de blocs.
• Gestion des blocs: tampons d’entree-sortie, pre-lecture, ecriture asynchrone, ordonnancement des acces.
• Systeme de fichiers avec inode (identificateur de fichier avec permissions d’acces et liste de blocs directs ou indirects qui le composent) et repertoire (fichier contenant une liste de noms versus identificateurs de fichiers permettant de constituer une structure hierarchique).
• Table de mount : certains chemins menent vers d’autres
partitions ou disques.
• Cache de dentries : cache de chemins versus identificateur de fichier.
Quels sont les principes fondamentaux d’acces de fichiers par reseaux.
- Transparence d’acces: un programme peut lire un fichier local ou distant sans distinction.
- Transparence de localisation: le nom ne change pas selon l’ordinateur ou se trouve le programme qui veut acceder le fichier.
- Transparence de concurrence: les acces concurrents peuvent se faire de la meme maniere qu’en local.
- Transparence de defectuosite (messages perdus, serveur reinitialise, reseau partitionne…).
- Transparence de performance (performance similaire meme avec un nombre croissant de clients).
- Disponible sur plusieurs plates-formes.
- Transparence meme en cas de replication et de migration.
- S´ecurit´e
Quels sont les differents modules d’un service de fichiers repartis?
• Proprietes d’un fichier: longueur en octets, date de creation, derniere lecture/ecriture, decompte de reference, proprietaire, liste de controle des acces.
• Service de repertoire: convertir le chemin demande en
identificateur de fichier et verifier les permissions d’acces. Retourner une cle appropriee.
• Service de fichiers de base: la cle permet de savoir le fichier a acceder, et les droits que possede le detenteur sur ce fichier. Operations de lecture, ecriture sur le fichier.
• Module client qui utilise les services de repertoires et de fichiers et qui utilise des operations reapplicables
(idempotentes) pour tolerer les defaillances (message
retransmis). Il peut avoir a se connecter a plus d’un serveur
Qu’est-ce que CODA?
• Developpe a CMU a partir de 1990, premiere version vers 1995.
• Permettre la replication de volumes lecture-ecriture, et
l’operation deconnectee.
• Semblable a AFS sauf pour open lire d’un seul serveur et pour close envoyer la modification a tous les serveurs.
• Une liste permet de specifier les fichiers dont une copie locale devrait toujours exister. Au moment de la reconnexion, ou apres une panne de reseau, la cache est revalidee.
• Lorsqu’un serveur redevient accessible, il faut v´erifier ses vecteurs de numeros de version pour les fichiers modifies. S’il manque des mises a jour, elles lui sont propagees. Si des mises a jour differentes ont ete recues de part et d’autre, il y a un conflit a resoudre.
Qu’est-ce que CIFS (Common Internet File System)?
- Server Message Block (SMB) par-dessus NetBIOS, developpe chez IBM pour DOS.
- Integre a Lan-Manager (OS/2, Windows for Workgroups)
- En 1996, renomme CIFS.
- OpLock Exclusive, aucune autre copie sur un autre client, le detenteur n’a pas a propager chaque modification.
- OpLock Level 2, acces partage, peut faire les lectures en cache mais doit propager toute modification.
- OpLock Batch, permission de retarder les close et de les annuler en cas de open qui subvient peu de temps apres.
- OpLock Break, revocation de OpLock car le fichier vient d’etre modifie par un autre client.
Qu’est-ce que GFS (Global File System)?
• Commence a l’Universite du Minnesota, 1995, Sistina
Software, 1999, Red Hat 2003.
• Plusieurs serveurs peuvent se connecter au meme SAN (disques reseau) par iSCSI, FibreChannel ou AoE (ATA over Ethernet), offrant une certaine redondance.
• Aussi possible de se connecter sur un disque replique par logiciel en Linux: GFS2 sur DRDB sur DM.
• Gestionnaire de verrou (Distributed Lock Manager DLM) assure que les acces sur des connexions differentes de SAN ou des replicats de disque differents ne sont pas en conflit.
• Lorsqu’un nœud est considere defaillant, il est desactive par materiel (relais) pour eviter qu’il ne cause des conflits.
Qu’est-ce que Gluster File System?
- La compagnie Gluster (GNU Cluster) a ete fondee en 2005 pour offrir un systeme de fichier libre et performant.
- Achete en 2011 par Red Hat.
- Fait l’aggregation de systemes de fichiers natifs (e.g. xfs, btrfs) et les exporte sous plusieurs protocoles (NFS, CIFS, HTTP. . . ).
- Gere la distribution et la redondance.
- Un des systemes les plus utilises avec OpenStack mais qui sera concurrence par Ceph.
Qu’est-ce que le systeme de fichier Lustre?
• Compagnie demarree a CMU, achetee par SUN puis SUN par Oracle. Produit discontinue chez Oracle mais qui se poursuit en logiciel libre. Utilise par 15 des 30 au sommet du Top500.
• Serveur de metadonnees, (Meta Data Server MDS);
repertoires, liste des objets de stockage pour le fichier,
proprietes des fichiers.
• Plusieurs serveurs d’objets de stockage (Object Storage Server) avec chacun quelques groupes de disques, e.g. 2 a 8, (Object Storage Target). Un fichier peut avoir des morceaux sur plusieurs OSS.
• Gestion des verrous (Distributed Lock Manager) lecture et ecriture par sections de fichiers.
• Redondance Active/Passive pour MDS et Active/Active pour OSS.
Qu’est-ce que Google File System?
• Serveur maıtre responsable des meta-donnees (attribut, emplacement des morceaux de fichiers avec replicats), Master Server MS.
• Journal des operations du MS vers un autre serveur pour recuperation en cas de panne.
• Serveurs (centaines) de morceaux (64MB) de fichiers,
ChunkServers.
• Lors d’une modification a un fichier, un ChunkServer est
identifie comme primaire pour chaque morceau.
• Le client envoie la modification a chaque replicat puis
confirme la modification au primaire qui determine l’ordre, ecrit, puis demande aux replicats d’ecrire dans le meme ordre et confirme au client.
Qu’est-ce que CEPH?
• Nouveau service de blocs, fichiers, ou objets de stockage prevu pour la mise a l´echelle et l’infonuagique.
• Premiere version stable en 2016.
• Ceph-mon : cluster monitor, verifie l’´etat des serveurs de la grappe pour noter s’ils sont actifs ou en panne (au moins 2 pour tolerance aux pannes). Maintien une carte des serveurs avec consensus par Paxos.
• Ceph-mds : serveur de metadonnees (repertoires et inodes). Chacun couvre un sous-espace ajuste dynamiquement avec des recoupements pour fins de redondance. Les metadonnees sont stockees dans des fichiers.
• Ceph-osd : serveur pour le contenu des fichiers eux-memes, usuellement sur des partitions xfs ou btrfs. (Au moins 2, par defaut 3, pour replication).
• Ceph-rgw : serveur RESTful pour offrir une interface
compatible avec Amazon S3 et OpenStack Swift.
• Un fichier est identifie par un inode number (INO) fourni par le serveur de metadonnees et decompose selon sa taille en plusieurs objets (ONO) qui ont chacun un OID.
• Une fonction de hachage simple associe le OID a un groupe de placement (PGID). Le groupe s’occupe de la replication.
• Le placement d’un groupe (PGID) sur des serveurs de fichiers (ceph-osd) est determine par un algorithme : Controlled Replication Under Scalable Hashing (CRUSH).
• Emphase sur la performance (morceaux de fichiers sur
plusieurs serveurs), la mise a l’echelle (serveurs de
metadonnees separes, CRUSH) et la tolerance aux pannes.
Qu’est-ce que OrangeFS?
• Nouvelle generation de PVFS, Parallel Virtual File System, qui etait developpe a Clemson University et ANL pour les grappes MPI.
• Services de metadonnees et de fichiers separes.
• Les fichiers sont des objets avec des paires cle/valeur et une sequence d’octets (bytestream).
• Les clients peuvent acceder le service directement (Linux, Windows, Mac) ou par WebDAV, S3, Hadoop. . .
• La repartition des objets sur les serveurs est la partie
importante et peut etre decidee automatiquement ou specifiee par l’utilisateur.