Como ativar o agrupamento e o espelhamento de armazenamento usando o Btrfs para Linux

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

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

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

Sob certas condições, você pode até mesmo habilitar o espelhamento para que você não perca seus dados devido a falhas 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 que possui.

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

O que é o Btrfs?

Btrfs (chamado de sistema de arquivos B-tree, “Butter FS” ou “Better FS”) é um sistema de arquivos que está chegando Ext4 vs. Btrfs: Por que estamos fazendo o switch [Linux] Ext4 vs. Btrfs: Por que estamos fazendo o switch [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 eles realmente têm apenas um ... Read More 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 snapshots do sistema de arquivos), os dois que examinaremos neste artigo são o armazenamento em pool e o 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 um sistema de arquivos O que funciona em suas unidades Leia mais. Você também pode verificar essa comparação agradável de vários sistemas de arquivos De FAT Para NTFS Para ZFS: Desmistificado de sistemas de arquivos [MakeUseOf Explains] De FAT para NTFS Para ZFS: Desmistificados de sistemas de arquivos [MakeUseOf Explains] Você realmente sabe o que seu disco rígido faz sempre ler um arquivo dele ou escrever um para ele? Nossos discos rígidos agora podem armazenar grandes quantidades de dados e esse espaço enorme ... Leia Mais 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 onde você pode encontrar alguns resultados indesejados.

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

Agrupando suas unidades

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

Você também pode assumir que tem outro disco rígido (/ dev / sda) de tamanho arbitrário que contém seu sistema de inicialização e operacional. Não estamos nos preocupando com / dev / sda e estamos combinando apenas 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

Naturalmente, 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 que você adiciona. Primeiro, monte o primeiro disco rígido do 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 btrfs device add /dev/sdc /mnt btrfs device add /dev/sdd /mnt btrfs device add /dev/sde /mnt

Se você tivesse alguns dados armazenados no primeiro disco rígido, você desejaria que o sistema de arquivos se equilibrasse entre todos os discos rígidos recém-adicionados. Você pode fazer isso com o comando:

sudo btrfs filesystem balance /mnt

Alternativamente, se você sabe antes mesmo de começar que deseja que um sistema de arquivos Btrfs se estenda por todos os discos rígidos, você pode simplesmente executar o comando:

sudo mkfs.btrfs -d single /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 adicioná-los todos de uma só vez.

Você notará que usei um sinalizador: "-d single". Isso é necessário porque eu queria uma configuração RAID 0 (onde os dados são divididos entre todos os discos rígidos, mas nenhum espelhamento ocorre), mas o perfil “único” é necessário quando os discos rígidos têm tamanhos diferentes. Se todos os discos rígidos fossem do mesmo tamanho, eu poderia usar a bandeira "-d raid0". O sinalizador "-d", a propósito, significa dados e permite que você especifique 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 habilitar o RAID 1 usando “-d raid1” que irá duplicar dados em todos os dispositivos, portanto, usar esse sinalizador durante a criação do sistema de arquivos Btrfs que abrange todos os discos rígidos significa que você só obtém 500 GB de espaço utilizável. como os outros três discos rígidos são usados ​​para espelhamento.

Por último, você pode habilitar o RAID 10 usando “-d raid10”. Isso fará uma combinação de RAID 0 e RAID 1, por isso, você terá 1, 5 TB de espaço utilizável, pois os dois discos rígidos de 1 TB são emparelhados no espelhamento e os dois discos rígidos de 500 GB são emparelhados no espelhamento.

Convertendo um sistema de arquivos

btrfs_harddiskstack
Se você tiver um sistema de arquivos Btrfs que gostaria de converter em uma configuração RAID diferente, isso é feito facilmente. Primeiro, monte o sistema de arquivos (se já 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 o RAID 1, mas você poderá substituí-la pela configuração desejada (desde que ela seja realmente permitida - por exemplo, você não poderá alternar para o RAID 10 se não tiver pelo menos quatro discos rígidos) . Além disso, o sinalizador -mconvert é opcional se você estiver preocupado apenas com os dados, mas não com os metadados.

Se a falha do disco rígido ocorrer

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

sudo mount -o degraded /dev/sdb /mnt

Em seguida, corrija o sistema de arquivos com:

sudo btrfs device delete missing /mnt

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

Removendo um disco rígido do sistema de arquivos

Finalmente, se você quiser remover um dispositivo de um sistema de arquivos Btrfs e o sistema de arquivos estiver montado em / mnt, você poderá fazê-lo com o comando:

sudo btrfs device delete /dev/sdc /mnt

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

Montagem Automática

btrfs_fstab
Se você quer que o sistema de arquivos do Btrfs seja montado automaticamente, você pode colocar isto no seu arquivo / etc / fstab:

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

Opções de montagem

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

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

Qual é o tamanho do seu pool de armazenamento?

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

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

Crédito de imagem: William Hook

In this article