¿Tiene sentido poner btrfs en lvm?

11

Este es OpenSUSE Leap 42. Tengo una computadora con 2 unidades de disco duro SATA de 500 GB y para acelerarlo, puse una pequeña unidad SSD de 30 GB para el sistema. Durante la instalación, los HDD se desconectaron porque confundieron al instalador (y a mí). Una vez que el sistema estaba funcionando, cambié fácilmente el directorio / home por un volumen lógico XFS (uso LVM principalmente para agregar espacio fácilmente). Luego / opt se llenó (cromo y botanicula) y quería poner eso en un volumen en HDD. Entonces creé un volumen y lo formateé con BTRFS. Después @ subvolumesde rascarme la cabeza (el in fstab me hizo leer sobre BTRFS hice lo que necesitaba) / opt ahora tiene un tamaño de 100 GB.

Pero la pregunta es: ¿tiene sentido formatear un volumen LVM con btrfs? Esencialmente, ambos son sistemas de manejo de volumen.

Por ejemplo, pego mi fstab (# comentarios muestran mis ediciones) y salida 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

Después de la respuesta: Gracias, ahora entiendo las diferencias clave. Para mí, LVM es realmente mejor para administrar el espacio con cualquier sistema de archivos que tenga encima, pero BTRFS debe usarse para funciones específicas, principalmente instantáneas. En el uso simple de la red doméstica, probablemente sea mejor mantenerse alejado de ella. He tenido demasiada pena manejando el espacio en un disco pequeño, pero me imagino que el espacio también se comería en los discos grandes.

r0berts
fuente

Respuestas:

11

Tal vez esto explica (por cierto, de la wiki de btrfs)

Un subvolumen en btrfs no es lo mismo que un volumen lógico LVM o un subvolumen ZFS. Con LVM, un volumen lógico es un dispositivo de bloque por derecho propio (que podría contener, por ejemplo, cualquier otro sistema de archivos o contenedor como dm-crypt, MD RAID, etc.); este no es el caso con btrfs. Un subvolumen btrfs no es un dispositivo de bloque (y no se puede tratar como uno), en cambio, un subvolumen btrfs puede considerarse como un espacio de nombres de archivo POSIX. Se puede acceder a este espacio de nombres a través del subvolumen de nivel superior del sistema de archivos, o se puede montar por derecho propio.

ver también https://btrfs.wiki.kernel.org/index.php/FAQ

Interacción con particiones, administradores de dispositivos y volúmenes lógicos.

Btrfs tiene subvolúmenes, ¿esto significa que no necesito un administrador de volumen lógico y puedo crear un gran sistema de archivos Btrfs en una partición sin formato?

No hay una sola respuesta a esta pregunta. Estos son los temas que debe tener en cuenta al elegir particiones sin formato o LVM:

  • Actuación
    • las particiones sin procesar son ligeramente más rápidas que los volúmenes lógicos
    • btrfs optimiza la escritura (escrituras secuenciales) en un sistema de archivos, el rendimiento de escritura de subvolumen se beneficiará de este algoritmo que crea múltiples sistemas de archivos btrfs, cada uno en un LV diferente, lo que significa que el algoritmo puede ser ineficaz (aunque el núcleo seguirá realizando alguna optimización en el dispositivo de bloque nivel)
  • Cambio de tamaño y reubicación en línea del sistema de archivos entre dispositivos: el comando pvmove de LVM permite que los sistemas de archivos se muevan entre dispositivos mientras está en línea
    • Las particiones sin procesar solo se pueden mover a un cilindro de inicio diferente sin conexión
    • Las particiones sin formato solo pueden hacerse más grandes si hay espacio libre después de la partición, mientras que LVM puede expandir un LV al espacio libre en cualquier parte del grupo de volúmenes, y puede cambiar el tamaño en línea
  • restricciones de tamaño de volumen lógico / subvolumen
    • LVM es conveniente para crear volúmenes lógicos de tamaño fijo (por ejemplo, 10 MB para cada usuario, 20 GB para cada imagen de máquina virtual, etc.)
    • Los subvolúmenes no aplican actualmente restricciones de tamaño tan rígidas, aunque la próxima función qgroups abordará este problema

.... las preguntas frecuentes continúan explicando los escenarios en los que LVM + BTRFS tienen sentido

San crujiente
fuente
Gracias, ahora entiendo las diferencias clave. De hecho, LVM es mejor para administrar el espacio con cualquier sistema de archivos que se encuentre encima, pero BTRFS debe usarse para funciones específicas, principalmente instantáneas. En el uso simple de la red doméstica, probablemente sea mejor mantenerse alejado de ella.
r0berts