4 pontos por GN⁺ 2025-12-20 | 1 comentários | Compartilhar no WhatsApp
  • Garage é um armazenamento de objetos compatível com S3 que pode operar de forma estável mesmo fora de ambientes de datacenter
  • Fornecido como um binário único sem dependências, pode ser executado facilmente em qualquer distribuição Linux
  • Os dados são replicados em 3 zonas (zones), garantindo alta redundância e tolerância a falhas
  • Implementa a Amazon S3 API, sendo compatível com vários aplicativos como Nextcloud, Matrix e Mastodon
  • Com baixos requisitos de hardware e um design baseado em pesquisa pública, amplia a acessibilidade a sistemas distribuídos

Visão geral

  • Garage é um armazenamento de objetos S3 que pode ser operado de forma confiável mesmo fora de datacenters, podendo ser executado em vários datacenters pela internet
  • Pode ser usado para diversos fins, como hospedagem de sites, armazenamento de mídia e destino de backup

Objetivos de design

  • Sistema desenvolvido com foco em leveza e eficiência
    • Distribuído como um executável único sem dependências, funciona em qualquer distribuição Linux
    • Projetado para ser amigável a administradores de sistemas, visando implantação rápida e operação segura
  • Projetado para ser implantável em qualquer ambiente, podendo operar entre vários datacenters na internet mesmo sem uma rede backbone dedicada
  • Oferece alta resiliência, suportando falhas de rede, latência, erros de disco e falhas operacionais humanas

Requisitos mínimos

  • CPU: x86_64, ARMv7 ou ARMv8 dos últimos 10 anos
  • RAM: 1GB
  • Espaço em disco: mínimo de 16GB
  • Rede: latência de até 200ms, largura de banda de pelo menos 50Mbps
  • O suporte a hardware heterogêneo permite montar clusters com equipamentos usados

Durabilidade dos dados e compatibilidade

  • Cada pedaço de dado (chunk) é armazenado com replicação em 3 zonas
  • Implementa a Amazon S3 API, com compatibilidade imediata com aplicativos existentes
    • Exemplos compatíveis: Nextcloud, Matrix, Cyberduck, Mastodon, Rclone, PeerTube

Base técnica

  • Garage foi projetado com base em resultados recentes de pesquisa em sistemas distribuídos
    • O armazenamento chave-valor Dynamo da Amazon
    • Conflict-Free Replicated Data Types (CRDTs)
    • O balanceador de carga de rede por software Maglev

Patrocínio e financiamento

  • O projeto Garage recebeu financiamento público várias vezes
    • 2021–2022: NGI POINTER – suporte equivalente a 3 funcionários em tempo integral por 1 ano
    • 2023–2024: NLnet / NGI0 Entrust – suporte equivalente a 1 funcionário em tempo integral por 1 ano
    • 2025: NLnet / NGI0 Commons Fund – suporte equivalente a 1,5 funcionário em tempo integral por 1 ano
  • Recebe apoio financeiro do programa de pesquisa e inovação Horizon 2021 da União Europeia e do programa Next Generation Internet
  • Também é possível participar por meio de patrocínio adicional ou contrato de apoio (contato: garagehq@deuxfleurs.fr)

1 comentários

 
GN⁺ 2025-12-20
Opiniões no Hacker News
  • Recentemente validamos o Garage de forma bastante ampla em testes internos
    A implantação foi um pouco mais simples que a do MinIO, mas ele ficou atrás em desempenho de alta velocidade
    Em um ambiente com NIC de 25G, o MinIO chegou a 20~25Gbps, enquanto o Garage ficou limitado a cerca de 5Gbps
    A impressão é que o Garage não tem como objetivo esse tipo de caso de uso de alto desempenho
    Na próxima vez, pretendemos avaliar também RustFS e Ceph/Rook
    Por causa da direção recente do MinIO, parece que no fim vamos precisar procurar outra alternativa

    • O Garage oficialmente não tem como meta o desempenho máximo
      A filosofia é: “alto desempenho impõe restrições ao design e à infraestrutura, então buscamos desempenho por meio do minimalismo
      (documento de Design Goals)
      Ainda assim, é interessante entender onde está o gargalo de desempenho. Pode ser que ele tenha menos paralelismo que o MinIO
    • Se você só precisa de S3, não recomendaria o Rook
      A complexidade é muito alta e, se você não entender bem como ele funciona, fica difícil recuperar o cluster quando ele quebra
    • Sugiro incluir SeaweedFS na lista de testes também
  • Parece um projeto interessante para desenvolvimento local
    Mas, ao ver o guia de configuração para produção, dá um certo receio
    O Garage recomenda sistemas de arquivos como BTRFS ou ZFS porque não faz checksum e verificação de integridade próprios ao armazenar metadados
    O mecanismo padrão, LMDB, tem risco de corrupção de dados em desligamentos anormais, então snapshots regulares são necessários
    SQLite também é possível, mas foi surpreendente ver que o banco padrão é vulnerável a queda de energia

    • Se alguém conhecer um armazenamento KV embutido com suporte a transações, alta velocidade, bindings para Rust, checksum e verificação de integridade nativos, pedem para avisar
      Disseram que o integrariam ao Garage imediatamente
    • Tenho usado MinIO para desenvolvimento local, mas essa versão agora não recebe mais manutenção
      O requisito mínimo do Garage de 1 GB de RAM pareceu um pouco pesado
    • O problema de corrupção de dados em caso de queda de energia é difícil de resolver totalmente por software
      Recomenda-se usar SSDs NVMe com PLP (proteção contra perda de energia) ou um UPS
  • Depois do caso MinIO, estou vendo uma forte adoção do Garage
    O post da Repoflow comparando benchmarks foi útil
    RustFS também pareceu interessante, mas foi descartado por motivos não técnicos
    Se alguém tiver dicas para substituir o MinIO, gostaria de ouvir

    • Não usei pessoalmente, mas o Versity S3 Gateway também parece bom
      Veja o link do GitHub
      Também tenho curiosidade sobre uma comparação com o Ceph S3 Gateway
    • Houve uma pergunta sobre por que RustFS foi excluído
    • Com base em discussões anteriores e experiência de trabalho, o Garage parece uma alternativa estável
    • Nos benchmarks, o SeaweedFS também mostrou bom desempenho
  • O site oficial da Deuxfleurs tem o design mais bonito que já vi até hoje

    • Artisticamente é excelente, mas em legibilidade e acessibilidade deixa a desejar
  • Estou usando Garage para desenvolvimento e testes locais
    Com s5cmd, dá para semear 15 GB e mais de 60 mil objetos em menos de 60 segundos
    Com Docker, a replicação de um ambiente de staging com API, DB, cache e contêineres de objetos fica pronta em menos de 2 minutos
    A configuração é muito simples e tem funcionado de forma estável
    Antes eu usava o LocalStack S3, mas o problema era a falta de persistência, e o MinIO OSS também deixou de receber manutenção
    Avaliei SeaweedFS e RustFS, mas o Garage foi o mais fácil

  • O Garage foi muito impressionante nos testes e benchmarks
    É fácil de implantar como binário único e a documentação é boa
    Mas a ausência de suporte a tags de objeto foi uma grande decepção
    No mundo das APIs de nuvem, tags são uma funcionalidade básica, então espero que isso melhore

    • A equipe de desenvolvimento respondeu agradecendo pelo feedback
  • Gosto muito do Garage
    Mais do que uma simples alternativa ao S3, ele também é útil em uma arquitetura hiperconvergente
    A ideia de ler os dados primeiro da máquina local e só usar a rede quando necessário é muito boa

    • Houve uma pergunta sobre qual configuração está sendo usada
  • A ausência de erasure coding representa uma perda grande em tolerância a falhas e eficiência

    • Eu queria usá-lo com uma biblioteca de fitas LTO, mas me preocupou o fato de oferecer apenas tolerância a falhas baseada em replicação
      A principal preocupação era como aconteceria a recuperação em caso de falha de hardware
  • O Garage foi útil em scripts de engenharia de dados
    Como a maioria das ferramentas oferece integração com S3, é fácil despejar dados no Garage e depois expandir para a nuvem

  • Testei o Garage recentemente
    Depois de enviar cerca de 300 documentos (1 GB) e tentar apagá-los, o serviço S3 travou dentro do contêiner e precisou ser reiniciado
    É um projeto legal, mas, na minha experiência, ainda falta confiabilidade