SIXCORE

Btrfs: Um Sistema de Arquivos Moderno e Robusto disponível no MikroTik RouterOS v7

O Btrfs (B-tree File System) é um sistema de arquivos desenvolvido para fornecer alta confiabilidade, flexibilidade e eficiência no gerenciamento de dados. Criado pela Oracle em 2007 e posteriormente adotado por outras empresas e comunidades Linux, o Btrfs foi projetado como uma alternativa mais avançada em relação ao ext4, XFS e outros sistemas tradicionais.

Principais Recursos do Btrfs

O Btrfs inclui uma série de funcionalidades nativas que melhoram a integridade dos dados e a administração do armazenamento:

1. Copy-on-Write (CoW)

  • O Btrfs utiliza a técnica de Copy-on-Write (CoW), garantindo que os dados nunca sejam sobrescritos diretamente. Sempre que um arquivo é modificado, uma nova cópia é criada antes da alteração, preservando a integridade dos dados e permitindo a recuperação de versões anteriores.

2. Snapshots (Instantâneos)

  • Snapshots são cópias instantâneas de um sistema de arquivos em determinado momento, permitindo rollback (reversão) em caso de falhas ou corrupção de dados.
  • Diferente de sistemas como o ext4, onde os snapshots exigem soluções de terceiros como LVM, o Btrfs os implementa de forma nativa e eficiente.

3. Subvolumes

  • O Btrfs permite a criação de subvolumes, que são divisões lógicas dentro do sistema de arquivos, podendo ser gerenciadas separadamente, facilitando backups e organização de dados.

4. RAID Integrado

  • Oferece suporte nativo para RAID 0, 1, 10, 5 e 6, permitindo que múltiplos dispositivos sejam combinados para maior desempenho e redundância. Isso evita a necessidade de ferramentas externas como mdadm.

5. Deduplicação e Compressão Transparente

  • Suporta deduplicação, reduzindo o consumo de espaço ao evitar armazenamento duplicado de dados idênticos.
  • Também permite compressão nativa (zlib, lzo, zstd), otimizando espaço e melhorando o desempenho do disco.

6. Checksums e Autocorreção de Erros

  • Utiliza checksums para verificar a integridade dos dados e metadados, detectando e corrigindo automaticamente erros causados por falhas no disco ou corrupção de arquivos.

7. Redimensionamento Dinâmico

  • É possível aumentar ou reduzir o tamanho de um volume Btrfs sem desmontá-lo, o que facilita a administração do espaço de armazenamento.

8. Balanceamento e Scrubbing

  • O comando btrfs balance permite redistribuir dados em diferentes discos físicos para otimizar o desempenho e o uso de espaço.
  • O btrfs scrub verifica e corrige erros automaticamente, semelhante ao funcionamento do ZFS scrub.

Vantagens do Btrfs em Comparação com Outros Sistemas de Arquivos

Btrfs vs. Ext4

 
RecursoBtrfsExt4
Copy-on-Write✅ Sim❌ Não
Snapshots✅ Sim❌ Não
RAID Nativo✅ Sim❌ Não
Deduplicação✅ Sim❌ Não
Compressão✅ Sim❌ Não
Autocorreção de Erros✅ Sim❌ Não
  • O ext4 ainda é mais estável e amplamente suportado, mas carece dos recursos avançados do Btrfs.

Btrfs vs. ZFS

RecursoBtrfsZFS
RAID Nativo✅ Sim✅ Sim
Snapshots✅ Sim✅ Sim
Deduplicação✅ Sim✅ Sim
Compressão✅ Sim✅ Sim
Redimensionamento Online✅ Sim (diminuir e aumentar)❌ Apenas aumentar
Licenciamento✅ GPL❌ CDDL (problema para Linux)
  • O ZFS possui melhor maturidade e confiabilidade, especialmente para grandes ambientes de armazenamento, mas seu licenciamento CDDL pode gerar incompatibilidades no Linux.
  • O RouterOS dá suporte a partir da versão 7.18 beta2, ou seja qualquer versão superior já tem disponível.

RAID1 com Btrfs em Dois Discos

Se você deseja criar uma solução confiável de armazenamento de dados utilizando apenas dois discos (por exemplo, para um NAS), siga os passos abaixo para configurar um array RAID1 com Btrfs com sucesso:

1. Identificar os discos disponíveis

Primeiro, identifique os nomes dos discos que serão usados para configurar o RAID Btrfs:

/disk print

Neste exemplo, os discos utilizados serão chamados de <disk-name-1> e <disk-name-2>. Certifique-se de substituir esses espaços reservados pelos nomes reais dos seus discos!

2. Formatar um dos discos para Btrfs

Formate um dos discos no sistema de arquivos Btrfs, neste caso, <disk-name-1>:

/disk format-drive <disk-name-1> file-system=btrfs

Para verificar o status atual dos discos Btrfs, utilize o seguinte comando:
 
/disk/btrfs/filesystem print

Caso já exista uma configuração RAID antiga nos discos e você queira remover qualquer configuração obsoleta, pode apagar os discos rapidamente com o seguinte comando:

/disk format-drive <disk-name-x> file-system=wipe-quick

Isso é útil quando há entradas indesejadas ao executar:

/disk/btrfs/filesystem print

3. Adicionar um rótulo ao disco Btrfs

Para facilitar a identificação, adicione um rótulo ao disco Btrfs:

/disk/btrfs/filesystem set [find where present-devs=<disk-name-1>] label=BtrfsRAID

4. Adicionar o segundo disco ao Btrfs

Agora, adicione o segundo disco ao sistema Btrfs já existente:

/disk/btrfs/filesystem/add-device [find where present-devs=<disk-name-1>] device=<disk-name-2>

5. Iniciar o balanceamento para RAID1

Inicie o processo de balanceamento do Btrfs para criar o RAID1:

/disk/btrfs/filesystem balance-start [find where label=BtrfsRAID] data-profile=raid1 metadata-profile=raid1 system-profile=raid1

6. Evitar a montagem duplicada do segundo disco

Para evitar que os arquivos apareçam duplicados ao montar automaticamente os discos, defina a opção mount-filesystem=no no segundo disco:

/disk set <disk-name-2> mount-filesystem=no

O Btrfs possui um recurso que permite montar qualquer um dos discos RAID e ainda acessar todo o array Btrfs-RAID. No entanto, se a mesma matriz for montada duas vezes, os arquivos aparecerão duplicados. Para evitar isso, basta desativar a montagem automática de um dos discos do RAID Btrfs.

7. Alterar o nome do ponto de montagem

Para simplificar a identificação do RAID, altere o nome do ponto de montagem:

/disk set <disk-name-1> mount-point-template=BtrfsRAID

Agora, o array Btrfs-RAID recém-criado estará acessível no diretório:

/BtrfsRAID/

8. Recursos adicionais recomendados

Com uma solução de armazenamento confiável como o Btrfs-RAID, você pode considerar adicionar funcionalidades úteis ao seu dispositivo RouterOS, como:

  • Executar seus próprios Containers
  • Servidor de Mídia DLNA
  • Servidor Samba
  • Servidor NFS

9. Bitrot e Btrfs-RAID

Se um RAID tradicional for utilizado com o sistema de arquivos Btrfs, seu array RAID não poderá se recuperar automaticamente de Bitrot (degradação silenciosa dos dados). O RAID tradicional só pode detectar Bitrot, mas não corrigi-lo.

Por isso, é recomendado utilizar Btrfs-RAID, conforme descrito nesta seção, sempre que possível.

Compartilhe esse conteúdo

app-sixcore-curso-redes

0 responses on "Btrfs: Um Sistema de Arquivos Moderno e Robusto disponível no MikroTik RouterOS v7"

Leave a Message

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Abrir bate-papo
Olá
Podemos ajudá-lo?