Btrfs

Como usar o equilíbrio Btrfs?

Como usar o equilíbrio Btrfs?
O sistema de arquivos Btrfs possui suporte integrado a vários dispositivos, para que você possa criar diferentes níveis de RAID usando-o.

Depois de criar um RAID Btrfs, você pode adicionar mais dispositivos de armazenamento ao RAID para expandir o RAID. Mas, depois de adicionar mais dispositivos de armazenamento ao RAID, o Btrfs não distribuirá os dados / metadados / dados do sistema existentes para os novos dispositivos de armazenamento automaticamente. Portanto, você pode não obter a taxa de transferência desejada (velocidade de leitura / gravação) do RAID e pode não ser capaz de preencher os novos dispositivos de armazenamento com os dados redundantes necessários. Portanto, a matriz RAID pode não sobreviver ao número desejado de falhas de unidade.

Para resolver esses problemas, o sistema de arquivos Btrfs fornece uma ferramenta de balanceamento embutida. O utilitário Btrfs balance irá espalhar os dados / metadados / dados do sistema dos dispositivos de armazenamento existentes do RAID para os dispositivos de armazenamento recém-adicionados.

Neste artigo, vou mostrar como usar o utilitário Btrfs balance para espalhar os dados / metadados / dados do sistema dos dispositivos de armazenamento existentes do RAID para os dispositivos de armazenamento recém-adicionados. Então vamos começar!

Abreviações

ATAQUE - Matriz redundante de discos baratos / independentes
MB - Megabyte
GB - Gigabyte

Pré-requisitos

Para seguir este artigo, você precisa ter um Btrfs RAID ou configuração de vários dispositivos funcionando.

Eu criei um RAID Btrfs em RAID-0 configuração usando 4 dispositivos de armazenamento sdb, sdc, sdd, e sde.

Como você pode ver, o sistema de arquivos Btrfs alocado 1 GB de espaço em disco para dados1 256 MB de espaço em disco para metadata2, e 4 MB de espaço em disco para system-data3 de cada um dos dispositivos de armazenamento no RAID.

Cerca de 18.75 GB fora de 20 GB ainda não está alocado4 de cada um dos dispositivos de armazenamento do RAID.

Uso / dados do sistema de arquivos $ sudo btrfs

Escrevendo um script para gerar arquivos aleatórios

Para mostrar como o utilitário de equilíbrio do Btrfs funciona, precisamos gerar alguns arquivos aleatórios para preencher o sistema de arquivos Btrfs. Vamos criar um script de shell que faz exatamente isso.

Crie um novo genfiles de script de shell.sh no diretório / usr / local / bin / da seguinte maneira:

$ sudo nano / usr / local / bin / genfiles.sh

Digite as seguintes linhas de códigos no genfiles.sh script de shell.

#!/ bin / bash
enquanto verdadeiro
Faz
FILENAME = $ (uuidgen)
echo "[Criando] $ FILENAME"
dd if = / dev / random of = $ FILENAME bs = 1M contagem = 256 status = progresso
echo "[Criado] $ FILENAME"
feito

Assim que terminar, pressione + X seguido pela Y e para salvar o genfiles.sh script de shell.

O genfiles.sh script de shell executa um infinito enquanto ciclo.

enquanto verdadeiro
Faz
# outros códigos
feito

A linha a seguir gera um UUID usando o uuidgen comando e armazena o UUID no NOME DO ARQUIVO variável.

A linha a seguir imprime uma mensagem no console antes do arquivo NOME DO ARQUIVO é gerado.

A linha a seguir gera um novo arquivo aleatório NOME DO ARQUIVO usando o dd comando. O arquivo terá 256 MB de tamanho.

A linha a seguir imprime uma mensagem no console após o arquivo NOME DO ARQUIVO é gerado.

Adicione permissão de execução ao genfiles.sh script de shell da seguinte maneira:

$ sudo chmod + x / usr / local / bin / genfiles.sh

O genfiles.sh o script de shell agora deve estar acessível como qualquer outro comando.

$ which genfiles.sh

Gerando arquivos aleatórios no sistema de arquivos Btrfs

Queremos gerar arquivos aleatórios no RAID Btrfs. Digamos que o Btrfs RAID seja montado no /dados diretório.

Navegue até o /dados diretório onde o Btrfs RAID é montado da seguinte maneira:

$ cd / data

Como você pode ver, não há arquivos disponíveis no meu RAID Btrfs no momento.

$ ls -lh

Para gerar alguns arquivos aleatórios no diretório de trabalho atual (/dados neste caso), execute o genfiles.sh script de shell da seguinte maneira:

$ sudo genfiles.sh

O genfiles.sh o script de shell deve começar a gerar arquivos aleatórios no /dados diretório.

O genfiles.sh script está gerando arquivos aleatórios. Deixe o script ser executado por alguns minutos, de modo que ele preencha cerca de 2-3 GB de espaço em disco do RAID Btrfs.

Quando você quiser parar o genfiles.sh script de shell, pressione + C.

Como você pode ver, alguns arquivos aleatórios são gerados no Btrfs RAID.

$ ls -lh


Como você pode ver, o Btrfs RAID alocou 2 GB de cada um dos dispositivos de armazenamento adicionados ao RAID. Anteriormente, o RAID Btrfs alocava 1 GB de cada um dos dispositivos de armazenamento adicionados ao RAID.

O espaço em disco não alocado foi reduzido de 18.75 GB para 17.75 GB em todos os dispositivos de armazenamento do RAID.

Uso / dados do sistema de arquivos $ sudo btrfs

Adicionando outro dispositivo de armazenamento ao RAID Btrfs

Para mostrar como equilibrar um RAID Btrfs após adicionar um novo dispositivo de armazenamento, você deve adicionar um novo dispositivo de armazenamento a ele.

Eu adicionei um novo HDD sdf ao meu computador, que desejo adicionar ao RAID Btrfs montado no /dados diretório. Vamos ver como fazer.

$ sudo lsblk -e7

Navegue para um diretório diferente (i.e., CASA diretório) do /dados diretório da seguinte forma:

$ cd

Para adicionar o dispositivo de armazenamento sdf para o RAID Btrfs montado no /dados diretório, execute o seguinte comando:

$ sudo btrfs dispositivo add / dev / sdf / data

Como você pode ver, o dispositivo de armazenamento sdf é adicionado ao RAID Btrfs. O tamanho do RAID aumentou de 80 GB para 100 GB.

Uso / dados do sistema de arquivos $ sudo btrfs

Equilibrando o RAID Btrfs

Como você pode ver, o dispositivo de armazenamento recém-adicionado (sdf) do RAID (montado no /dados diretório) tem 20 GB não alocados, e os outros dispositivos de armazenamento (sdb, sdc, sdd, sde, etc.) ter 17.75 GB não alocado.

Uso / dados do sistema de arquivos $ sudo btrfs

Os dados1, metadados2, e dados do sistema3 estão disponíveis apenas nos dispositivos de armazenamento existentes do RAID, não no dispositivo de armazenamento recém-adicionado.

Para espalhar os dados, metadados e dados do sistema em todos os dispositivos de armazenamento do RAID (incluindo o dispositivo de armazenamento recém-adicionado) montado no /dados diretório, execute o seguinte comando:

$ sudo btrfs balance start --full-balance / data

Pode demorar um pouco para espalhar os dados, metadados e dados do sistema em todos os dispositivos de armazenamento do RAID se contiver muitos dados.

Assim que os dispositivos de armazenamento do RAID estiverem devidamente balanceados, você deverá ver a seguinte mensagem.

Como você pode ver, após a operação de equilíbrio ser concluída, o dispositivo de armazenamento recém-adicionado tem uma quantidade igual de espaço em disco não alocado que os outros dispositivos de armazenamento do RAID.

Após a operação de equilíbrio, uma quantidade igual de espaço em disco como os outros dispositivos de armazenamento do RAID é alocada para os dados, metadados e dados do sistema do dispositivo de armazenamento recém-adicionado (sdf) do RAID.

Conclusão

Neste artigo, discuti o propósito do utilitário de equilíbrio do Btrfs, bem como como equilibrar um RAID Btrfs ou sistema de arquivos com vários dispositivos após adicionar novos dispositivos de armazenamento ao RAID ou sistema de arquivos com vários dispositivos.

Melhores aplicativos de mapeamento de gamepad para Linux
Se você gosta de jogar no Linux com um gamepad em vez de um teclado típico e sistema de entrada de mouse, existem alguns aplicativos úteis para você. ...
Ferramentas úteis para jogadores de Linux
Se você gosta de jogar no Linux, é provável que tenha usado aplicativos e utilitários como Wine, Lutris e OBS Studio para melhorar a experiência de jo...
Jogos HD Remasterizados para Linux que nunca tiveram uma versão Linux anterior
Muitos desenvolvedores e editores de jogos estão apresentando remasterização em HD de jogos antigos para estender a vida da franquia, por favor, os fã...