9 Punkte von GN⁺ 2024-02-03 | 1 Kommentare | Auf WhatsApp teilen
  • Einfaches und hoch skalierbares verteiltes Dateisystem
  • Ziel ist es, Milliarden von Dateien zu speichern und schnell bereitzustellen
  • Implementiert mit Ideen aus dem Facebook-Haystack-Design und f4: Facebooks Warm-BLOB-Speichersystem
  • Der Blob-Speicher bietet O(1)-Datenträgerzugriffe und Cloud-Tiering-Funktionen
  • Der Filer unterstützt Verzeichnisse und POSIX-Eigenschaften und umfasst Cloud-Laufwerke, Active-Active-Replikation zwischen DCs, Kubernetes, POSIX-FUSE-Mounts, S3 API, S3 Gateway, Hadoop, WebDAV, Verschlüsselung, Erasure Coding und mehr

Funktionen

  • Bietet verschiedene Replikationsoptionen wie Replikationsgrad sowie Rack- und Rechenzentrumsbewusstsein.
  • Kein Single Point of Failure dank automatischem Failover des Master-Servers.
  • Unterstützt automatische Gzip-Komprimierung basierend auf dem MIME-Typ der Datei.
  • Automatische Kompaktierung zur Rückgewinnung von Speicherplatz nach dem Löschen oder Aktualisieren von Daten.
  • Der gesamte Speicherplatz kann durch das Hinzufügen weiterer Server erhöht werden.
  • Kein Rebalancing der Daten beim Hinzufügen/Entfernen von Servern; wird nur durch Administratorbefehle ausgelöst.
  • Unterstützt Bildskalierung, ETag, Accept-Range, Last-Modified usw.
  • Unterstützt Tuning für In-Memory-/LevelDB-/Read-only-Modi zum Ausgleich von Speicher und Performance.
  • Bietet anpassbare Multi-Storage-Tiers und transparente Cloud-Integration.
  • Rack-bewusstes 10.4 Erasure Coding für Warm Storage senkt Speicherkosten und verbessert die Verfügbarkeit.

Filer-Funktionen

  • Der Filer-Server stellt über HTTP „normale“ Verzeichnisse und Dateien bereit.
  • Automatischer Ablauf von Datei-Metadaten und eigentlichen Dateidaten per Datei-TTL.
  • Dateien können direkt über einen via FUSE gemounteten Filer gelesen und geschrieben werden.
  • HA für den Metadatenspeicher durch Replikation des Filer-Backends.
  • Zugriff auf Dateien mit S3-Tools über eine Amazon-S3-kompatible API.
  • Zugriff auf Dateien aus Hadoop/Spark/Flink usw. über ein Hadoop-kompatibles Dateisystem.
  • Sichere Datenspeicherung mit AES256-GCM-verschlüsseltem Storage.
  • Unterstützt die Speicherung großer Dateien im Bereich von mehreren Dutzend TB.
  • Cloud-Laufwerke mounten Cloud-Speicher in den lokalen Cluster und ermöglichen schnelles Lesen und Schreiben.

Kubernetes

  • Unterstützung für Kubernetes-CSI-Treiber und SeaweedFS-Operator.

Beispiele für die Nutzung des Seaweed-Objektspeichers

  • Anleitung zu Standardports und Startmethoden für Master-Knoten und Volume-Knoten.
  • Beispiele zum Schreiben, Lesen und Löschen von Dateien.
  • Erklärung von Rack- und Rechenzentrums-bewusster Replikation sowie der Zuweisung von Dateischlüsseln zu bestimmten Rechenzentren.

Architektur

  • SeaweedFS verwaltet Daten-Volumes, ohne Dateien in Chunks aufzuteilen.
  • Der Master-Server verwaltet nur Metadaten zu Volumes; die eigentlichen Datei-Metadaten werden von den Volume-Servern verwaltet.
  • Bietet eine detaillierte Beschreibung der Schreib- und Leseprozesse von Dateien.

Vergleich mit anderen Dateisystemen

  • Erläutert die Vorteile von SeaweedFS im Vergleich zu HDFS, GlusterFS, Ceph, MooseFS, MinIO usw.
  • SeaweedFS ist für kleine Dateien optimiert und bietet durch O(1)-Datenträger-Leseoperationen schnellen Dateizugriff.

Entwicklungsplan

  • Geplant sind mehr Tools und Dokumentation für Systemverwaltung und Skalierung.
  • Unterstützung für das Lesen und Schreiben von Stream-Daten.
  • Unterstützung für strukturierte Daten.

Installationsanleitung

  • Bietet eine Installationsanleitung für Nutzer, die mit Golang nicht vertraut sind.

Themen rund um Datenträger

  • Erläuterungen zur Performance von Festplatten und SSDs.
  • SeaweedFS hat eine SSD-freundliche Architektur.

Benchmarks

  • Stellt persönliche, nicht wissenschaftliche Single-Machine-Benchmark-Ergebnisse bereit.
  • Anleitung zur Ausführung gemischter Benchmarks mit WARP.

Lizenz

  • Lizenziert unter der Apache License, Version 2.0.

Meinung von GN⁺:

  • SeaweedFS ist ein verteiltes Dateisystem, das kleine Dateien effizient verwaltet und schnell bereitstellt. Damit eignet es sich sehr gut für moderne Web-Services, die große Datenmengen verarbeiten.
  • Durch die Kompatibilität mit verschiedenen Storages und Datenbanken bietet es Flexibilität, und durch Cloud-Integrationsfunktionen ist ein kosteneffizientes Datenmanagement möglich.
  • Als Open-Source-Projekt wird es von der Community unterstützt und kontinuierlich weiterentwickelt, was es auch aus technischer Sicht zu einem interessanten Projekt macht.

1 Kommentare

 
GN⁺ 2024-02-03
Hacker-News-Kommentare
  • Erwähnung von JuiceFS

    • In den Kommentaren werden mehrere Alternativen wie Minio, Ceph und GarageFS erwähnt.
    • Eine weitere noch nicht erwähnte Alternative ist JuiceFS.
    • Es gibt Material, das JuiceFS und SeaweedFS vergleicht.
  • Erfahrungen mit SeaweedFS

    • SeaweedFS wurde genutzt, um Milliarden mittelgroßer XML-Dokumente, Bild-Thumbnails, PDF-Dateien und Ähnliches zu speichern.
    • Es schließt die Lücke zwischen Datenbank und Dateisystem.
    • Dokumentation und Betriebstools wirken anfangs etwas ungewohnt, sind aber funktionsreich und arbeiten gut.
    • Daten konnten nach Stromausfällen, Hardwarefehlern und ähnlichen Vorfällen wiederhergestellt werden.
    • Die Lücke bei Open-Source-S3-API-Blob-Stores wurde als überraschend groß empfunden.
  • Negative Erfahrungen mit SeaweedFS

    • Es wurde entschieden, SeaweedFS nicht zu verwenden, nachdem Postgres auf einem über den CSI-Treiber von SeaweedFS eingebundenen POSIX-FS-Volume nicht initialisiert werden konnte.
    • Benötigt wird ein SDS-System, das ein vollständiges POSIX-FS und S3-Volumes bereitstellt, FOSS ist und Verwaltung, Monitoring, Disaster Recovery usw. effektiv unterstützt.
    • Systeme wie Ceph scheiden aus. GarageFS unterstützt nur S3.
  • Meinung des SeaweedFS-Entwicklers

    • SeaweedFS wurde auf einem Blob-Storage aufgebaut, der auf dem Haystack-Paper von Facebook basiert.
    • Noch sind nicht alle Funktionen vollständig entwickelt, aber es bietet eine neue Art zu programmieren, die für das Cloud-Zeitalter geeignet ist.
    • Wenn Speicherplatz benötigt wird, wird Platz zugewiesen und eine Datei-ID zurückgegeben, die wie ein Zeiger auf einen Speicherblock verwendet wird.
  • Einsatzfälle von SeaweedFS

    • SeaweedFS wird verwendet, um mehr als 50 TB an Multiplayer-Match-Aufzeichnungen (Replays) zu speichern.
    • Die integrierte Ablauf-Funktion wird genutzt, und es gab weder bei der Nutzung noch beim Hinzufügen neuer Features oder bei Migrationen Probleme.
  • Meinungen zu SeaweedFS und Min.io

    • Auf die Frage nach Erfahrungen mit selbst gehosteten S3-ähnlichen Lösungen empfehlen SeaweedFS-Nutzer Min.io, während Min.io-Nutzer SeaweedFS empfehlen.
  • Langjähriger SeaweedFS-Nutzer

    • Etwa 250.000 Objekte werden in SeaweedFS gespeichert, viele davon als Cold Storage hinter Cloudflare.
    • SeaweedFS wird seit Langem genutzt, inspiriert durch Facebooks Haystack, und gilt als sehr stabil und effizient.
  • Geschichte von Microsofts Speichertechnologien

    • Microsoft hat in der Vergangenheit mehrfach versucht, die Lücke zwischen Dateien und Datenbanken zu schließen, ist damit aber meist gescheitert.
    • Erwähnt werden Bill Gates’ Interesse an solchen Technologien und seine Enttäuschung darüber.
  • Worauf man bei der Wahl von Distributed Storage achten sollte

    • Es sollte geprüft werden, ob Distributed Storage wirklich notwendig ist oder ob man selbst sharden kann.
    • Es sollte geklärt werden, ob Blobs geändert werden müssen oder ob Lesen/Ändern/Ersetzen ausreicht.
    • Das Verhältnis von Lese- zu Schreibzugriffen sollte berücksichtigt werden.
    • Die Häufigkeit von Metadatenänderungen sollte berücksichtigt werden.
    • Es sollte bedacht werden, wie gleichzeitige Schreibzugriffe auf dasselbe Objekt verwaltet werden.
    • Es sollte entschieden werden, was wichtiger ist: Verfügbarkeit, Konsistenz oder Geschwindigkeit.
    • Es sollte bedacht werden, wie man sich von gleichzeitigen Ausfällen in einem Distributed-Storage-System erholt.
    • Die Methode der Zugriffskontrolle sollte berücksichtigt werden.
  • Leistungsvergleich zwischen SeaweedFS und Min.io

    • SeaweedFS und Min.io wurden getestet, um mehr als 100 TB an Audiodaten kostengünstig auf HDDs zu speichern.
    • SeaweedFS zeigte für diesen Anwendungsfall die bessere Leistung.