MapR FS - MapR FS
| Entwickler | MapR |
|---|---|
| Vollständiger Name | MapR FS |
| Eingeführt | 2011 mit Linux |
| Strukturen | |
| Verzeichnisinhalt | B-Baum |
| Dateizuordnung | Mehrstufiger B-Baum |
| Grenzen | |
| Max. Volumengröße | unbegrenzt |
| Max. Dateigröße | 16 EiB |
| Max. Anzahl der Dateien | unbegrenzt |
| Eigenschaften | |
| Dateisystemberechtigungen | Standard Unix, Access Control-Ausdrücke |
| Transparente Komprimierung | Ja |
| Transparente Verschlüsselung | Ja |
| Andere | |
| Unterstützte Betriebssysteme | Linux |
Das MapR-Dateisystem ( MapR FS ) ist ein Cluster-Dateisystem , das sowohl sehr umfangreiche als auch leistungsstarke Anwendungen unterstützt. MapR FS unterstützt eine Vielzahl von Schnittstellen, einschließlich des herkömmlichen Lese- / Schreibzugriffs auf Dateien über NFS und eine FUSE-Schnittstelle sowie über die HDFS-Schnittstelle, die von vielen Systemen wie Apache Hadoop und Apache Spark verwendet wird . Neben dem dateiorientierten Zugriff unterstützt MapR FS den Zugriff auf Tabellen und Nachrichtenströme über die APIs Apache HBase und Apache Kafka sowie über eine Dokumentendatenbankschnittstelle.
MapR FS wurde 2010 erstmals veröffentlicht und wird nun aufgrund der zusätzlichen Tabellen- und Messaging-Schnittstellen in der Regel als MapR Converged Data Platform bezeichnet. Dieselbe Kerntechnologie wird jedoch verwendet, um alle diese Formen der dauerhaften Datenspeicherung zu implementieren, und alle Schnittstellen werden letztendlich von denselben Serverprozessen unterstützt. Um die verschiedenen Funktionen der gesamten Datenplattform zu unterscheiden, wird der Begriff MapR FS insbesondere für die dateiorientierten Schnittstellen verwendet, MapR DB oder MapR JSON DB für die tabellarischen Schnittstellen und MapR Streams zur Beschreibung der Nachrichten-Streaming-Funktionen.
MapR FS ist ein Cluster-Dateisystem, das einen einheitlichen Zugriff von / auf Dateien und andere Objekte wie Tabellen mithilfe eines universellen Namespace bietet, auf den von jedem Client des Systems aus zugegriffen werden kann. Die Zugriffssteuerung wird auch für Dateien, Tabellen und Streams mithilfe von Zugriffssteuerungsausdrücken bereitgestellt , die eine Erweiterung der allgemeineren (und eingeschränkteren) Zugriffssteuerungsliste darstellen , damit Berechtigungen nicht nur aus Listen zulässiger Benutzer oder Gruppen, sondern auch aus Listen erstellt werden können Erlaube boolesche Kombinationen von Benutzer-ID und Gruppen.
Geschichte
MapR FS wurde ab 2009 von MapR Technologies entwickelt, um die Funktionen von Apache Hadoop durch die Bereitstellung einer leistungsfähigeren und stabileren Plattform zu erweitern. Das Design von MapR FS wird von verschiedenen anderen Systemen wie dem Andrew File System (AFS) beeinflusst. Das Konzept der Volumes in AFS weist aus Sicht der Benutzer eine starke Ähnlichkeit auf, obwohl die Implementierung in MapR FS völlig anders ist. Ein Hauptunterschied zwischen AFS und MapR FS besteht darin, dass letzteres ein starkes Konsistenzmodell verwendet, während AFS nur eine schwache Konsistenz bietet.
Um die ursprünglichen Ziele der Unterstützung von Hadoop-Programmen zu erreichen, unterstützt MapR FS die HDFS-API, indem HDFS-Funktionsaufrufe in eine interne API übersetzt werden, die auf einem benutzerdefinierten RPC-Mechanismus ( Remote Procedure Call ) basiert . Das normale einmal beschreibbare Modell von HDFS wird in MapR FS auch bei Verwendung der HDFS-API durch ein vollständig veränderbares Dateisystem ersetzt. Die Fähigkeit, Dateimutation zu unterstützen, ermöglicht die Implementierung eines NFS-Servers, der NFS-Operationen in interne MapR-RPC-Aufrufe übersetzt. Ähnliche Mechanismen werden verwendet, um eine FUSE-Schnittstelle ( Filesystem in Userspace ) und eine ungefähre Emulation der Apache HBase- API zu ermöglichen.
Die Architektur
Dateien in MapR FS werden intern implementiert, indem der Dateiinhalt in Blöcke aufgeteilt wird , die normalerweise jeweils 256 MB groß sind, obwohl die Größe für jede Datei spezifisch ist. Jeder Block wird in Container geschrieben, die das Replikationselement im Cluster sind. Container werden repliziert, und die Replikation erfolgt entweder linear, wobei jedes Replikat Schreibvorgänge an das nächste Replikat in Zeile weiterleitet, oder sternförmig, wobei das Master-Replikat Schreibvorgänge gleichzeitig an alle anderen Replikate weiterleitet. Schreibvorgänge werden vom Master-Replikat bestätigt, wenn alle Schreibvorgänge in alle Replikate abgeschlossen sind. Intern implementieren Container B-Bäume, die auf mehreren Ebenen verwendet werden, z. B. um den Dateiversatz einem Block innerhalb einer Datei zuzuordnen oder um den Dateiversatz dem richtigen 8-KB-Block innerhalb eines Blocks zuzuordnen.
Diese B-Bäume werden auch zum Implementieren von Verzeichnissen verwendet. Ein langer Hash jeder Datei oder jedes Verzeichnisnamens im Verzeichnis wird verwendet, um die untergeordnete Datei oder Verzeichnistabelle zu finden.
Ein Volume ist eine spezielle Datenstruktur, die in vielerlei Hinsicht einem Verzeichnis ähnelt, mit der Ausnahme, dass zusätzliche Zugriffssteuerungs- und Verwaltungsvorgänge möglich sind. Eine bemerkenswerte Fähigkeit von Volumes besteht darin, dass die Knoten, auf denen sich ein Volume in einem Cluster befinden kann, auf die Steuerung der Leistung beschränkt werden können, insbesondere in stark umkämpften Systemen mit mehreren Mandanten, auf denen eine Vielzahl von Workloads ausgeführt werden.
In MapR FS wird proprietäre Technologie verwendet, um Transaktionen in Containern zu implementieren und eine konsistente Wiederherstellung nach einem Absturz zu erreichen.
Weitere Funktionen des Dateisystems sind:
- Verteilte Cluster-Metadaten, einschließlich des Speicherorts aller Container und ihrer Anordnung in Replikationsketten.
- Verteilte Metadaten, einschließlich des Verzeichnisbaums. Alle Verzeichnisse werden vollständig repliziert und kein einzelner Knoten enthält alle Metadaten für den Cluster.
- Effiziente Verwendung von B-Bäumen, um auch bei sehr großen Verzeichnissen eine hohe Leistung zu erzielen.
- Partitionstoleranz. Ein Cluster kann ohne Konsistenzverlust partitioniert werden, obwohl die Verfügbarkeit beeinträchtigt sein kann. Die eingeschränkte Konsistenzreplikation über mehrere Cluster hinweg wird auch mithilfe von Volumenspiegeln und einer Echtzeitreplikation von Tabellen und Streams unterstützt.
- Konsistentes Multithread-Update. Dateien können von sehr vielen Steuerungs-Threads gleichzeitig aktualisiert oder gelesen werden, ohne dass globale Sperrstrukturen erforderlich sind.
- Rollende Upgrades und Online-Dateisystemwartung. Fast alle Wartungsarbeiten, einschließlich wichtiger Versions-Upgrades, können durchgeführt werden, während der Cluster weiterhin mit nahezu voller Geschwindigkeit arbeitet.
Siehe auch
- GFS2
- Glanz
- Google-Dateisystem
- Liste der Dateisysteme
- Lustre (Dateisystem)
- MooseFS
- OCFS2
- QFS
- RozoFS
- Shared Disk File System
- ZFS