Tenho os seguintes dispositivos com Linux Mint 18.1 em laptops e GNU / Linux Debian 9 no servidor.

(Todos são de 64 bits e com desktop Cinnamon.)

Todos os dispositivos de drive são formatados com sistema de arquivos ext4 ; RAID 1 é feito utilizando mdadm .

  1. Laptop com 1 SSHD (não deve ser confundido com HDD).

  2. Laptop com 3 unidades: 2 x HDDs de consumidor em RAID 1 e 1 x SSD.

  3. Servidor com 5 unidades: 4 x HDDs corporativos em duas vezes RAID 1 e 1 x SSD.

Tenho o sistema nesses SSDs e nunca desfragmentaria um SSD.

A pergunta é sobre HHDs e um SSHD.

Encontrei um PDF antigo descrevendo mais alguns recursos para e4defrag .

  1. Por que o sistema de arquivos deve ser montado, de acordo com esta mensagem de erro ao tentar desfragmentar um sistema de arquivos desmontado? Quero entender por que isso acontece:

    Filesystem is not mounted 
  2. Eu gostaria de implementar a desfragmentação do espaço livre. AFAIK está agora em revisão. É possível para mim, por exemplo compilar e4defrag do código-fonte com essas opções disponíveis ou de qualquer maneira?

    e4defrag -f /deviceOrDirectory 
  3. Eu faria também gosto de usar recursos de dados relevantes:

    e4defrag -r /deviceOrDirectory 

Tenho muitos motivos relevantes para acreditar que a fragmentação nessas máquinas está ficando mais lenta a velocidade de leitura, exemplo:

  1. Retirado do servidor com RAID 1 HDDs:

    [2556/30987]/raid1a/bitcoind/blocks/rev00820.dat: 100% extents: 16 -> 1 [ OK ] 
  2. Retirado do laptop com RAID 1 HDDs:

    [29405/50810]/raid1/movies/SGA-HEVC/S04E01 - Adrift.mp4: 100% extents: 31 -> 6 [ OK ] 

Como você pode ver, a desfragmentação nem mesmo conseguiu colocar o arquivo de 31 blocos em uma única parte. Claro que você pode argumentar que é um arquivo de filme, então não importa. Verdadeiro, mas apenas neste caso.

O comando que uso para iniciar a desfragmentação:

  1. No servidor:

    sudo e4defrag -v /dev/md1 
  2. No laptop:

    sudo e4defrag -v /raid1/ 

Sim parece não importar se eu invoco o comando usando o nome do dispositivo ou um diretório.

Você pode me apontar a direção certa?

Comentários

  • Você tem resultados de medição que apontam para a desfragmentação como a fonte de acesso lento? Se sim, quais? Na maioria dos casos, você não ‘ precisa fazer a desfragmentação manual em sistemas de arquivos ext4, desde que haja ‘ espaço livre suficiente para que o algoritmo de alocação o desfragmente automaticamente durante a operação normal.
  • @dirkt Nenhuma medição foi feita até agora. Eu não ‘ não discuto se é ou não eficaz desfragmentar o sistema de arquivos ext4. As perguntas são claras: como fazer e4defrag -r e e4defrag -f.

Responder

e4defrag precisa que o sistema de arquivos seja montado porque pede ao driver do sistema de arquivos do kernel para realizar a desfragmentação, ele não faça sozinho.

Quanto à desfragmentação de espaço livre e desfragmentação de arquivo relevante, os patches nunca foram concluídos; a última menção na lista de e-mails relevante data de 2014 :

O e4defrag está em e2fsprogs e o código ainda está sendo mantido e aprimorado. Dmitry Monakhov, em particular, adicionou muitos “testes de tortura” e encontrou uma série de condições de corrida no código do kernel subjacente. Ele recentemente também enviou um refator de código do código do kernel que o melhorou significativamente e (reduziu o tamanho do ext4 em 550 linhas de código).

Dito isso, não houve nenhum desenvolvimento de recurso real para e4defrag já faz algum tempo. Tem havido alguma discussão sobre o que as APIs do kernel podem ser para oferecer suporte a esse recurso, mas nunca houve uma proposta de API finalizada, muito menos uma implementação.

Portanto, duvido que haja algo que valha a pena testar atualmente.

Comentários

  • Existe alguma informação sobre a melhor prática de desfragmentação atual (2020) no ext4 – ou uma recomendação para não usar nenhuma ferramenta existente devido à falta de confiabilidade? Meu e4defrag --version diz e4defrag 1.45.5 (07-Jan-2020).
  • A situação não mudou muito.Houve um tópico não muito depois de eu escrever a resposta acima, que inclui um resumo da relevância de e4defrag em A Hora. Ainda é uma parte do Ext4 com suporte total, mas não pode ser usado em todos os casos (sistemas de arquivos com bigalloc não podem ser desfragmentados, o registro de dados é incompatível com desfragmentação e inodes DAX e arquivos criptografados não podem ser movidos).
  • Obrigado, Stephen. Isso significa que o comando é seguro no sentido de que será salvo antes de uma ação possivelmente prejudicial para que eu possa usá-lo sem risco para meus dados? (Basicamente, acabei de remover 750000 arquivos e me perguntei se o disco agora poderia estar fragmentado (suponho que esteja) e se devo limpá-lo ou deixá-lo.)
  • Como qualquer operação de sistema de arquivos, é potencialmente perigoso, portanto, use-o apenas se tiver backups (ou se os dados forem descartáveis). No entanto, o comando é seguro, tanto quanto seus desenvolvedores estão cientes; se encontrar situações que não consegue lidar, para com segurança.
  • Saúde. Ainda há 3 TB de dados no disco, sem backup. Vou esperar até ter um dia em que me sinta ousado o suficiente para tentar 🙂

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *