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
Recurso | Btrfs | Ext4 |
---|---|---|
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
Recurso | Btrfs | ZFS |
---|---|---|
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:
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
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.
0 responses on "Btrfs: Um Sistema de Arquivos Moderno e Robusto disponível no MikroTik RouterOS v7"