A Red Hat está desenvolvendo um novo sistema de arquivos NVFS que é eficiente para memória NVM

Mikuláš Patočka, um dos desenvolvedores do LVM e autor de vários invençõesrelacionado à otimização de sistemas de armazenamento, trabalhando na Red Hat, introduzido novo sistema de arquivos na lista de discussão de desenvolvedores do kernel Linux NVFS, que visa criar um FS compacto e rápido para chips de memória não volátil (NVM, memória não volátil, por exemplo NVDIMM), combinando desempenho de RAM com a capacidade de armazenar conteúdo permanentemente.

A experiência do FS foi levada em consideração no desenvolvimento do NVFS NOVA, criado especificamente para memória NVM em 2017, mas não aceito no kernel Linux e limitado suporte para kernels Linux de 4.13 a 5.1.
O FS NVFS proposto é muito mais simples que o NOVA (4972 linhas de código versus 21459), fornece o utilitário fsck, tem maior desempenho, suporta atributos estendidos (xattrs), rótulos de segurança, ACLs e cotas, mas não suporta instantâneos. Arquitetura NVFS está próximo de
O sistema de arquivos Ext4 se encaixa bem no modelo de sistemas de arquivos baseados no subsistema VFS, o que permite minimizar o número de camadas e se contentar com um módulo que não requer patches no kernel.

NVFS usa a interface do kernel DAX para acesso direto a dispositivos de memória persistentes, ignorando o cache da página. Para otimizar a operação da memória NVM endereçável por byte, o conteúdo da unidade é mapeado para o espaço de endereço linear do kernel sem o uso de uma camada de dispositivo de bloco tradicional e cache intermediário. Usado para armazenar o conteúdo do diretório árvore base (árvore radix) em que cada nome de arquivo é hash e o valor hash é usado ao pesquisar na árvore.

A integridade dos dados é garantida usando o “atualizações suaves"(como no UFS do FreeBSD e FFS do OpenBSD) sem usar registro no diário. Para evitar a corrupção de arquivos no NVFS, as operações de alteração de dados são agrupadas de forma que uma falha não possa levar à perda de blocos ou inodes, e a integridade das estruturas seja restaurada usando o utilitário fsck. O utilitário fsck opera em modo multithread e fornece desempenho de força bruta de 1.6 milhão de inodes por segundo.

В testes de performance O NVFS executou a operação de cópia da árvore de origem do kernel Linux na memória NVM cerca de 10% mais rápido que o NOVA, 30% mais rápido que o ext4 e 37% mais rápido que o XFS. No teste de recuperação de dados, o NVFS foi 3% mais rápido que o NOVA e 4% o ext15 e o XFS (mas com cache de disco ativo, o NOVA foi 15% mais lento).
No teste de um milhão de operações de diretório, o NVFS superou o NOVA em 40%, o ext4 em 22% e o XFS em 46%. Ao simular a atividade do DBMS, o sistema de arquivos NVFS superou o NOVA em 20%, o ext4 em 18 vezes e o XFS em 5 vezes. No teste fs_mark, o desempenho de NVFS e NOVA ficou aproximadamente no mesmo nível, enquanto ext4 e XFS ficaram cerca de 3 vezes atrás.

O atraso dos sistemas de arquivos tradicionais na memória NVM se deve ao fato de eles não serem projetados para endereçamento de bytes, que é usado na memória não volátil, que se parece com a RAM normal. A leitura de unidades convencionais garante a atomicidade da operação no nível de leitura/gravação do setor, enquanto a memória NVM fornece acesso no nível de palavras de máquina individuais. Além disso, os sistemas de arquivos tradicionais tentam reduzir a intensidade de acesso à mídia, que é considerada obviamente mais lenta que a RAM, e também tentam agrupar operações para garantir a leitura sequencial ao usar discos rígidos, processar filas de solicitações, combater a fragmentação e separar o prioridades de diferentes operações. Para a memória NVM, tais complicações são desnecessárias, pois a velocidade de acesso aos dados é comparável à da RAM e a ordem de acesso não importa.

Fonte: opennet.ru

Adicionar um comentário