Faz sentido colocar o btrfs no lvm?

8

Este é o OpenSUSE Leap 42. Eu tenho um computador com unidades 2x SATA HDD de 500 GB e, para acelerar, coloco uma unidade pequena de 30 GB SSD para o sistema . Durante a instalação, os HDDs foram desconectados, pois confundiram o instalador (e eu). Uma vez que o sistema foi instalado, eu facilmente troquei 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 HDD. Então criei um volume e o formatei com o BTRFS. Depois de alguns arranhões na cabeça - o @ subvolumes no fstab me fez ler sobre o BTRFS Eu fiz o que eu precisava - / opt agora tem 100 GB de tamanho.

Mas a questão é: Faz sentido formatar um volume LVM com o btrfs? Essencialmente, ambos são sistemas de manipulação de volume.

Por exemplo, eu colo meus fstab (# comentários mostram minhas edições) e vgscan + lvscan output:

~> 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, eu entendo agora as principais diferenças. Para mim, o LVM é de fato melhor para gerenciar o espaço com qualquer sistema de arquivos sobre ele, mas o BTRFS deve ser usado para recursos específicos - principalmente snapshots. No uso simples da rede doméstica, é melhor ficar longe dela. Eu sofri muito com o gerenciamento de espaço em uma pequena unidade, mas imagino que o espaço seria consumido também em grandes unidades.

    
por r0berts 09.01.2016 / 20:00

1 resposta

9

Talvez isso explique (a propósito do wiki do btrfs)

Um subvolume no btrfs não é o mesmo que um volume lógico do LVM ou um subvolume do ZFS. Com o LVM, um volume lógico é um dispositivo de bloco independente (que pode conter, por exemplo, qualquer outro sistema de arquivos ou contêiner como o dm-crypt, o MD RAID, etc.) - este 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 namespace de arquivo POSIX. Este namespace pode ser acessado através do subvolume de nível superior do sistema de arquivos, ou pode ser montado sozinho.

veja também link

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

O Btrfs tem subvolumes, isso significa que eu 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 única resposta para essa pergunta. Aqui estão os problemas para pensar quando você escolhe partições brutas ou LVM:

  • Performance
    • raw partitions are slightly faster than logical volumes
    • btrfs does write optimisation (sequential writes) across a filesystem subvolume write performance will benefit from this algorithm creating multiple btrfs filesystems, each on a different LV, means that the algorithm can be ineffective (although the kernel will still perform some optimization at the block device level)
  • Online resizing and relocating the filesystem across devices: the pvmove command from LVM allows filesystems to move between devices while online
    • raw partitions can only be moved to a different starting cylinder while offline
    • raw partitions can only be made bigger if there is free space after the partition, while LVM can expand an LV onto free space anywhere in the volume group - and it can do the resize online
  • subvolume/logical volume size constraints
    • LVM is convenient for creating fixed size logical volumes (e.g. 10MB for each user, 20GB for each virtual machine image, etc)
    • subvolumes don't currently enforce such rigid size constraints, although the upcoming qgroups feature will address this issue

.... o FAQ continua a explicar o cenário no qual o LVM + BTRFS faz sentido

    
por 09.01.2016 / 23:33