- Sistema de archivos distribuido simple y altamente escalable
- Su objetivo es almacenar decenas de miles de millones de archivos y servirlos rápidamente
- Implementado a partir de ideas del diseño Haystack de Facebook y de f4: Facebook’s Warm BLOB Storage System
- El almacenamiento de blobs tiene búsqueda en disco O(1) y capacidades de almacenamiento por niveles en la nube
- Filer soporta directorios y atributos POSIX, e incluye funciones como unidad en la nube, replicación activo-activo entre DC, Kubernetes, montaje POSIX FUSE, API S3, gateway S3, Hadoop, WebDAV, cifrado y erasure coding
Funciones
- Ofrece varias opciones de replicación, incluidos niveles de réplica, reconocimiento de racks y de centros de datos.
- Sin punto único de falla gracias a la conmutación automática por error del servidor master.
- Soporta compresión Gzip automática según el tipo MIME del archivo.
- Compactación automática para recuperar espacio en disco después de borrar o actualizar datos.
- Es posible aumentar el espacio total de almacenamiento agregando servidores.
- No hay rebalanceo de datos al agregar o quitar servidores; solo se activa mediante un comando administrativo.
- Soporta redimensionamiento de imágenes, ETag, Accept-Range, Last-Modified y más.
- Soporta ajuste de modos in-memory/leveldb/readonly para equilibrar memoria y rendimiento.
- Ofrece múltiples capas de almacenamiento personalizables e integración transparente con la nube.
- El erasure coding 10.4 con reconocimiento de racks para almacenamiento tibio reduce costos y mejora la disponibilidad.
Funciones de Filer
- El servidor Filer sirve directorios y archivos “normales” a través de HTTP.
- Expiración automática de metadatos y datos reales del archivo mediante TTL de archivos.
- Se pueden leer y escribir archivos directamente en un filer montado mediante FUSE.
- La replicación del almacenamiento de Filer permite HA para el almacén de metadatos.
- Se puede acceder a archivos con herramientas S3 mediante una API compatible con Amazon S3.
- Se puede acceder a archivos desde Hadoop/Spark/Flink y otros mediante un sistema de archivos compatible con Hadoop.
- Almacena los datos de forma segura con almacenamiento cifrado AES256-GCM.
- Soporta almacenamiento de archivos grandes de decenas de TB.
- Como unidad en la nube, permite montar almacenamiento cloud en el clúster local para lecturas y escrituras rápidas.
Kubernetes
- Soporta el driver CSI de Kubernetes y el operador de SeaweedFS.
Ejemplos de uso del almacenamiento de objetos de Seaweed
- Guía de puertos predeterminados y formas de ejecución de los nodos master y volume.
- Proporciona ejemplos de cómo escribir, leer y borrar archivos.
- Explica la replicación con reconocimiento de racks y centros de datos, y cómo asignar claves de archivo a un centro de datos específico.
Arquitectura
- SeaweedFS administra volúmenes de datos sin dividir los archivos en chunks.
- El servidor master solo administra metadatos de los volúmenes, mientras que los metadatos reales de los archivos se administran en el servidor de volúmenes.
- Ofrece una explicación detallada del proceso de escritura y lectura de archivos.
Comparación con otros sistemas de archivos
- Explica las ventajas de SeaweedFS en comparación con HDFS, GlusterFS, Ceph, MooseFS, MinIO y otros.
- SeaweedFS está optimizado para archivos pequeños y ofrece acceso rápido con operaciones de lectura en disco O(1).
Plan de desarrollo
- Se planea ofrecer más herramientas y documentación para la administración y escalado del sistema.
- Soporte para lectura y escritura de datos en stream.
- Soporte para datos estructurados.
Guía de instalación
- Se ofrece una guía de instalación para usuarios no familiarizados con Golang.
Temas relacionados con disco
- Explicación del rendimiento de discos duros y SSD.
- SeaweedFS tiene una estructura amigable con SSD.
Benchmarks
- Se ofrecen resultados personales y no científicos de benchmarks en una sola máquina.
- Guía sobre cómo ejecutar benchmarks mixtos usando WARP.
Licencia
- Licenciado bajo Apache License, Version 2.0.
Opinión de GN⁺:
- SeaweedFS es un sistema de archivos distribuido orientado a gestionar eficientemente archivos pequeños y servirlos con rapidez. Esto lo hace muy adecuado para servicios web modernos que manejan grandes volúmenes de datos.
- Su compatibilidad con diversos almacenamientos y bases de datos le da flexibilidad, y su integración con la nube permite una gestión de datos rentable.
- Como proyecto de código abierto, recibe apoyo de la comunidad y sigue evolucionando continuamente, por lo que también resulta interesante desde una perspectiva técnica.
1 comentarios
Opiniones de Hacker News
Mención de JuiceFS
Experiencia usando SeaweedFS
Experiencia negativa con SeaweedFS
Opinión del desarrollador de SeaweedFS
Casos de uso de SeaweedFS
Opiniones sobre SeaweedFS y Min.io
Usuario de larga data de SeaweedFS
Historia de las tecnologías de almacenamiento de Microsoft
Aspectos a considerar al elegir almacenamiento distribuido
Comparación de rendimiento entre SeaweedFS y Min.io