Faz sentido colocar btrfs no lvm?

11

Este é o OpenSUSE Leap 42. Eu tenho um computador com 2 unidades de disco rígido SATA de 500 GB e, para acelerar, coloquei uma pequena unidade SSD de 30 GB para o sistema. Durante a instalação, os HDDs foram desconectados porque confundiam o instalador (e eu). Depois que o sistema foi instalado, troquei com facilidade o diretório / home por um volume lógico XFS (eu uso o LVM principalmente para adicionar espaço facilmente). Então / opt preenchido (chrome e botanicula) e eu queria colocar isso em um volume no disco rígido. Então, eu criei um volume e o formatei com BTRFS. Depois de alguns arranhões na cabeça - o @ subvolumesin fstab me fez ler sobre o BTRFS, fiz o que precisava - / opt agora tem 100 GB de tamanho.

Mas a pergunta é: faz sentido formatar um volume LVM com btrfs? Essencialmente, ambos são sistemas de manuseio de volume.

Para ilustração, colo meu fstab (# comentários mostram minhas edições) e a saída vgscan + lvscan:

~> cat /etc/fstab

UUID=1b511986-9c20-4885-8385-1cc03663201b swap swap defaults 0 0
UUID=30e20531-b7f1-4bde-b2d2-fab8eeca23af / btrfs defaults 0 0
UUID=30e20531-b7f1-4bde-b2d2-fab8eeca23af /boot/grub2/i386-pc btrfs subvol=@/boot/grub2/i386-pc 0 0
UUID=30e20531-b7f1-4bde-b2d2-fab8eeca23af /boot/grub2/x86_64-efi bt

rfs subvol=@/boot/grub2/x86_64-efi 0 0
UUID=3e103686-52e9-44ac-963f-5a76177af56b /opt                 btrfs      defaults              0 0
#UUID=30e20531-b7f1-4bde-b2d2-fab8eeca23af /opt btrfs subvol=@/opt 0 0
UUID=30e20531-b7f1-4bde-b2d2-fab8eeca23af /srv btrfs subvol=@/srv 0 0
UUID=30e20531-b7f1-4bde-b2d2-fab8eeca23af /tmp btrfs subvol=@/tmp 0 0
UUID=30e20531-b7f1-4bde-b2d2-fab8eeca23af /usr/local btrfs subvol=@/usr/local 0 0
UUID=30e20531-b7f1-4bde-b2d2-fab8eeca23af /var/crash btrfs subvol=@/var/crash 0 0
UUID=30e20531-b7f1-4bde-b2d2-fab8eeca23af /var/lib/libvirt/images btrfs subvol=@/var/lib/libvirt/images 0 0
UUID=30e20531-b7f1-4bde-b2d2-fab8eeca23af /var/lib/mailman btrfs subvol=@/var/lib/mailman 0 0
UUID=30e20531-b7f1-4bde-b2d2-fab8eeca23af /var/lib/mariadb btrfs subvol=@/var/lib/mariadb 0 0
UUID=30e20531-b7f1-4bde-b2d2-fab8eeca23af /var/lib/mysql btrfs subvol=@/var/lib/mysql 0 0
UUID=30e20531-b7f1-4bde-b2d2-fab8eeca23af /var/lib/named btrfs subvol=@/var/lib/named 0 0
UUID=30e20531-b7f1-4bde-b2d2-fab8eeca23af /var/lib/pgsql btrfs subvol=@/var/lib/pgsql 0 0
UUID=30e20531-b7f1-4bde-b2d2-fab8eeca23af /var/log btrfs subvol=@/var/log 0 0
UUID=30e20531-b7f1-4bde-b2d2-fab8eeca23af /var/opt btrfs subvol=@/var/opt 0 0
UUID=30e20531-b7f1-4bde-b2d2-fab8eeca23af /var/spool btrfs subvol=@/var/spool 0 0
UUID=30e20531-b7f1-4bde-b2d2-fab8eeca23af /var/tmp btrfs subvol=@/var/tmp 0 0
UUID=30e20531-b7f1-4bde-b2d2-fab8eeca23af /.snapshots btrfs subvol=@/.snapshots 0 0
UUID=c4c4f819-a548-4881-b854-a0ed62e7952e /home     xfs defaults 1 2
#UUID=e14edbfa-ddc2-4f6d-9cba-245d828ba8aa /home                xfs        defaults              1 2

~>

# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "r0data" using metadata type lvm2
  Found volume group "r0sys" using metadata type lvm2

# lvscan
  ACTIVE            '/dev/r0data/homer' [699.53 GiB] inherit
  ACTIVE            '/dev/r0sys/optr' [100.00 GiB] inherit

Após a resposta: Obrigado, agora entendo as principais diferenças. Para mim, o LVM é realmente melhor para gerenciar o espaço com qualquer sistema de arquivos, mas o BTRFS deve ser usado para recursos específicos, principalmente snapshots. No uso simples da rede doméstica, é provavelmente melhor ficar longe dela. Eu sofri muito ao gerenciar o espaço em uma unidade pequena, mas eu imaginaria que o espaço também seria consumido em unidades grandes.

r0berts
fonte

Respostas:

11

Talvez isso explique (a partir do wiki btrfs)

Um subvolume no btrfs não é o mesmo que um volume lógico LVM ou um subvolume ZFS. Com o LVM, um volume lógico é um dispositivo de bloco por si só (que pode, por exemplo, conter qualquer outro sistema de arquivos ou contêiner como dm-crypt, MD RAID etc.) - esse não é o caso do btrfs. Um subvolume btrfs não é um dispositivo de bloco (e não pode ser tratado como um), em vez disso, um subvolume btrfs pode ser considerado como um espaço de nome de arquivo POSIX. Este espaço para nome pode ser acessado através do subvolume de nível superior do sistema de arquivos ou pode ser montado por si próprio.

veja também https://btrfs.wiki.kernel.org/index.php/FAQ

Interação com partições, gerenciadores de dispositivos e volumes lógicos

O Btrfs possui subvolumes, isso significa que não preciso de um gerenciador de volume lógico e posso criar um grande sistema de arquivos Btrfs em uma partição bruta?

Não há uma resposta única para esta pergunta. Aqui estão os problemas a serem considerados quando você escolher partições brutas ou LVM:

  • atuação
    • partições brutas são um pouco mais rápidas que volumes lógicos
    • O btrfs otimiza a gravação (gravações sequenciais) em um desempenho de gravação do subvolume do sistema de arquivos se beneficiará desse algoritmo, criando vários sistemas de arquivos btrfs, cada um em um LV diferente, significa que o algoritmo pode ser ineficaz (embora o kernel ainda execute alguma otimização no dispositivo de bloco nível)
  • Redimensionando e realocando online o sistema de arquivos entre dispositivos: o comando pvmove do LVM permite que os sistemas de arquivos se movam entre os dispositivos enquanto estão online
    • partições brutas só podem ser movidas para um cilindro inicial diferente enquanto estiver offline
    • partições brutas só podem ser aumentadas se houver espaço livre após a partição, enquanto o LVM pode expandir um LV para espaço livre em qualquer lugar do grupo de volumes - e pode redimensionar on-line
  • restrições de tamanho de volume lógico / subvolume
    • O LVM é conveniente para criar volumes lógicos de tamanho fixo (por exemplo, 10 MB para cada usuário, 20 GB para cada imagem de máquina virtual, etc.)
    • atualmente, os subvolumes não impõem restrições rígidas de tamanho, embora o próximo recurso qgroups resolva esse problema

.... as perguntas frequentes continuam a explicar o cenário em que LVM + BTRFS fazem sentido

Saint Crusty
fonte
Obrigado, entendo agora as principais diferenças. O LVM é realmente melhor para gerenciar o espaço com qualquer sistema de arquivos, mas o BTRFS deve ser usado para recursos específicos a ele - principalmente snapshots. No uso simples da rede doméstica, é provavelmente melhor ficar longe dela.
precisa saber é o seguinte