Código aberto do sistema de arquivos distribuído TernFS

A empresa XTX Markets abriu o código-fonte do sistema de arquivos TernFS, projetado para criar um armazenamento distribuído abrangendo vários data centers geograficamente separados e capaz de armazenar até dezenas de exabytes de dados, trilhões de arquivos e centenas de bilhões de diretórios, com os quais milhões de clientes podem interagir simultaneamente. O código do projeto é escrito nas linguagens C++ e Go e é distribuído sob a licença GPLv2. As especificações do protocolo e as bibliotecas do cliente são fornecidas sob a licença Apache 2.0.

O FS é otimizado para cargas de trabalho típicas de sistemas de aprendizado de máquina — gravação e leitura de arquivos que não são alterados após a criação e contêm mais de alguns megabytes de dados. O FS não é projetado para a criação frequente de novos diretórios e para a movimentação frequente de arquivos entre diretórios. Possui recursos para recuperação de arquivos ou diretórios excluídos acidentalmente, bem como para a configuração de políticas de exclusão permanente. O conteúdo do FS pode ser replicado entre vários data centers em diferentes regiões. Os nós de armazenamento podem incluir diferentes tipos de dispositivos de armazenamento (baseados em discos e memória flash).

Um dos requisitos durante o design foi a ausência de um único ponto de falha e a garantia de alta confiabilidade do armazenamento — interrupções de energia não devem causar danos ao FS, e os arquivos não podem ser gravados parcialmente (apenas arquivos completamente gravados estão disponíveis para leitura). O sistema é resistente a falhas de dispositivos de armazenamento individuais, nós de metadados e nós de armazenamento. É possível realizar a manutenção do armazenamento sem interromper o funcionamento.

A implementação do armazenamento baseado em TernFS na empresa XTX Markets começou no verão de 2023, após um ano e meio de desenvolvimento do FS. Em meados de 2024, todos os sistemas de aprendizado de máquina da XTX Markets foram migrados para o TernFS. Atualmente, o armazenamento consiste em mais de 30 mil discos e 10 mil unidades Flash, distribuídos em três data centers. O volume total de dados armazenados é estimado em 500 petabytes, e o desempenho máximo chega a vários petabytes por segundo. O armazenamento é utilizado em um cluster com mais de 100 mil nós de computação. Não houve incidentes que resultassem na perda de dados durante dois anos de operação.

Entre as limitações do TernFS: arquivos gravados não podem ser alterados; baixa eficiência no trabalho com arquivos menores que 2 MB; baixa performance nas operações de criação e exclusão de diretórios; falta de separação de permissões de acesso.

Componentes que formam o cluster de armazenamento TernFS:

  • Nós de armazenamento de metadados, responsáveis pela gestão das informações sobre a estrutura de diretórios e atributos de arquivos.
  • Nós de coordenação de trabalho (CDC - Cross-Directory Coordinator), que executam transações que abrangem diferentes diretórios.
  • Serviços de armazenamento que garantem o armazenamento do conteúdo dos arquivos.
  • Registro que contém informações sobre todos os outros serviços e realiza o monitoramento de seu funcionamento.
  • Serviços de cliente para acesso dos usuários ao FS:
    • ternweb — acesso ao armazenamento através da API Web.
    • terncli — interface de linha de comando.
    • ternfs.ko — módulo para o kernel Linux, permitindo montar o armazenamento para funcionamento como um FS local.
    • ternfuse — implementação de cliente para trabalhar com o FS, utilizando a subsistema FUSE.
    • terns3 — implementação da API Amazon S3.
  • Processos em segundo plano:
    • GC — coletor de lixo que libera instantâneas desatualizadas (arquivos excluídos, mas não limpos) e limpa blocos para arquivos excluídos permanentemente.
    • scrubber — identificação de degradação de dados e recuperação.
    • migrator — remoção de discos com falha do armazenamento.

Código aberto do sistema de arquivos distribuído TernFS


Fonte: opennet.ru
Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster