Estudando BTRFS - Meu OS está usando apenas o HDD e deixando os SSDs vazios e ociosos

Estou estudando o BTRFS e estou tendo alguns problemas com a configuração que fiz.

Boa noite pessoal! :smiley:

Primeiramente, meus discos são:

  • /dev/sda - Samsung EVO860 (500GB)
  • /dev/sdb - Kingston A400 (240GB)
  • /dev/sdc - Seagate Barracuda (1TB - 64MB - 7200RPM)
  • /dev/sdd - Toshiba P300 (2TB - 64MB - 7200RPM)

O problema é: Todos os dados estão sendo alocados no Barracuda (HDD) e por isso sinto o sistema lento, além de praticamente não usar o A400.
Não está funcionando como eu imaginava/queria que fosse.

Meu objetivo é:

  • EVO: EFI, SWAP, ROOT
  • A400: “cache” para o Barracuda
  • Barracuda: /HOME
  • P300: TimeShift (Via Snapshots ou RSync, tanto faz, o objetivo é ser ter backup confiável)

Inicialmente eu instalei o Manjaro com auxilio do Architect, fiz uma instalação mínima.
Criei 3 partições dentro do EVO: a EFI, a SWAP e uma BTRFS.

  • EFI por causa da inicialização do sistema, achei mais prático dessa forma;
  • SWAP, eu prefero numa partição a parte devido ao meu uso intenso em projeto grandes com apps de design gráfico, como o Krita, por exemplo;
  • BTRFS para o Manjaro.

O Architect, nesse momento, me sugeriu criar “divisões” (não lembro se foi exatamente o termo >subvolumes< por isso as áspas) para @, @home e @var, eu aceitei, pois esse era o objetivo desde o inicio.

Depois com o sistema instalado, usei o comando:

$ btrfs device add /dev/sdb /dev/sdc

para adicionar a “pool” os discos A400 e Barracuda.
Imaginei que o BTRFS faria um controle inteligente dos discos, sem a necessidade d’eu interferir nele em mais nada.
Porém, o que notei é que após rodar o comando:

$ btrfs filesystem balance /

ele jogou todos os dados para o Barracuda, deixando poucos GB no EVO, o meu disco mais rápido, e praticamente 0 no A400.

Antes do Balance:


Percebam que o uso do EVO (/dev/sda3)

Após o comando Balance:

Acho que meu erro foi ter usado o comando:

$ btrfs device add …

Creio que o correto seria criar as partições:

$ mkfs.btrfs /dev/sdb /dev/sdc

separadamente, e depois adicionar a pool como subvolume?
Dessa forma, o @home será direcionado para o subvolume o qual foi designado (criado) para sê-lo (no caso o Barracuda) via fstab, ou não;
Correto?

Estou considerando em formatar o sistema como um todo nesse final-de-semana, porque não ficou muito legal, e to pensando refaze-lo do zero xD


Já, outra ideia é, como o EVO é muito grande para alocar somente o sistema, pensei criar uma partição de 240GB para usar em RAID0 com o A400.

Eu já fazia isso usando LVM e dm-cache em EXT4, mas não creio que eu deveria delimitar tanto como o FileSystem deve funcionar; Creio que o grande objetivo de FS complexos e inteligentes como o BTRFS e o ZFS, é justamente deixar que ele faça o trabalho de onde, alocar o que, da melhor forma.
Mas talvez, devido ao meu erro inicial, tenha tido essa impressão errada.
Talvez?! :thinking:


Muitas pessoas já me aconselharam a voltar para o EXT4, porém meu objetivo é aprender a usar o BTRFS e aproveitar seus recursos de compressão, CoW, deduplicação, snapshots e agrupamento de discos e etc.
Acredito que sistemas como o ZFS e o BTRFS serão o futuro dos FS, por isso já quero aprender a usá-los.
O openZFS por hora, está fora da minha “lista”, sigo a recomendação do mestre Torvalds, no futuro, quando mais consolidado, eu me aventurarei por ele.


Desde já meus sinceros agradecimentos pela atenção :relaxed:

2 Curtidas

Eu estudei um tanto o BTRFS e tenho sistema instalado nele, com gerenciamento de snapshots. Minha opinião:

Eu não sei como usar um disco de cache para outro, embora já tenha visto em algum lugar isso (um video do linuxtechtips). O comando que vc deu criou um volume lógico em dois volumes físicos. Eu não acho que o btrfs esteja automatizado a ponto de entender o que vc queria fazer com esse volume lógico.

Outro ponto é que vc não pode usar snapshots de um disco em outro (ou mesmo em outra partição do mesmo disco). Se vc usar timeshift por snapshots, eles ficarão no mesmo volume do subvolume que está criando os instantâneos!

Eu tenho um hdd para backup do sistema e do home. Embora o snapshot seja uma ótima ferramenta de administração, ele não é efetivamente um backup pois está no mesmo disco físico. Uma falha naquele disco e perderá o sistema E os snapshots! Neste hdd eu uso zfs, pois ele tem ótima característica de detectar e corrigir pequenas falhas que acontecem nos arquivos ao longo do tempo (silent corruption) que acabam por acontecer principalmente em hdd.

Eu nunca fiz, mas teoricamente vc pode remover um dos discos /dev/sdb /dev/sdc através dos comandos do btrfs sem perder dados. Aí eu recomendaria deixar o ssd vazio e procurar mais informação pra usar ele de cache, e tomar espcial atenção pro que pode acontecer no caso de uma queda de energia, pois geralmente esses setups são realizados em ambiente com no-breaks para evitar perda de dados!