- Sistema de arquivos distribuído simples e altamente escalável
- O objetivo é armazenar bilhões de arquivos e entregá-los rapidamente
- Implementado com base em ideias do design Haystack do Facebook e do f4: sistema de armazenamento de BLOBs mornos do Facebook
- O armazenamento de blobs tem busca em disco O(1) e recursos de hierarquização em nuvem
- O Filer oferece suporte a diretórios e atributos POSIX, incluindo drive em nuvem, replicação ativo-ativo entre DCs, Kubernetes, montagem POSIX FUSE, API S3, gateway S3, Hadoop, WebDAV, criptografia, codificação de apagamento e mais
Recursos
- Oferece várias opções de replicação, como nível de replicação, reconhecimento de rack e de data center.
- Sem ponto único de falha, com failover automático do servidor mestre.
- Suporte a compactação Gzip automática com base no tipo MIME do arquivo.
- Compactação automática para recuperar espaço em disco após exclusão ou atualização de dados.
- É possível aumentar o espaço total de armazenamento adicionando servidores.
- Não há rebalanceamento de dados ao adicionar/remover servidores; isso só é acionado por comando do administrador.
- Suporte a redimensionamento de imagens, ETag, Accept-Range, Last-Modified e mais.
- Suporte a ajuste dos modos in-memory/leveldb/readonly para equilibrar memória e desempenho.
- Oferece múltiplas camadas de armazenamento personalizáveis e integração transparente com a nuvem.
- A codificação de apagamento 10.4 com reconhecimento de rack para armazenamento morno reduz custos de armazenamento e melhora a disponibilidade.
Recursos do Filer
- O servidor Filer fornece diretórios e arquivos "normais" via HTTP.
- Expiração automática de metadados e dos dados reais dos arquivos com TTL de arquivo.
- É possível ler e gravar arquivos diretamente no filer montado via FUSE.
- Alta disponibilidade do armazenamento de metadados com replicação do armazenamento do Filer.
- Acesso a arquivos com ferramentas S3 por meio de API compatível com Amazon S3.
- Acesso a arquivos em Hadoop/Spark/Flink etc. por meio de sistema de arquivos compatível com Hadoop.
- Armazenamento criptografado com AES256-GCM para guardar dados com segurança.
- Suporte ao armazenamento de arquivos grandes com dezenas de TB.
- Como drive em nuvem, permite montar armazenamento em nuvem no cluster local para leitura e gravação rápidas.
Kubernetes
- Suporte ao driver CSI do Kubernetes e ao operador do SeaweedFS.
Exemplo de uso do armazenamento de objetos do Seaweed
- Orientações sobre portas padrão e forma de execução dos nós mestre e de volume.
- Exemplos de como gravar, ler e excluir arquivos.
- Explicação sobre replicação com reconhecimento de rack e data center, e como atribuir chaves de arquivo a um data center específico.
Arquitetura
- O SeaweedFS gerencia volumes de dados sem dividir arquivos em chunks.
- O servidor mestre gerencia apenas os metadados dos volumes, e os metadados reais dos arquivos são gerenciados pelo servidor de volumes.
- Fornece uma explicação detalhada do processo de escrita e leitura de arquivos.
Comparação com outros sistemas de arquivos
- Explica as vantagens do SeaweedFS em comparação com HDFS, GlusterFS, Ceph, MooseFS, MinIO e outros.
- O SeaweedFS é otimizado para arquivos pequenos e oferece acesso rápido com operações de leitura em disco O(1).
Plano de desenvolvimento
- Está previsto fornecer mais ferramentas e documentação para administração e expansão do sistema.
- Suporte à leitura e gravação de dados em fluxo.
- Suporte a dados estruturados.
Guia de instalação
- Fornece um guia de instalação para usuários que não estão familiarizados com Golang.
Tópicos relacionados a disco
- Explicação sobre o desempenho de discos rígidos e SSDs.
- O SeaweedFS tem uma arquitetura amigável para SSDs.
Benchmark
- Apresenta resultados pessoais e não científicos de benchmark em máquina única.
- Orientações sobre como executar benchmarks mistos usando WARP.
Licença
- Licenciado sob a Apache License, Version 2.0.
Opinião do GN⁺:
- O SeaweedFS é um sistema de arquivos distribuído que busca gerenciar pequenos arquivos com eficiência e entregá-los rapidamente. Isso o torna muito adequado para serviços web modernos que lidam com grandes volumes de dados.
- Ele oferece flexibilidade por meio da compatibilidade com vários armazenamentos e bancos de dados, e possibilita gestão de dados com boa relação custo-benefício graças aos recursos de integração com a nuvem.
- Como projeto de código aberto, recebe apoio da comunidade e continua evoluindo, o que também o torna interessante do ponto de vista técnico.
1 comentários
Comentários no Hacker News
Menção ao JuiceFS
Experiência de uso com SeaweedFS
Experiência negativa com SeaweedFS
Opinião do desenvolvedor do SeaweedFS
Caso de uso do SeaweedFS
Opiniões sobre SeaweedFS e Min.io
Usuário de longa data do SeaweedFS
Histórico das tecnologias de armazenamento da Microsoft
Pontos a considerar ao escolher armazenamento distribuído
Comparação de desempenho entre SeaweedFS e Min.io