Cong Wang, responsável pelo subsistema de controle de tráfego (TC, Traffic Control) no núcleo Linux e desenvolvedor do projeto Multikernel, apresentou uma nova sistema de arquivos no repositório de desenvolvedores do núcleo Linux chamada DAXFS. O DAXFS utiliza a memória RAM para armazenamento de dados, funciona em modo apenas leitura e é semelhante na funcionalidade a sistemas de arquivos reduzidos como ramfs e tmpfs. O módulo do núcleo que implementa o DAXFS, bem como a ferramenta mkdaxfs para a criação do sistema de arquivos, foram publicados sob a licença GPLv2. Após a revisão, está sendo considerada a possibilidade de integração do DAXFS no núcleo principal.
Uma característica-chave do novo sistema de arquivos é o uso do subsistema DAX (Direct Access) para operar contornando o cache de página e acessando diretamente a memória física compartilhada. No ramfs e tmpfs, o conteúdo é mantido no cache de página, o que, ao usar um único sistema de arquivos em vários contêineres ou núcleos geridos pela tecnologia Multikernel, resulta em múltiplas cópias dos dados na memória física. O preenchimento do ramfs e tmpfs também requer a realização de operações de cópia desnecessárias, sem a possibilidade de mapear uma área de memória existente.
O acesso direto à memória no DAXFS permite eliminar operações de cópia desnecessárias e organizar a operação contornando a pilha tradicional de entrada/saída baseada em dispositivos de bloco e mecanismos de buffer, além de evitar a fragmentação da alocação de memória ao compartilhar um único sistema de arquivos em diferentes contêineres e núcleos Multikernel. O DAXFS funciona em modo Zero-Copy e entrega diretamente o conteúdo dos arquivos da memória sem a duplicação desnecessária de dados no cache de página, possibilitando o mapeamento de áreas contínuas da memória física em cada instância do contêiner ou núcleo. Adicionalmente, é suportado o uso da API dma-buf para acessar memória exportada por dispositivos GPU, FPGA/SmartNIC ou CXL.
O sistema de arquivos opera em modo apenas leitura e é inicializado através do carregamento de uma imagem de sistema de arquivos pré-preparada na memória, o que simplifica a implementação, elimina a necessidade de operações de alocação de memória durante a operação e evita mecanismos de gerenciamento de dispositivos complexos.
Uma área-chave de aplicação do DAXFS é sua utilização em conjunto com a tecnologia Multikernel, que permite a execução de várias instâncias independentes do núcleo Linux em um único computador físico, tendo acesso direto aos recursos de hardware e podendo ser usadas para lançar diversos ambientes de sistema isolados.
O DAXFS também pode ser utilizado para organizar o acesso compartilhado de vários contêineres ou núcleos a uma imagem de sistema base armazenada na memória compartilhada; para reduzir a sobrecarga ao acessar informações na memória de aceleradores de hardware; e para possibilitar o acesso à memória a partir de vários hosts sem entrada/saída de rede ou a memória persistente, utilizando dispositivos baseados no barramento CXL (Compute Express Link).
Fonte: opennet.ru
