Google File System

Google File System
Google wordmark.svg

Das Google File System (GFS) ist ein proprietäres, auf Linux basierendes verteiltes Dateisystem, das Google für seine Anwendungen benutzt. Es ist für Googles Internetsuche optimiert. Die Daten sind bleibend in teilweise mehrere Gigabyte großen Dateien gespeichert, die selten gelöscht, überschrieben oder verkleinert werden. Auch ist es für hohe Datendurchsätze optimiert.

Aufbau

Das Google File System ist an die notwendigen Anforderungen der Websuche angepasst, die eine enorme Menge an zu speichernden Daten generiert. GFS entstand aus einem früheren Versuch Googles, welcher den Namen „BigFiles“ trägt und von Larry Page sowie Sergei Brin während ihrer Forschungstätigkeit an der Stanford-Universität entwickelt wurde.

Die Daten werden durchgehend in sehr großen, teilweise sogar mehrere Gigabyte großen Dateien gespeichert, welche nur in extrem seltenen Fällen gelöscht, überschrieben oder komprimiert werden; Daten werden üblicherweise angehängt oder ausgelesen. Das Dateisystem ist auch entworfen und optimiert worden, um auf Googles rechnenden Clustern laufen zu können, deren Netzknoten aus handelsüblichen PCs bestehen. Dies bedeutet allerdings auch, dass man die hohe Ausfallrate und den damit verbundenen Datenverlust individueller Netzknoten als Normalzustand ansehen muss. Das äußert sich auch darin, dass kein Unterschied zwischen normaler (Runterfahren) und abnormaler Beendigung (Absturz) gemacht wird: Serverprozesse werden standardmäßig per Killbefehl beendet. Andere Designentscheidungen setzen auf hohe Datendurchsatzraten, auch wenn dies auf Kosten der Latenzzeit geht.

Ein GFS Cluster besteht aus einem Master und hunderten oder tausenden Chunkservern. Die Chunkserver speichern die Dateien, wobei jede Datei in 64 MB große Stücke („Chunks“) gespalten ist, ähnlich Clustern oder Sektoren in gebräuchlichen Dateisystemen.

Um Datenverlust zu verhindern, wird jede Datei beim GFS standardmäßig mindestens dreimal pro Cluster gespeichert. Bei Ausfall eines Chunkservers treten nur verschwindend geringe Verzögerungen auf, bis die Datei wieder ihre Standardanzahl an Replika besitzt. Je nach Bedarf kann die Anzahl auch höher liegen, etwa bei ausführbaren Dateien. Jedem Chunk wird eine eindeutige, 64 Bit lange Kennzeichnung zugewiesen, logische Mappings der Dateien zu den einzelnen Chunks werden beibehalten.

Der Master dagegen speichert keine Chunks, sondern vielmehr deren Metadaten, wie etwa Dateinamen, Dateigrößen, ihren Speicherort sowie den ihrer Kopien, welche Prozesse gerade auf welchen Chunk zugreifen etc. Die Master erhalten jegliche Anfragen für eine Datei und liefern als Antwort die dazugehörigen Chunkserver und erteilen entsprechende Sperren an den Prozess. Ein Client darf allerdings für gewisse Zeit die Adresse der Chunkserver cachen. Fällt die Anzahl an verfügbaren Replika unter die Normzahl, sind es auch die Master, die die Erstellung einer neuen Chunkkopie anstoßen. Die Metadaten werden aktuell gehalten, indem die Master regelmäßig Aktualisierungsanfragen an die Chunkserver senden (heart-beat messages“, auf deutsch etwa: „Herzschlag-Nachrichten“).

Der Quelltext des GFS sieht nur einen Master pro Cluster vor. Dies hat den Anschein, ein Fehler im System zu sein, die dessen Skalierbarkeit und Zuverlässigkeit begrenzt, da die maximale Größe und Uptime von der Leistungsfähigkeit und Uptime des Masters abhängt, da dieser die Metadaten katalogisiert und fast alle Anfragen durch ihn laufen; Googles Techniker haben allerdings durch Messungen gezeigt, dass dies (zumindest bis jetzt) nicht der Fall und GFS sehr wohl skalierbar ist. Der Master ist im Normalfall der leistungsfähigste Netzknoten im Netzwerk. Um die Ausfallsicherheit sicherzustellen, gibt es mehrere „Schatten-Master“, die den Hauptrechner spiegeln und notfalls, sollte der Master einmal ausfallen, sofort einspringen. Zusätzlich stehen die Schattenmaster auch für reine Leseanfragen, die ja den Haupttraffic ausmachen, zur Verfügung, so dass sich die Skalierbarkeit dadurch weiter erhöht. Engstellen gibt es nur selten, da Clients nur nach Metadaten fragen, die komplett im Arbeitsspeicher als B-Baum vorgehalten werden – sie sind sehr kompakt, pro Megabyte Daten fallen lediglich einige Kilobyte an. Durch den Einsatz nur eines Hauptknotens verringert sich die Softwarekomplexität drastisch, da Schreiboperationen nicht koordiniert werden müssen.

Siehe auch

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Google File System — (GFS) is a proprietary distributed file system developed by Google for its own use. Despite having published details on technologies like the Google File System, Google has not released the software as open source and shows little interest in… …   Wikipedia

  • Google File System — (GFS) est un système de fichiers distribué propriétaire. Il est développé par Google pour leurs propres applications. Il ne paraît pas être publiquement disponible et il est construit sur du code GPL (ext3 et Linux). Sommaire 1 Conception 1.1… …   Wikipédia en Français

  • Google File System — (GFS)  распределенная файловая система, используемая компанией Google. Является коммерческой тайной компании Google. Несовместима с POSIX и создавалась Google для своих внутренних потребностей. GFS  кластерная система, оптимизированная… …   Википедия

  • File system — For library and office filing systems, see Library classification. Further information: Filing cabinet A file system (or filesystem) is a means to organize data expected to be retained after a program terminates by providing procedures to store,… …   Wikipedia

  • Lustre (file system) — Infobox software name = Lustre developer = Sun Microsystems latest release version = 1.6.5.1 latest release date = release date|2008|07|10 operating system = Linux genre = Shared disk file system license = GPL website = http://www.lustre.org,… …   Wikipedia

  • Coda (file system) — Coda Developer Carnegie Mellon University Introduced 1987 Features Supported operating systems Linux, NetBSD FreeBSD Coda is a distributed file system developed as a research project at Carnegie Mellon University since 19 …   Wikipedia

  • Veritas File System — For other uses, see Veritas (disambiguation). VERITAS File System Full name VERITAS File System Introduced 1991 Structures Directory contents extensible hash Limits Max file size 8 EB ( …   Wikipedia

  • Be File System — BFS Developer Be Inc. Full name Be File System Introduced May 10, 1997 (BeOS Advanced Access Preview Release[1]) Partition identifier Be BFS (Apple Partition Map) 0xEB (MBR) …   Wikipedia

  • MINIX file system — Developer Open Source Community Full name MINIX file system version 3 Introduced 1987 (MINIX 1.0) Partition identifier 0x81 (MBR) Features Dates recorded …   Wikipedia

  • NetWare File System — NWFS Developer Novell Full name NetWare File System Limits Max file size 4 GiB Max volume size 1 TiB Features …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”