Btrfs

Como desfragmentar um sistema de arquivos Btrfs

Como desfragmentar um sistema de arquivos Btrfs

Btrfs é um sistema de arquivos Copy-on-Write (CoW) baseado em extensão. Arquivos grandes são armazenados em várias extensões de dados; e quando esses arquivos grandes são modificados, as extensões a serem modificadas são copiadas para extensões novas e vazias em outro local do dispositivo de armazenamento e são modificadas no novo local. Em seguida, as extensões dos arquivos grandes são vinculadas novamente para apontar para as extensões atualizadas. As extensões antigas nunca são removidas instantaneamente.

É assim que o recurso Copy-on-Write (CoW) do sistema de arquivos Btrfs causa fragmentação. A fragmentação significa que as extensões de dados de arquivos grandes estão espalhadas por todo o dispositivo de armazenamento. Eles não são instantâneos. Portanto, o desempenho (velocidade de leitura / gravação) do sistema de arquivos pode ser reduzido.

Para resolver este problema, é necessário desfragmentar o sistema de arquivos Btrfs de vez em quando. Este artigo mostra como desfragmentar o sistema de arquivos Btrfs.

Abreviações

As abreviações (formas curtas) usadas neste artigo são as seguintes:

Pré-requisitos

Para experimentar os exemplos incluídos neste artigo:

Eu tenho um HDD de 20 GB sdb na minha máquina Ubuntu. Vou criar um sistema de arquivos Btrfs no HDD sdb.

$ sudo lsblk -e7

Observação: Seu HDD / SSD provavelmente terá um nome diferente do meu, assim como as partições. Portanto, certifique-se de substituí-los pelos seus a partir de agora.

Você pode criar um sistema de arquivos Btrfs em seu HDD / SSD (sem particionamento) se você tiver um HDD / SSD sobressalente. Você também pode criar uma partição em seu HDD / SSD e criar um sistema de arquivos Btrfs lá.

Para obter ajuda com a instalação do sistema de arquivos Btrfs no Ubuntu, consulte o artigo Instalar e usar Btrfs no Ubuntu 20.04 LTS.

Para obter ajuda na instalação do sistema de arquivos Btrfs no Fedora, consulte o artigo Instalar e usar Btrfs no Fedora 33.

Criando um sistema de arquivos Btrfs

Você pode criar um sistema de arquivos Btrfs em seu HDD / SSD (não particionado) ou em sua partição HDD / SSD.

Para criar um sistema de arquivos Btrfs no sdb HDD (HDD inteiro, sem partições) e dê a ele o rótulo do sistema de arquivos dados, execute o seguinte comando:

$ sudo mkfs.btrfs -L data / dev / sdb

Um sistema de arquivos Btrfs agora deve ser criado no sdb HDD.

Crie o diretório /dados para montar o sistema de arquivos Btrfs que você acabou de criar com o seguinte comando:

$ sudo mkdir -v / data

Para montar o sistema de arquivos Btrfs criado no sdb HDD no /dados diretório, execute o seguinte comando:

$ sudo mount / dev / sdb / data

O sistema de arquivos Btrfs agora deve ser montado, como você pode ver na captura de tela abaixo:

$ df -h / data

Desfragmentando um sistema de arquivos Btrfs manualmente

Como você pode ver na captura de tela abaixo, copiei dois arquivos no sistema de arquivos Btrfs montado no /dados diretório para demonstrar o processo de desfragmentação do sistema de arquivos Btrfs:

$ ls -lh / data

Você pode desfragmentar um único arquivo ou um subvolume / diretório inteiro recursivamente.

Para desfragmentar o arquivo único / data / ubuntu-20.04.1-live-server-amd64.iso, vamos executar o seguinte comando:

$ sudo btrfs desfragmentação do sistema de arquivos -vf / data / ubuntu-20.04.1-live-server-amd64.iso

O arquivo / data / ubuntu-20.04.1-live-server-amd64.iso deve ser desfragmentado.

Para desfragmentar todos os arquivos ou diretórios do /dados diretório recursivamente, execute o seguinte comando:

$ sudo btrfs desfragmentação do sistema de arquivos -rvf / data

Como você pode ver, todos os arquivos do /dados diretório são desfragmentados.

Da mesma forma, se você tivesse o subvolume / data / osimages, então você pode desfragmentar todos os arquivos do / data / osimages subvolume recursivamente com o seguinte comando:

$ sudo btrfs desfragmentação do sistema de arquivos -rvf / data / osimages

Compactando um sistema de arquivos Btrfs durante a desfragmentação

O sistema de arquivos Btrfs permite compactar arquivos enquanto você os desfragmenta.

Para desfragmentar todos os arquivos no /dados diretório e compactá-los com o ZLIB algoritmo de compressão ao mesmo tempo, execute o comando de desfragmentação com o -czlib opção, da seguinte forma:

$ sudo btrfs desfragmentação do sistema de arquivos -rvf -czlib / data

Para desfragmentar todos os arquivos no /dados diretório e compactá-los com o ZSTD algoritmo de compressão ao mesmo tempo, execute o comando de desfragmentação com o -czstd opção, da seguinte forma:

$ sudo btrfs filesystem defragment -rvf -czstd / data

Para desfragmentar todos os arquivos no /dados diretório e compactá-los com o LZO algoritmo de compressão ao mesmo tempo, execute o comando de desfragmentação com o -clzo opção, da seguinte forma:

$ sudo btrfs desfragmentação do sistema de arquivos -rvf -clzo / data

Os arquivos no /dados o diretório deve ser desfragmentado e compactado ao mesmo tempo.

Da mesma forma, você também pode desfragmentar e compactar os arquivos de um subvolume Btrfs.

Desfragmentando um sistema de arquivos Btrfs automaticamente

Você pode habilitar a desfragmentação automática em seu sistema de arquivos Btrfs no momento da montagem. Este recurso do sistema de arquivos Btrfs irá desfragmentar todos os arquivos do seu sistema de arquivos Btrfs automaticamente.

Para montar o sistema de arquivos Btrfs criado no sdb HDD no /dados diretório com desfragmentação automática habilitada no momento da inicialização, você deve adicionar uma entrada para o sistema de arquivos Btrfs no / etc / fstab Arquivo.

Primeiro, encontre o UUID do sistema de arquivos Btrfs criado no sdb HDD, da seguinte forma:

$ sudo blkid / dev / sdb

Como você pode ver, o UUID do sistema de arquivos Btrfs criado no sdb HDD é 60afc092-e0fa-4b65-81fd-5dfd7dd884de.

Será diferente para você. Portanto, certifique-se de substituí-lo pelo seu a partir de agora.

Abra o / etc / fstab arquivo com o nano editor de texto, da seguinte forma:

$ sudo nano / etc / fstab

Adicione a seguinte linha ao final do / etc / fstab Arquivo:

UUID = 60afc092-e0fa-4b65-81fd-5dfd7dd884de / data btrfs autodefrag 0 0

Quando terminar, pressione + X seguido pela Y e para salvar o / etc / fstab Arquivo.

Para que as alterações tenham efeito, reinicie o computador com o seguinte comando:

$ sudo reboot

Como você pode ver, o sistema de arquivos Btrfs criado no sdb HDD é montado no /dados diretório com desfragmentação automática habilitada.

Problemas com a desfragmentação de um sistema de arquivos Btrfs

Embora possa parecer que a desfragmentação melhora o desempenho do sistema de arquivos, existem alguns problemas com a desfragmentação de um sistema de arquivos Btrfs.

Como o Btrfs é um sistema de arquivos Copy-on-Write (CoW), para entender os problemas com a desfragmentação do sistema de arquivos Btrfs, você deve entender o recurso Copy-on-Write do sistema de arquivos Btrfs.

Suponha que você tenha um arquivo grande (arquivo1) que usa 100 extensões (você pode pensar nas extensões como blocos de arquivos) de um sistema de arquivos Btrfs. Se você criar outra cópia desse arquivo grande (arquivo2) no mesmo sistema de arquivos Btrfs, você verá que nenhum espaço em disco adicional é usado. Isso ocorre porque os arquivos são idênticos e as 100 extensões de cada arquivo são as mesmas. Portanto, o sistema de arquivos Btrfs usa as mesmas extensões para ambos os arquivos.

Figura 1: arquivo1 e arquivo2 são idênticos e compartilham as mesmas extensões do sistema de arquivos Btrfs para economizar espaço em disco

Agora, digamos, você modificou uma das cópias do arquivo grande (arquivo2). A modificação precisa mudar 10 das 100 extensões. O sistema de arquivos Btrfs irá copiar as 10 extensões necessárias em outro local não utilizado (digamos, e101-e110) do sistema de arquivos e alterá-los lá. Uma vez que as mudanças são gravadas no disco, o sistema de arquivos Btrfs irá vincular novamente as extensões para que as mudanças sejam refletidas no arquivo grande. O processo é ilustrado na figura abaixo:

Figura 2: 10 extensões são alteradas em arquivo2. Portanto, as extensões são religadas no sistema de arquivos Btrfs.

Nas figuras 1 e 2, você pode entender como funciona o Copy-on-Write (CoW) e como o sistema de arquivos Btrfs usa o Copy-on-Write (CoW) para economizar espaço em disco.

Agora que você sabe como funciona o recurso Copy-on-Write (CoW) do sistema de arquivos Btrfs, compreenderá os problemas com a desfragmentação de um sistema de arquivos Btrfs.

  1. Arquivos de desfragmentação movem extensões de dados Btrfs e tentam alinhá-los, um após o outro. Assim, os links de cópia na gravação entre as cópias do arquivo são quebrados. Isso aumentará as extensões de dados redundantes, bem como o uso do disco de um sistema de arquivos Btrfs que foi salvo anteriormente pelo compartilhamento de extensões de dados entre cópias idênticas (ou quase idênticas) do arquivo.
  2. Se um subvolume Btrfs tiver vários instantâneos, a desfragmentação do subvolume quebrará os links de cópia na gravação entre o subvolume e os instantâneos. Isso aumentará o uso do disco de um sistema de arquivos Btrfs.
  3. Se você estiver usando o sistema de arquivos Btrfs para grandes bancos de dados ou imagens de máquina virtual (para armazenar dados / discos da VM), a desfragmentação do sistema de arquivos também afetará negativamente o desempenho do sistema de arquivos.

Conclusão

Neste artigo, você aprendeu como desfragmentar um único arquivo e os arquivos em um diretório / subvolume recursivamente de um sistema de arquivos Btrfs. Você também aprendeu como habilitar a desfragmentação automática em um sistema de arquivos Btrfs no momento da montagem. Finalmente, o artigo discutiu alguns dos problemas com a desfragmentação de um sistema de arquivos Btrfs.

O botão do meio do mouse não funciona no Windows 10
O botão do meio do mouse ajuda você a percorrer longas páginas da web e telas com muitos dados. Se isso parar, você vai acabar usando o teclado para r...
Como alterar os botões esquerdo e direito do mouse no PC com Windows 10
É normal que todos os dispositivos de mouse de computador sejam ergonomicamente projetados para usuários destros. Mas existem dispositivos de mouse di...
Emular cliques do mouse passando o mouse usando o mouse sem cliques no Windows 10
Usar um mouse ou teclado na postura errada de uso excessivo pode resultar em muitos problemas de saúde, incluindo tensão, síndrome do túnel do carpo e...