Geclustertes Dateisystem – Wikipedia

before-content-x4

Dezentrales Dateisystem

after-content-x4

EIN geclustertes Dateisystem ist ein Dateisystem, das geteilt wird, indem es gleichzeitig auf mehreren Servern gemountet wird. Es gibt mehrere Ansätze für das Clustering, von denen die meisten kein geclustertes Dateisystem verwenden (nur Direct Attached Storage für jeden Knoten). Geclusterte Dateisysteme können Funktionen wie ortsunabhängige Adressierung und Redundanz bereitstellen, die die Zuverlässigkeit verbessern oder die Komplexität der anderen Teile des Clusters reduzieren. Parallele Dateisysteme sind eine Art geclustertes Dateisystem, das Daten auf mehrere Speicherknoten verteilt, normalerweise aus Gründen der Redundanz oder Leistung.[1]

Shared-Disk-Dateisystem[edit]

EIN Shared-Disk-Dateisystem verwendet ein Storage Area Network (SAN), um mehreren Computern den direkten Festplattenzugriff auf Blockebene zu ermöglichen. Die Zugriffskontrolle und die Übersetzung von Operationen auf Dateiebene, die Anwendungen verwenden, zu Operationen auf Blockebene, die vom SAN verwendet werden, müssen auf dem Clientknoten erfolgen. Der gebräuchlichste Typ eines geclusterten Dateisystems, das Shared-Disk-Dateisystem – bietet durch das Hinzufügen von Mechanismen zur Parallelitätssteuerung eine konsistente und serialisierbare Ansicht des Dateisystems, wodurch Beschädigungen und unbeabsichtigter Datenverlust vermieden werden, selbst wenn mehrere Clients versuchen, auf dieselben Dateien zuzugreifen gleichzeitig. Shared-Disk-Dateisysteme verwenden im Allgemeinen eine Art Fencing-Mechanismus, um Datenbeschädigungen bei Knotenfehlern zu verhindern, da ein nicht eingezäuntes Gerät Datenbeschädigungen verursachen kann, wenn es die Kommunikation mit seinen Schwesterknoten verliert und versucht, auf dieselben Informationen zuzugreifen, auf die andere Knoten zugreifen .

Das zugrunde liegende Storage Area Network kann beliebige Protokolle auf Blockebene verwenden, einschließlich SCSI, iSCSI, HyperSCSI, ATA über Ethernet (AoE), Fibre Channel, Network Block Device und InfiniBand.

Es gibt verschiedene Architekturansätze für ein Shared-Disk-Dateisystem. Einige verteilen Dateiinformationen über alle Server in einem Cluster (vollständig verteilt).[2]

Beispiele[edit]

Verteilte Dateisysteme[edit]

Verteilte Dateisysteme teilen Sie keinen Zugriff auf Blockebene auf denselben Speicher, sondern verwenden Sie ein Netzwerkprotokoll.[3][4] Diese werden allgemein als Netzwerkdateisysteme bezeichnet, obwohl sie nicht die einzigen Dateisysteme sind, die das Netzwerk zum Senden von Daten verwenden.[5] Verteilte Dateisysteme können den Zugriff auf das Dateisystem abhängig von Zugriffslisten oder Fähigkeiten sowohl auf den Servern als auch auf den Clients einschränken, je nachdem, wie das Protokoll entworfen ist.

Der Unterschied zwischen einem verteilten Dateisystem und einem verteilten Datenspeicher besteht darin, dass ein verteiltes Dateisystem den Zugriff auf Dateien mit denselben Schnittstellen und derselben Semantik wie lokale Dateien ermöglicht – zum Beispiel Mounten/Unmounten, Auflisten von Verzeichnissen, Lesen/Schreiben an Bytegrenzen, systemeigenes Berechtigungsmodell. Im Gegensatz dazu erfordern verteilte Datenspeicher die Verwendung einer anderen API oder Bibliothek und haben eine andere Semantik (meistens die einer Datenbank).[6]

after-content-x4

Designziele[edit]

Verteilte Dateisysteme können in vielerlei Hinsicht auf “Transparenz” abzielen. Das heißt, sie sollen für Client-Programme “unsichtbar” sein, die ein System “sehen”, das einem lokalen Dateisystem ähnlich ist. Hinter den Kulissen übernimmt das verteilte Dateisystem das Auffinden von Dateien, den Transport von Daten und möglicherweise die Bereitstellung anderer unten aufgeführter Funktionen.

  • Zugangstransparenz: Clients wissen nicht, dass Dateien verteilt werden und können auf sie genauso zugreifen wie auf lokale Dateien.
  • Standorttransparenz: Es existiert ein konsistenter Namespace, der sowohl lokale als auch entfernte Dateien umfasst. Der Name einer Datei gibt nicht ihren Speicherort an.
  • Gleichzeitigkeitstransparenz: Alle Clients haben die gleiche Ansicht über den Zustand des Dateisystems. Das bedeutet, dass, wenn ein Prozess eine Datei ändert, alle anderen Prozesse auf demselben System oder Remote-Systemen, die auf die Dateien zugreifen, die Änderungen in kohärenter Weise sehen.
  • Fehlertransparenz: Der Client und die Client-Programme sollten nach einem Serverausfall ordnungsgemäß funktionieren.
  • Heterogenität: Der Dateidienst sollte über verschiedene Hardware- und Betriebssystemplattformen hinweg bereitgestellt werden.
  • Skalierbarkeit: Das Dateisystem sollte in kleinen Umgebungen (1 Maschine, ein Dutzend Maschinen) gut funktionieren und auch auf größere (Hunderte bis Zehntausende von Systemen) elegant skalieren.
  • ReplikationstransparenzHinweis: Clients sollten die Dateireplikation nicht kennen, die über mehrere Server hinweg durchgeführt wird, um die Skalierbarkeit zu unterstützen.
  • Migrationstransparenz: Dateien sollten ohne Wissen des Clients zwischen verschiedenen Servern verschoben werden können.

Geschichte[edit]

Das inkompatible Timesharing-System verwendete in den 1960er Jahren virtuelle Geräte für den transparenten Dateisystemzugriff zwischen Maschinen. In den 1970er Jahren wurden weitere Dateiserver entwickelt. 1976 entwickelte die Digital Equipment Corporation den File Access Listener (FAL), eine Implementierung des Data Access Protocol als Teil von DECnet Phase II, das das erste weit verbreitete Netzwerkdateisystem wurde. 1985 entwickelte Sun Microsystems das Dateisystem namens “Network File System” (NFS), das das erste weit verbreitete Internetprotokoll-basierte Netzwerkdateisystem wurde.[4] Andere bemerkenswerte Netzwerkdateisysteme sind Andrew File System (AFS), Apple Filing Protocol (AFP), NetWare Core Protocol (NCP) und Server Message Block (SMB), auch bekannt als Common Internet File System (CIFS).

1986 kündigte IBM Client- und Serverunterstützung für Distributed Data Management Architecture (DDM) für die System/36-, System/38- und IBM-Mainframe-Computer mit CICS an. Darauf folgte die Unterstützung für IBM Personal Computer, AS/400, IBM Großrechner unter den Betriebssystemen MVS und VSE sowie FlexOS. DDM wurde auch die Grundlage für die verteilte relationale Datenbankarchitektur, auch bekannt als DRDA.

Es gibt viele Peer-to-Peer-Netzwerkprotokolle für verteilte Open-Source-Dateisysteme für Cloud- oder Closed-Source-Cluster-Dateisysteme, z. B.: 9P, AFS, Coda, CIFS/SMB, DCE/DFS, WekaFS, Glanz, PanFS, Google-Dateisystem, Mnet, Akkordprojekt.

Beispiele[edit]

Netzwerkgebundener Speicher[edit]

Network Attached Storage (NAS) bietet sowohl Speicher als auch ein Dateisystem, wie ein gemeinsam genutztes Plattendateisystem auf einem Storage Area Network (SAN). NAS verwendet normalerweise dateibasierte Protokolle (im Gegensatz zu blockbasierten Protokollen, die ein SAN verwenden würde) wie NFS (beliebt auf UNIX-Systemen), SMB/CIFS (Server Message Block/Common Internet File System) (verwendet mit MS Windows-Systemen) , AFP (verwendet mit Apple Macintosh-Computern) oder NCP (verwendet mit OES und Novell NetWare).

Überlegungen zum Entwurf[edit]

Vermeidung von Single Point of Failure[edit]

Der Ausfall der Festplattenhardware oder eines bestimmten Speicherknotens in einem Cluster kann zu einem Single Point of Failure führen, der zu Datenverlust oder Nichtverfügbarkeit führen kann. Fehlertoleranz und hohe Verfügbarkeit können durch die eine oder andere Art von Datenreplikation bereitgestellt werden, sodass die Daten trotz des Ausfalls eines einzelnen Geräts intakt und verfügbar bleiben. Beispiele finden Sie in den Listen verteilter fehlertoleranter Dateisysteme und verteilter paralleler fehlertoleranter Dateisysteme.

Performance[edit]

Eine übliche Leistungsmessung eines geclusterten Dateisystems ist die Zeit, die benötigt wird, um Dienstanforderungen zu erfüllen. In herkömmlichen Systemen besteht diese Zeit aus einer Plattenzugriffszeit und einer kleinen Menge an CPU-Verarbeitungszeit. In einem geclusterten Dateisystem verursacht ein Remote-Zugriff jedoch aufgrund der verteilten Struktur zusätzlichen Overhead. Dies umfasst die Zeit zum Übermitteln der Anforderung an einen Server, die Zeit zum Übermitteln der Antwort an den Client und für jede Richtung einen CPU-Overhead zum Ausführen der Kommunikationsprotokollsoftware.

Gleichzeitigkeit[edit]

Die Parallelitätskontrolle wird zu einem Problem, wenn mehr als eine Person oder ein Client auf dieselbe Datei oder denselben Block zugreift und diese aktualisieren möchte. Daher sollten Aktualisierungen der Datei von einem Client den Zugriff und Aktualisierungen von anderen Clients nicht beeinträchtigen. Dieses Problem ist bei Dateisystemen aufgrund gleichzeitiger überlappender Schreibvorgänge komplexer, bei denen verschiedene Schreiber gleichzeitig in überlappende Bereiche der Datei schreiben.[7] Dieses Problem wird normalerweise durch Parallelitätskontrolle oder Sperren behandelt, die entweder in das Dateisystem integriert oder durch ein Zusatzprotokoll bereitgestellt werden können.

Geschichte[edit]

IBM Mainframes in den 1970er Jahren konnten physische Festplatten und Dateisysteme gemeinsam nutzen, wenn jede Maschine eine eigene Kanalverbindung zu den Steuereinheiten der Laufwerke hätte. In den 1980er Jahren enthielten die TOPS-20- und OpenVMS-Cluster der Digital Equipment Corporation (VAX/ALPHA/IA64) gemeinsam genutzte Plattendateisysteme.[8]

Siehe auch[edit]

Verweise[edit]

  1. ^ Saify, Amina; Kochhar, Garima; Hsieh, Jenwei; Celebioglu, Onur (Mai 2005). “Verbesserung von Hochleistungs-Computing-Clustern mit parallelen Dateisystemen” (PDF). Dell Stromversorgungslösungen. Dell Inc. Abgerufen 6. März 2019.
  2. ^ Mokadem, Riad; Litwin, Wittold; Schwarz, Thomas (2006). “Festplattensicherung durch algebraische Signaturen in skalierbaren verteilten Datenstrukturen” (PDF). DEXA 2006 Springer. Abgerufen 8. Juni 2006.
  3. ^ Silberschatz, Abraham; Galvin, Peter; Gagne, Gregor (2009). “Betriebssystemkonzepte, 8. Auflage” (PDF). Universität von Babylon. John Wiley & Sons, Inc. S. 705–725. Abgerufen 4. März 2019.
  4. ^ ein b Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C. (2014), Das Netzwerkdateisystem von Sun (PDF), Arpaci-Dusseau-Bücher
  5. ^ Sandberg, Russel (1986). “Das Sun Network Filesystem: Design, Implementierung und Erfahrung” (PDF). Tagungsband der USENIX Fachtagung und Ausstellung im Sommer 1986. Sun Microsystems, Inc. Abgerufen 6. März 2019. NFS wurde entwickelt, um die gemeinsame Nutzung von Dateisystemressourcen in einem Netzwerk von nicht homogenen Maschinen zu vereinfachen.
  6. ^ Sobh, Tarek (2008). Fortschritte in Computer- und Informationswissenschaften und Ingenieurwesen. Springer Wissenschaft & Wirtschaftsmedien. S. 423–440.
  7. ^ Pessach, Yaniv (2013). Verteilter Speicher: Konzepte, Algorithmen und Implementierungen. ISBN 978-1482561043.
  8. ^ Murphy, Dan (1996). “Ursprung und Entwicklung von TOPS-20”. Dan Murphy. Ehrgeizige Pläne für Jupiter. Abgerufen 6. März 2019. Letztendlich haben sowohl VMS als auch TOPS-20 diese Art von Fähigkeit geliefert.

Weiterlesen[edit]


after-content-x4