Propaganda

Se você possui vários discos rígidos em seu sistema Linux, não precisa tratá-los como dispositivos de armazenamento diferentes. Com o Btrfs, você pode facilmente criar um pool de armazenamento a partir desses discos rígidos.

Sob certas condições, você pode até ativar o espelhamento para não perder seus dados devido a falha no disco rígido. Com tudo configurado, você pode simplesmente jogar o que quiser na piscina e aproveitar ao máximo o espaço de armazenamento disponível.

Não existe um utilitário de configuração da GUI que possa facilitar tudo isso (ainda), mas ainda é muito fácil de fazer com a linha de comando. Vou orientá-lo em uma configuração simples para usar vários discos rígidos juntos.

O que é Btrfs?

Btrfs (chamado sistema de arquivos em árvore B, “Butter FS” ou “Better FS”) é um próximo sistema de arquivos Ext4 vs. Btrfs: Por que estamos mudando [Linux]Honestamente, uma das últimas coisas que as pessoas olham é qual sistema de arquivos está sendo usado. Os usuários de Windows e Mac OS X têm ainda menos motivos para procurar, porque realmente têm apenas um ...

consulte Mais informação que incorpora muitos recursos diferentes no nível do sistema de arquivos, normalmente disponíveis apenas como pacotes de software separados. Embora o Btrfs tenha muitos recursos notáveis ​​(como instantâneos do sistema de arquivos), os dois que veremos neste artigo são pool de armazenamento e espelhamento.

Se você não tem certeza do que é um sistema de arquivos, dê uma olhada nesta explicação de alguns sistemas de arquivos para Windows O que é um sistema de arquivos e como você pode descobrir o que é executado em suas unidadesO que é um sistema de arquivos e por que eles são importantes? Aprenda as diferenças entre FAT32, NTFS, HPS +, EXT e muito mais. consulte Mais informação . Você também pode conferir este belo comparação de vários sistemas de arquivos De FAT para NTFS e ZFS: sistemas de arquivos desmistificadosDiferentes discos rígidos e sistemas operacionais podem usar sistemas de arquivos diferentes. Aqui está o que isso significa e o que você precisa saber. consulte Mais informação para ter uma idéia melhor das diferenças entre os sistemas de arquivos existentes.

O Btrfs ainda é considerado "não estável" por muitos, mas a maioria dos recursos já é estável o suficiente para uso pessoal - são apenas alguns recursos selecionados nos quais você pode encontrar resultados indesejados.

Embora o Btrfs pretenda ser o sistema de arquivos padrão para Linux em algum momento no futuro, ainda é melhor usar ext4 para configurações de disco rígido único ou para configurações que não precisam de pool de armazenamento e espelhamento.

Agrupando suas unidades

Neste exemplo, usaremos uma configuração de quatro discos rígidos. Existem dois discos rígidos (/ dev / sdb e / dev / sdc) com 1 TB cada e dois outros discos rígidos (/ dev / sdd e / dev / sde) com 500 GB para um total de quatro discos rígidos com um total de 3 TB de armazenamento.

Você também pode assumir que possui outro disco rígido (/ dev / sda) de algum tamanho arbitrário que contém seu gerenciador de inicialização e sistema operacional. Não estamos preocupados com o / dev / sda e estamos apenas combinando os outros quatro discos rígidos para fins de armazenamento extra.

Criando um sistema de arquivos

btrfs_gparted
Para criar um sistema de arquivos Btrfs em um de seus discos rígidos, você pode usar o comando:

sudo mkfs.btrfs / dev / sdb

Obviamente, você pode substituir / dev / sdb pelo disco rígido real que deseja usar. A partir daqui, você pode adicionar outros discos rígidos ao sistema Btrfs para torná-lo uma única partição que se estende por todos os discos rígidos adicionados. Primeiro, monte o primeiro disco rígido Btrfs usando o comando:

sudo mount / dev / sdb / mnt

Em seguida, execute os comandos:

sudo mkfs.btrfs / dev / sdc mkfs.btrfs / dev / sdd mkfs.btrfs / dev / sde

Agora, você pode adicioná-los ao primeiro disco rígido usando os comandos:

sudo dispositivo btrfs add / dev / sdc / mnt dispositivo btrfs add / dev / sdd / mnt dispositivo btrfs add / dev / sde / mnt

Se você tiver alguns dados armazenados no primeiro disco rígido, convém que o sistema de arquivos o equilibre entre todos os discos rígidos adicionados recentemente. Você pode fazer isso com o comando:

balanço do sistema de arquivos sudo btrfs / mnt

Como alternativa, se você sabe antes mesmo de começar que deseja que um sistema de arquivos Btrfs se espalhe por todos os discos rígidos, basta executar o comando:

sudo mkfs.btrfs -d único / dev / sdb / dev / sdc / dev / sdd / dev / sde

Claro que isso é muito mais fácil, mas você precisará usar o método mencionado acima, se não os adicionar de uma só vez.

Você notará que eu usei uma bandeira: "-d single". Isso é necessário porque eu queria uma configuração RAID 0 (onde os dados são divididos entre todas as (mas não ocorre espelhamento), mas o perfil “único” é necessário quando os discos rígidos são diferentes tamanhos. Se todos os discos rígidos tivessem o mesmo tamanho, eu poderia usar a bandeira "-d raid0". O sinalizador “-d”, a propósito, representa dados e permite especificar a configuração de dados desejada. Há também um sinalizador "-m" que faz exatamente o mesmo para os metadados.

Além disso, você também pode ativar o RAID 1 usando "-d raid1", que duplicará os dados em todos os dispositivos, portanto, use esse sinalizador durante a criação do O sistema de arquivos Btrfs, que abrange todos os discos rígidos, significa que você recebe apenas 500 GB de espaço útil, pois os outros três discos rígidos são usados ​​para espelhamento.

Por fim, você pode habilitar o RAID 10 usando "-d raid10". Isso cria uma mistura de RAID 0 e RAID 1, oferecendo 1,5 TB de espaço utilizável, pois os dois discos rígidos de 1 TB são pareados no espelhamento e os dois discos rígidos de 500 GB são pareados no espelhamento.

Convertendo um sistema de arquivos

btrfs_harddiskstack
Se você possui um sistema de arquivos Btrfs que deseja converter para uma configuração RAID diferente, isso é fácil. Primeiro, monte o sistema de arquivos (se ainda não estiver) usando o comando:

sudo mount / dev / sdb1 / mnt

Em seguida, execute o comando:

sudo btrfs balance start -dconvert = raid1 -mconvert = raid1 / mnt

Isso mudará a configuração para RAID 1, mas você poderá substituí-lo pela configuração que desejar (portanto desde que seja realmente permitido - por exemplo, você não pode mudar para o RAID 10 se não tiver pelo menos quatro discos rígidos. unidades). Além disso, o sinalizador -mconvert é opcional se você está preocupado apenas com os dados, mas não com os metadados.

Se ocorrer uma falha no disco rígido

Se um disco rígido falhar, será necessário removê-lo do sistema de arquivos para que o restante das unidades em pool funcione corretamente. Monte o sistema de arquivos com o comando:

sudo mount -o degradado / dev / sdb / mnt

Em seguida, corrija o sistema de arquivos com:

sudo btrfs dispositivo excluir ausente / mnt

Se você não tinha o RAID 1 ou o RAID 10 ativado, os dados que estavam no disco rígido com falha agora são perdidos.

Removendo um disco rígido do sistema de arquivos

Por fim, se você deseja remover um dispositivo de um sistema de arquivos Btrfs e o sistema de arquivos estiver montado em / mnt, faça-o com o comando:

sudo dispositivo btrfs delete / dev / sdc / mnt

Obviamente, substitua / dev / sdc pelo disco rígido que você deseja remover. Esse comando levará algum tempo, pois precisa mover todos os dados do disco rígido que está sendo removido e também falhará se não houver espaço suficiente nos outros discos rígidos restantes.

Montagem automática

btrfs_fstab
Se você deseja que o sistema de arquivos Btrfs seja montado automaticamente, você pode colocá-lo no seu arquivo / etc / fstab:

sudo / dev / sdb / mnt dispositivo btrfs = / dev / sdb, dispositivo = / dev / sdc, dispositivo = / dev / sdd, dispositivo = / dev / sde 0 0

Opções de montagem

Mais uma dica de bônus! Você pode otimizar o desempenho do Btrfs no seu arquivo / etc / fstab nas opções de montagem do sistema de arquivos Btrfs. Para grandes matrizes de armazenamento, essas opções são as melhores: compress-force = zlib, autodefrag, nospace_cache. Especificamente, compress = zlib compactará todos os dados para que você possa aproveitar ao máximo o espaço de armazenamento que possui. Para o registro, os usuários SSD podem usar estas opções: noatime, compress = lzo, ssd, descarte, space_cache, autodefrag, inode_cache. Essas opções acompanham as especificações do dispositivo, portanto, uma linha completa no / etc / fstab para usuários de SSD seria semelhante a:

sudo / dev / sdb / mnt dispositivo btrfs = / dev / sdb, dispositivo = / dev / sdc, dispositivo = / dev / sdd, dispositivo = / dev / sde,
noatime, compress = lzo, ssd, descarte, space_cache, autodefrag, inode_cache 0 0

Qual é o tamanho do seu pool de armazenamento?

O Btrfs é uma opção fantástica para pool de armazenamento e espelhamento, que certamente se tornará mais popular quando for considerado completamente estável. Também não faria mal haver uma GUI para facilitar a configuração (além de alguns instaladores de distribuição), mas os comandos que você deve usar no terminal são fáceis de entender e aplicar.

Qual é o maior pool de armazenamento que você pode criar? Você acha que os pools de armazenamento valem a pena? Deixe-nos saber nos comentários!

Crédito de imagem: William Hook

Danny é um sénior da Universidade do Norte do Texas que gosta de todos os aspectos do software de código aberto e Linux.