Ext4 (Português)

Status de tradução: Esse artigo é uma tradução de Ext4. Data da última tradução: 2020-03-26. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

De Ext4 - Linux Kernel Newbies (traduzido):

Ext4 é a evolução do sistema de arquivos mais usado no Linux, o Ext3. De diversas formas, o Ext4 é uma melhoria mais profunda sobre Ext3 do que o Ext3 foi sobre Ext2. O Ext3 foi principalmente sobre adicionar journaling ao Ext2, mas o Ext4 modifica estruturas de dados importantes do sistema de arquivos como aqueles projetados para armazenar os dados de arquivos. O resultado é um sistema de arquivos com um desenho melhorado, melhor desempenho, confiabilidade e recursos.

Criando um novo sistema de arquivos ext4

Para formatar uma partição, faça:

# mkfs.ext4 /dev/partição
Dica:
  • Veja mke2fs(8) para mais opções; edite /etc/mke2fs.conf para ver/configurar as opções padrões.
  • Se houver suporte, você pode querer habilitar suporte a 64-bits e metadados de somas de verificação (também conhecidos como checksums).

Proporção de bytes por nó-i

Traduzido de mke2fs(8):

mke2fs cria um nó-i para todos os bytes por nó-i de espaço no disco. Quanto maior proporção de bytes por nó-i, menos nós-i serão criados.

A criação de um novo arquivo, diretório, link simbólico etc. exige pelo menos um nó-i livre. Se a contagem de nós-i for pequena demais, nenhum arquivo pode ser criado no sistema de arquivos mesmo se ainda houver espaço restante nele.

Porque não é possível alterar a proporção de bytes por nó-i ou a contagem de nós-i após o sistema de arquivos ser criado, o mkfs.ext4 usa, por padrão, uma proporção relativamente baixa de um nó-i a cada 16384 bytes (16 KB) para evitar essa situação.

Porém, para partições com tamanho em centenas ou milhares de GB e tamanho de arquivo médio na faixa de megabytes, isso geralmente resulta em um número muito grande de nós-i porque o número de arquivos criados nunca alcança o número de nós-i.

Isso resulta em um desperdício de espaço em disco, porque todos arquivos nós-i não usados ocupam até 256 bytes no sistema de arquivos (isso também é definido em /etc/mke2fs.conf, mas não deve ser alterado). 256 * vários milhões = alguns poucos gigabytes desperdiçados em nós-i não usados.

Essa situação pode ser avaliada comparando as figuras {I}Uso% fornecidas pelo df e :

$ df -hi /home
Sist. Arq.              Inodes IUsado ILivre '''IUso%'''   Montado em
/dev/mapper/lvm-home    1.8M    1.1K   1.8M   '''1%'''     /home

Para especificar uma proporção de bytes por nó-i diferente, você pode usar a opção que sugere o uso esperado do sistema de arquivos usando tipos definidos em /etc/mke2fs.conf. Além daqueles tipos estão os largefile e maiores, que oferecem proporções mais relevantes de um nó-i a cada 1 MB e 4 MB, respectivamente. Pode-se usar da seguinte forma:

# mkfs.ext4 -T largefile /dev/dispositivo

A proporção de bytes por nó-i também pode ser definida diretamente via a opção : p.ex.: use para uma proporção 2 MB e para uma proporção 6 MB.

Blocos reservados

Por padrão, 5% dos blocos de sistema de arquivos serão reservados para o superusuário, para evitar fragmentação e "permitir daemons do root continuarem a funcionar corretamente após processos sem privilégios serem impedidos de escrever no sistema de arquivos" (traduzido de mke2fs(8)).

Para discos modernos de alta capacidade, isso é mais alto do que necessário se a partição for usada como um arquivo de longo prazo ou não crucial para operações do sistema (como ). Veja esse e-mail para a opinião do desenvolvedor do ext4 Ted Ts'o sobre blocos reservados.

Geralmente é seguro reduzir a percentagem de blocos reservados para liberar espaço de disco quando a partição é:

  • Grande demais (por exemplo > 50G); ou
  • Usado como arquivo de longo prazo, isto é, onde arquivos não serão excluídos e criados com muita frequência

A opção -m de utilitários relacionados ao ext4 permitem especificar a percentagem de blocos reservados.

Para impedir totalmente de reservar blocos na criação do sistema de arquivos, use:

# mkfs.ext4 -m 0 /dev/dispositivo

Para alterá-lo para 1% posteriormente, use:

# tune2fs -m 1 /dev/dispositivo

Você pode usar para localizar o nome do dispositivo:

$ findmnt /o/ponto/de/montagem

Migrando de ext2/ext3 para ext4

Motivo

Um compromisso entre a conversão total para ext4 e simplesmente permanecer com ext2/ext3 é montar as partições como ext4.

Vantagens:

  • Compatibilidade (o sistema de arquivos pode continuar sendo montado como ext3) Isso permite que os usuários ainda leiam o sistema de arquivos de outros sistemas operacionais sem suporte a ext4 (por exemplo, o Windows com drivers ext2/ext3)
  • Melhor desempenho (embora não tanto como uma partição ext4 totalmente convertida).

Desvantagens:

  • Menos recursos do ext4 são usados (apenas aqueles que não alteram o formato do disco, como a alocação de múltiplos blocos e a alocação atrasada)

Procedimento

  1. Edite /etc/fstab e altere o 'type' de ext2/ext3 para ext4 para quaisquer partições você gostaria de montar como ext4.
  2. Monte novamente as partições afetadas.

Motivo

Para experimentar os benefícios do ext4, um processo de conversão irreversível deve ser concluído.

Vantagens:

  • Desempenho melhorado e novos recursos.

Desvantagens:

  • As partições que contêm principalmente arquivos estáticos, como uma partição , podem não se beneficiar dos novos recursos. Além disso, adicionar um journal (que está implícito ao mover uma partição ext2 para ext3/4) sempre incorre em despesas extras ao custo de desempenho.
  • Irreversível (as partições ext4 não podem ser "rebaixadas" para ext2/ext3. No entanto, é compatível com versões anteriores até que a extensão e outras opções exclusivas estejam habilitadas)

Procedimento

Essas instruções foram adaptadas da documentação do Kernel e um tópico do BBS.

Nas etapas a seguir, denota o caminho para a partição a ser convertida, tal como .

  1. Faça backup de todos os dados em quaisquer partições ext3 que serão convertidas para ext4. Um pacote útil, especialmente para partições raiz, é o .
  2. Edite /etc/fstab e altere o 'type' de ext3 para ext4 para quaisquer partições que serão convertidos para ext4.
  3. Inicialize uma mídia Live (se necessário). O processo de conversão com deve ser feito quando a unidade não está montada. Se estiver convertendo uma partição raiz, a forma mais simples de alcançar isso é inicializar de alguma outra mídia Live.
  4. Certifique-se que a partição não está montada.
  5. Se você quiser converter uma partição ext2, a primeira etapa de conversão é adicionar um journal executando como root; fazendo dela uma partição ext3.
  6. Execute como root. Esse comando converte o sistema de arquivos ext3 para ext4 (irreversivelmente).
  7. Execute fsck -f /dev/sdxX como root.
    • Esta etapa é necessária, do contrário o sistema de arquivos ficará ilegível. A execução de fsck é necessária para retornar o sistema de arquivos para um estado consistente. Ele vai encontrar erros de soma de verificação nos descritores de grupo - isso é esperado. A opção pede que o fsck verifique mesmo se o sistema de arquivos parecer limpo. A opção pode ser usada sobre a "reparação automática" (do contrário, o usuário será solicitado a intervir em cada erro).
  8. Recomendado: monte a partição e execute como root.
    • Mesmo que o sistema de arquivos agora esteja convertido em ext4, todos os arquivos que foram escritos antes da conversão ainda não aproveitam a opção de extensão do ext4, que melhorará o desempenho de arquivos grandes e reduzirá a fragmentação e o tempo de verificação do sistema de arquivos. Para aproveitar plenamente o ext4, todos os arquivos teriam que ser reescritos no disco. Use e4defrag para cuidar desse problema.
  9. Reinicie.

Melhorando o desempenho

E4rat

E4rat é um aplicativo de pré-carregamento projetado para o sistema de arquivos ext4. Ele monitora os arquivos abertos durante a inicialização, otimiza seu posicionamento na partição para melhorar o tempo de acesso e os pré-carrega no começo do processo de inicialização. E4rat não oferece melhorias com SSDs, cujo tempo de acesso é insignificante em comparação com discos rígidos.

Desabilitando atualização de tempo de acesso

O sistema de arquivos ext4 registra informações sobre quando um arquivo foi acessado pela última vez e há um custo associado ao registro dele. Com a opção noatime, os timestamps de acesso no sistema de arquivos não são atualizados.

Fazer isso quebra aplicativos que dependem do tempo de acesso, veja fstab#Opções atime para soluções possíveis.

Aumentando o intervalo de commit

O intervalo de sincronização para dados e metadados pode ser aumentado, proporcionando um maior atraso de tempo para a opção .

O 5 segundos padrão significa que, se a energia for perdida, será perdido tanto quanto os últimos 5 segundos de trabalho. Isso força uma sincronia completa de todos os dados/journals para mídia física a cada 5 segundos. O sistema de arquivos não será danificado, graças ao registro no journaling. O seguinte fstab ilustra o uso de :

Desligando barreiras

Ext4 permite barreiras de gravação por padrão. Isso garante que os metadados do sistema de arquivos sejam corretamente escritos e ordenados no disco, mesmo quando os caches de gravação perdem energia. Isso ocorre com um custo de desempenho especialmente para aplicativos que usam fsync intensamente ou criam e excluem muitos pequenos arquivos. Para discos que tenham um cache de gravação com respaldo de bateria de uma forma ou de outra, desabilitar as barreiras pode melhorar o desempenho com segurança.

Para desligar as barreiras, adicione a opção ao sistema de arquivos desejado. Por exemplo:

/etc/fstab
/dev/sda5    /    ext4    noatime,'''barrier=0'''   0    1

Desabilitando journaling

Desabilitar o journal do ext4 pode ser feito com o seguinte comando em um disco desmontado:

# tune2fs -O "^has_journal" /dev/sdXN

Use journal externo para otimizar o desempenho

Para aqueles com preocupações sobre integridade e desempenho de dados, o registro no jornal pode ser significativamente acelerado com a opção de montagem . Note que não funciona com o padrão balanceado de , então isso é recomendado apenas quando o sistema de arquivos já estiver usando cautelosamente.

Você pode formatar um dispositivo dedicado para o journal com . Use para atribuir o journal a um dispositivo existente ou substitua por mkfs.ext4 se você estiver criando um novo sistema de arquivos.

Dicas e truques

Usando criptografia baseada em arquivos

Desde o Linux 4.1, o ext4 possui suporte nativo a criptografia de arquivos — consulte o artigo fscrypt. A criptografia é aplicada no nível do diretório, e diretórios diferentes podem usar chaves de criptografia diferentes. Isso é diferente de dm-crypt, que é a criptografia em nível de dispositivo de bloco, e de eCryptfs, que é um sistema de arquivos criptográficos empilhados.

Habilitando somas de verificação de metadados

Quando um sistema de arquivos foi criado com o 1.44 ou posterior, as somas de verificação de metadados já devem estar ativadas por padrão. Os sistemas de arquivos existentes podem ser convertidos para permitir o suporte à soma de verificação de metadados.

Se o seu CPU tem suporte a SSE 4.2, certifique-se que o módulo de kernel crc32c_intel esteja carregado para habilitar o algoritmo CRC32C acelerado por hardware . Caso contrário, você precisará carregar o módulo .

Para ler mais sobre metadados de somas de verificação, veja o wiki do ext4.

Novo sistema de arquivos

Para habilitar o suporte a somas de verificação de metadados ext4 ao criar um novo sistema de arquivos.

# mkfs.ext4 -O metadata_csum /dev/caminho/para/disco

Converter arquivo de sistema existente

Primeiro, a partição precisa ser verificada e otimizada usando e2fsck:

# e2fsck -Df /dev/caminho/para/disco

Converta o sistema de arquivos para 64 bits:

# resize2fs -b /dev/caminho/para/disco

Finalmente, habilite suporte a somas de verificação:

# tune2fs -O metadata_csum /dev/caminho/para/disco

Veja também

gollark: Encryption keys of some sort for DRM? Those are subject to some bits of the DMCA IIRC.
gollark: I don't know if it's ever come up, but it's an interesting question.
gollark: https://bitcoin.stackexchange.com/questions/39347/how-to-store-data-on-the-blockchain
gollark: Transactions can be (ab?)used to store data, I think.
gollark: I mean, it would be replicated to all the blockchain nodes, so are *they* breaking the law?
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.