9 points par GN⁺ 2024-02-03 | 1 commentaires | Partager sur WhatsApp
  • Système de fichiers distribué simple et hautement évolutif
  • Son objectif est de stocker des dizaines de milliards de fichiers et de les servir rapidement
  • Implémenté à partir d'idées inspirées du design Haystack de Facebook et de f4: Facebook’s Warm BLOB Storage System
  • Le stockage de blobs offre une recherche disque en O(1) et des capacités de tiering cloud
  • Le Filer prend en charge les répertoires et les attributs POSIX, et inclut notamment cloud drive, la réplication active-active entre DC, Kubernetes, les montages POSIX FUSE, l'API S3, une passerelle S3, Hadoop, WebDAV, le chiffrement et l'erasure coding

Fonctionnalités

  • Propose différentes options de réplication, dont le niveau de réplication, la prise en compte des racks et des data centers.
  • Basculement automatique du serveur master, sans point unique de défaillance.
  • Prise en charge de la compression Gzip automatique selon le type MIME des fichiers.
  • Compactage automatique pour récupérer l'espace disque après suppression ou mise à jour de données.
  • La capacité totale de stockage peut être augmentée en ajoutant des serveurs.
  • Aucun rééquilibrage des données lors de l'ajout ou du retrait de serveurs, sauf déclenchement explicite par commande administrateur.
  • Prise en charge du redimensionnement d'images, d'ETag, d'Accept-Range, de Last-Modified, etc.
  • Prise en charge du réglage des modes in-memory/leveldb/readonly pour équilibrer mémoire et performances.
  • Fournit plusieurs niveaux de stockage personnalisables et une intégration cloud transparente.
  • L'erasure coding 10.4 avec prise en compte des racks pour le stockage tiède réduit les coûts de stockage et améliore la disponibilité.

Fonctionnalités du Filer

  • Le serveur Filer sert des répertoires et fichiers « normaux » via HTTP.
  • Expiration automatique des métadonnées et des données réelles des fichiers grâce au TTL des fichiers.
  • Possibilité de lire et d'écrire directement des fichiers via un Filer monté avec FUSE.
  • La réplication du stockage Filer permet la haute disponibilité du magasin de métadonnées.
  • Accès aux fichiers avec des outils S3 via une API compatible Amazon S3.
  • Accès aux fichiers depuis Hadoop/Spark/Flink, etc., via un système de fichiers compatible Hadoop.
  • Stockage sécurisé des données avec un stockage chiffré AES256-GCM.
  • Prise en charge du stockage de très gros fichiers de plusieurs dizaines de To.
  • cloud drive permet de monter un stockage cloud sur un cluster local pour des lectures et écritures rapides.

Kubernetes

  • Prise en charge du pilote CSI Kubernetes et de l'opérateur SeaweedFS.

Exemple d'utilisation du stockage objet Seaweed

  • Présentation des ports par défaut et de la méthode d'exécution des nœuds master et volume.
  • Exemples montrant comment écrire, lire et supprimer des fichiers.
  • Explication de la réplication avec prise en compte des racks et des data centers, ainsi que de la manière d'affecter des clés de fichier à un data center spécifique.

Architecture

  • SeaweedFS gère des volumes de données sans découper les fichiers en chunks.
  • Le serveur master ne gère que les métadonnées des volumes, tandis que les métadonnées réelles des fichiers sont gérées par les serveurs de volumes.
  • Fournit une explication détaillée du processus d'écriture et de lecture des fichiers.

Comparaison avec d'autres systèmes de fichiers

  • Présente les avantages de SeaweedFS en le comparant à HDFS, GlusterFS, Ceph, MooseFS, MinIO, etc.
  • SeaweedFS est optimisé pour les petits fichiers et offre un accès rapide grâce à des lectures disque en O(1).

Feuille de route de développement

  • Davantage d'outils et de documentation prévus pour l'administration et l'extension du système.
  • Prise en charge de la lecture et de l'écriture de données de flux.
  • Prise en charge des données structurées.

Guide d'installation

  • Guide d'installation fourni pour les utilisateurs peu familiers avec Golang.

Sujets liés au disque

  • Explications sur les performances des disques durs et des SSD.
  • SeaweedFS dispose d'une architecture adaptée aux SSD.

Benchmark

  • Présentation de résultats de benchmark personnels, non scientifiques, sur une machine unique.
  • Explication de la manière d'exécuter des benchmarks mixtes à l'aide de WARP.

Licence

  • Distribué sous licence Apache License, Version 2.0.

Avis de GN⁺ :

  • SeaweedFS est un système de fichiers distribué conçu pour gérer efficacement les petits fichiers et les servir rapidement. Il est particulièrement adapté aux services web modernes manipulant de gros volumes de données.
  • Sa compatibilité avec divers stockages et bases de données lui apporte de la flexibilité, et ses fonctions d'intégration cloud permettent une gestion des données rentable.
  • En tant que projet open source, il bénéficie du soutien de la communauté et continue d'évoluer, ce qui en fait aussi un projet intéressant d'un point de vue technique.

1 commentaires

 
GN⁺ 2024-02-03
Avis sur Hacker News
  • Mention de JuiceFS

    • Plusieurs alternatives comme Minio, Ceph et GarageFS sont mentionnées dans les commentaires.
    • Une autre alternative qui n’avait pas encore été citée est JuiceFS.
    • Il existe une comparaison entre JuiceFS et SeaweedFS.
  • Expérience d’utilisation de SeaweedFS

    • SeaweedFS a été utilisé pour stocker des milliards de documents XML de taille intermédiaire, des vignettes d’images, des fichiers PDF, etc.
    • Il comble l’écart entre la base de données et le système de fichiers.
    • La documentation et les outils d’exploitation sont un peu déroutants au début, mais le système est riche en fonctionnalités et fonctionne bien.
    • Il a été possible de récupérer les données après des coupures de courant et des pannes matérielles.
    • L’écart dans le domaine des blob stores open source compatibles S3 paraît surprenant.
  • Expérience négative avec SeaweedFS

    • Il a été décidé de ne pas utiliser SeaweedFS après l’échec de l’initialisation de Postgres sur un volume FS POSIX monté via le pilote CSI de SeaweedFS.
    • Un système SDS est nécessaire, capable de fournir à la fois un FS POSIX complet et des volumes S3, en FOSS, avec une gestion efficace de l’administration, de la supervision et de la reprise après sinistre.
    • Les systèmes comme Ceph sont exclus. GarageFS ne prend en charge que S3.
  • Avis du développeur de SeaweedFS

    • SeaweedFS est construit au-dessus d’un stockage de blobs basé sur l’article Haystack de Facebook.
    • Toutes les fonctionnalités ne sont pas encore totalement développées, mais le système propose une nouvelle manière de programmer adaptée à l’ère du cloud.
    • Lorsqu’un espace de stockage est nécessaire, on alloue de l’espace et on reçoit un ID de fichier, utilisé comme un pointeur vers un bloc mémoire.
  • Cas d’usage de SeaweedFS

    • SeaweedFS est utilisé pour stocker plus de 50 To d’enregistrements de matchs multijoueurs (replays).
    • La fonction d’expiration intégrée est utilisée, sans problème à l’usage, pour l’ajout de nouvelles fonctionnalités ni pour les migrations.
  • Avis sur SeaweedFS et Min.io

    • À la question de savoir quelle solution auto-hébergée de type S3 recommander, les utilisateurs de SeaweedFS conseillent Min.io, tandis que les utilisateurs de Min.io recommandent SeaweedFS.
  • Utilisateur de longue date de SeaweedFS

    • Environ 250 000 objets sont stockés dans SeaweedFS, dont une grande partie en cold storage derrière Cloudflare.
    • SeaweedFS est utilisé depuis longtemps par intérêt pour Haystack de Facebook, et le système s’est montré très stable et efficace.
  • Historique des technologies de stockage chez Microsoft

    • Microsoft a tenté à plusieurs reprises par le passé de combler l’écart entre les fichiers et les bases de données, mais la plupart de ces tentatives ont échoué.
    • L’intérêt de Bill Gates pour ce type de technologie et sa déception sont mentionnés.
  • Points à considérer lors du choix d’un stockage distribué

    • Il faut se demander si un stockage distribué est vraiment nécessaire et s’il est possible de faire le sharding soi-même.
    • Il faut vérifier si les blobs doivent être modifiés, ou si lire / modifier / remplacer suffit.
    • Il faut prendre en compte le ratio entre lectures et écritures.
    • Il faut considérer la fréquence des changements de métadonnées.
    • Il faut réfléchir à la manière de gérer les écritures simultanées sur un même objet.
    • Il faut déterminer ce qui compte le plus entre disponibilité, cohérence et vitesse.
    • Il faut envisager comment récupérer après des défaillances simultanées dans un stockage distribué.
    • Il faut considérer la méthode de contrôle d’accès.
  • Comparaison de performances entre SeaweedFS et Min.io

    • SeaweedFS et Min.io ont été testés pour stocker à bas coût plus de 100 To de données audio sur HDD.
    • SeaweedFS a montré de meilleures performances pour ce cas d’usage.