Google File System
Architecture Générale
GFS, késako ?
GFS c'est un système de fichier distribué. Il est optimisé pour le stockage de données ultra volumineuses. Ce système est en place au sein des datacenters de Google depuis 2001.
ps: Chunk = morceau :)Architecture
Principe général:
Chaque fichier est découpé en morceau, puis répartis sur un ensemble de serveurs appelés Chunks Servers. Un Master Server connait à chaque instant la localisation des morceaux.
Un Client GFS interroge le Master Server pour connaitre le(s) morceau(x) du fichier sur lequel il souhaite intervenir. Le Master server renvoit les informations aux client GFS qui interroge ensuite les Chunks Server.
Ce système de fichier est peu conventionnel car l'OS des Master Server et des Chunks Servers s'appuient sur leur propre système de fichier.
Ses composants
Le Master Server
Il tient à jour un ensemble de Metadatas. Ces Métadatas sont stockées en RAM pour des raisons de performance, voici ce qu'elles contiennent :
- Les Namespaces (ou arborescence des répertoires)
- Liste des morceaux constituant chaque fichier
- La localisation des moceaux (Chunks servers associés)
- Des informations de contrôle
Le Master Server dirige des opérations courantes tel que la garbage collection des Chunks, ou encore la migration des chunks entre les Chunks Servers (réplication et/ou load balancing)
Les Chunks Servers
Les Chunks Servers stockent les morceaux. Il faut savoir que chaque morceau est répliqué trois fois dans le but de reduire le risque de perte de données. Cette réplication a un impact sur les capacités de stocage que le cluster doit avoir (ex: 30To au lieu de 10 To !).
Chaque morceau est identifié par un ID unique appelé Chunk Handle.
La taille de chaque morceau est fixée à 64Mo. Cette valeur peut être comparé à la taille des blocs sur le
système de fichier ext3. En ext3, la taille des blocs est généralement 8Ko. La taille des "blocs" dans GFS
est donc trés grande.
Le Client GFS
Le cluster GFS est attaqué par des clients GFS. Ce n'est pas vous où moi, internaute que l'intérrogeons. Google utilise des surcouches tel que Big Table ou Map Reduce pour y accèder. Je ne les traiterai pas sur ce site.