FERRAMENTAS LINUX: BeamFS: O Sistema de Arquivos Linux que Corrige uma Corrupção no Local para os Ambientes de Radiação

quarta-feira, 21 de outubro de 2026

BeamFS: O Sistema de Arquivos Linux que Corrige uma Corrupção no Local para os Ambientes de Radiação

 


O BeamFS é um sistema de arquivos Linux protegido por Reed-Solomon que corrige bytes corrompidos no local, em um único dispositivo, sem cópia secundária para reparo.


Uma nova proposta de sistema de arquivos para o kernel Linux busca resolver um problema que afeta satélites, salas de radioterapia e qualquer hardware exposto a partículas energéticas: a corrupção silenciosa de dados. 

O BeamFS chega como uma evolução do FTRFS e aposta em correção Reed-Solomon diretamente nos blocos, sem depender de cópias redundantes.


O que é o BeamFS e por que ele importa


O BeamFS é um sistema de arquivos de dispositivo de bloco que corrige bytes corrompidos no local, em um único dispositivo de armazenamento, sem uma segunda cópia para reparo. 

Cada bloco de dados é uma cápsula de dezesseis codewords RS(255,239) intercalados, construída sobre a biblioteca lib/reed_solomon do próprio kernel Linux. 

Toda leitura decodifica o bloco; se o decodificador não puder atestá-lo, a leitura falha com -EIO em vez de retornar bytes errados.

Além dos blocos de dados, os blocos de diretório, inodes, o bitmap de alocação e o superbloco também carregam paridade Reed-Solomon, e os blocos indiretos têm uma região de paridade própria. No layout padrão, 288 bytes de cada 4096 (7%) são de overhead.

O BeamFS descende do FTRFS (Fault-Tolerant Radiation-Robust Filesystem), proposto como o RFC em abril de 2026. As limitações do FTRFS estavam no design — modelo de ameaça, local da correção, escala e integração com o kernel —, por isso o BeamFS é um sistema de arquivos novo, com formato on-disk próprio e uma nova thread de discussão.


Para quem o BeamFS foi projetado


O alvo são sistemas que mantêm seus dados em um único dispositivo de armazenamento em ambiente de radiação, onde não há espaço para uma segunda cópia. 

A física por trás disso é medida, não suposta: erros suaves em silício comercial são um fato documentado; o mecanismo — uma partícula depositando carga em um nó de circuito — é modelado; nêutrons atmosféricos sozinhos perturbam aviônicos em altitude; e o próprio meio não está isento, com o flash NAND tendo modos e taxas de erro próprios.

Entre o meio físico e o page cache, uma leitura atravessa um controlador, um barramento, buffers de DMA e caches — qualquer um deles pode inverter um bit. O espaço foi onde tudo começou: o FTRFS foi projetado para computadores de bordo de satélites. 

A medicina tem o mesmo problema no solo: uma sala de radioterapia é um campo de nêutrons, e feixes de fótons acima de 10 MV liberam nêutrons do cabeçote do acelerador, enquanto feixes de prótons ou íons produzem nêutrons secundários.


A evolução em relação ao FTRFS


O FTRFS introduziu três camadas de integridade de dados: CRC32 por bloco e por inode, Reed-Solomon FEC e o Rastreamento de Erros Compatível com o EDAC. No entanto, a implementação inicial tinha o decodificador Reed-Solomon apenas planejado, e não concluído. 

O BeamFS incorpora o feedback recebido na proposta original e delega a decodificação RS em nível de kernel à lib/reed_solomon já existente na árvore do kernel — o BeamFS não traz seu próprio decodificador.

Além disso, o BeamFS segue as diretrizes de revisão do kernel Linux que emergiram da thread do FTRFS na lista linux-fsdevel. Essas diretrizes foram formalizadas em 2026, após propostas como FTRFS e VMUFAT, para estabelecer critérios mais claros para a aceitação de novos sistemas de arquivos no kernel.


Como o BeamFS se posiciona no ecossistema Linux


O kernel Linux já conta com a infraestrutura lib/reed_solomon, que implementa a decodificação em dois estágios: primeiro calcula a síndrome sobre os dados recebidos e, em seguida, realiza a correção de erros propriamente dita. O BeamFS se apoia nessa base madura em vez de reinventar a roda.

A proposta do BeamFS é interessante porque a correção acontece na camada de bloco, não na camada de consistência de metadados via journaling ou COW. 

O modelo de ameaça é o single-event upset (SEU) induzido por radiação — uma inversão de bit causada pela incidência de partículas —, e a correção Reed-Solomon atua diretamente sobre os bytes corrompidos.

Para quem acompanha o desenvolvimento do kernel, o BeamFS representa um esforço de integrar a tolerância a falhas físicas diretamente no sistema de arquivos, algo particularmente relevante diante do crescente interesse em data centers em órbita baixa e computação espacial.


FAQ


1. Qual é a principal diferença entre o BeamFS e o FTRFS?

O BeamFS é um sistema de arquivos novo, com formato on-disk próprio, que incorpora o feedback do FTRFS e delega a decodificação Reed-Solomon à lib/reed_solomon do kernel, enquanto o FTRFS tinha o decodificador RS apenas planejado e limitações de design no modelo de ameaça e na integração com o kernel.

2. O que acontece quando o decodificador Reed-Solomon não consegue atestar um bloco no BeamFS?

A leitura falha com -EIO em vez de retornar bytes errados, garantindo que dados corrompidos não sejam entregues ao usuário.


3. Qual é o overhead de armazenamento do BeamFS no layout padrão?

288 bytes de cada 4096 bytes (7%) são de overhead de paridade Reed-Solomon.


Checklist


Checklist para acompanhar a proposta do BeamFS.


□ Ler a série RFC completa na lista linux-fsdevel ou no LWN.

□ Verificar a documentação em Documentation/filesystems/beamfs.rst

□ Acompanhar as discussões sobre o formato on-disk e a integração com o VFS.

□ Comparar o design do BeamFS com o do FTRFS original.

□ Monitorar as diretrizes de novos sistemas de arquivos do kernel.

□ Testar a série de patches em ambiente controlado, se possível.


Conclusão


O BeamFS é um sistema de arquivos Linux protegido por Reed-Solomon que corrige bytes corrompidos no local, em um único dispositivo, sem cópia secundária de reparo. 

Projetado para ambientes de radiação, como satélites e salas de radioterapia, ele usa cápsulas de 16 codewords RS(255,239) por bloco de dados e falha leituras irrecuperáveis com -EIO em vez de entregar dados errados.


Nenhum comentário:

Postar um comentário