ext4 sinalizadores de montagem para armazenamento de arquivos de 10+ mill

1

Eu inicializei uma partição primária grande com o sinal -T small para mke2fs , small no sistema está configurado da seguinte forma:

    small = {
            blocksize = 1024
            inode_size = 128
            inode_ratio = 4096
    }

Este é um SSD de 800 GB (drive de nuvem) que será o lar de mais de 10 milhões de arquivos pequenos, variando de ~ 10KB a ~ 100KB.

Eu tentei ir a fundo as man pages de mount e descobrir a melhor combinação de flags e aqui está minha lista:

  • rw - ler e escrever
  • nosuid - não há necessidade de ID de usuário ou grupo na execução
  • nodev - arquivos block dev nunca devem aparecer aqui
  • noexec - arquivos com exec bit set também não são bem vindos
  • auto - permite mount -a
  • nouser - somente root pode (re) montar
  • async - escrita assíncrona
  • relatime - atualiza o tempo de acesso somente quando arquivos são modificados.
  • data=ordered - presumivelmente deve melhorar o desempenho de leitura
  • errors=remount-ro - pare de escrever quando houver erros
  • discard - recomendado para SSD
  • auto_da_alloc - combate a corrupção do sistema de arquivos em caso de falha de energia (talvez não seja necessário, já que esta é uma unidade de nuvem?)
  • inode_readahead_blks=16 - o sistema de arquivos será o lar do grande grupo de arquivos pequenos, portanto, o grande readahead não deve ser mais do que uma penalidade de desempenho. Eu não sabia o valor ideal para arquivos de tamanho médio de 50KB, então coloque aqui duas vezes menos valor que o padrão.
  • debug

Eu realmente preciso de uma segunda opinião de alguém mais experiente nesses assuntos. Estou particularmente inseguro sobre as sinalizações discard , relatime , data=ordered , auto_da_alloc , inode_readahead_blks e outras, que eu perdi ou compreendi mal. Quão perigoso é data=writeback ? Quantos dados eu posso perder com esse sinalizador, são apenas os últimos 5 segundos (valor padrão de confirmação)? Outro insight sobre este exercício?

    
por NarūnasK 14.05.2016 / 23:48

2 respostas

1

Você provavelmente deve usar o sistema de arquivos XFS para isso.

O ext4 não é adequado para essa carga de trabalho porque você está em um SSD e tem uma contagem de arquivos muito alta. Há uma razão pela qual a Red Hat agora tem como padrão o XFS .

    
por 15.05.2016 / 03:38
0

Por que não considerar o uso do ZFS no linux? O ZFS é definitivamente superior ao ext4 e é considerado pronto para produção no linux. Consulte o link

Não é difícil instalar; veja link para informações de instalação.

    
por 15.05.2016 / 00:55