Есть ли смысл ставить btrfs на lvm?

11

Это OpenSUSE Leap 42. У меня есть компьютер с 2x 500 ГБ жесткими дисками SATA и, чтобы ускорить его, я вставил небольшой системный дисковод на 30 ГБ для системы. Во время установки жесткие диски были отключены, поскольку они запутали установщика (и меня). Как только система была запущена, я довольно легко заменил каталог / home на логический том XFS (я использую LVM прежде всего для легкого добавления пространства). Затем заполнился / opt (chrome и botanicula), и я хотел поместить это на том на HDD. Поэтому я создал том и отформатировал его с помощью BTRFS. После некоторой царапины на голове - @ subvolumesв fstab заставил меня прочитать о BTRFS, я сделал то, что мне было нужно - / opt теперь имеет размер 100 ГБ.

Но вопрос: имеет ли смысл форматировать том LVM с помощью btrfs? По сути, они оба являются системами обработки объема.

Для иллюстрации я вставляю свой fstab (# комментарии показывают мои правки) и вывод 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

После ответа: спасибо, теперь я понимаю ключевые отличия. Для меня LVM действительно лучше для управления пространством с любыми файловыми системами поверх него, но BTRFS следует использовать для специфических для него функций - в основном, снимков. При простом использовании домашней сети, вероятно, лучше держаться подальше от него. У меня было слишком много проблем с управлением пространством на маленьком диске, но я предполагаю, что пространство будет съедено и на больших дисках.

r0berts
источник

Ответы:

11

Может быть, это объясняет (кстати, из вики btrfs)

Подобъем в btrfs - это не то же самое, что логический том LVM или подобъем ZFS. В LVM логический том сам по себе является блочным устройством (которое может, например, содержать любую другую файловую систему или контейнер, например dm-crypt, MD RAID и т. Д.) - это не относится к btrfs. Подобъем btrfs не является блочным устройством (и не может рассматриваться как одно), а подобъем btrfs может рассматриваться как пространство имен файла POSIX. К этому пространству имен можно получить доступ через подобъем верхнего уровня файловой системы или его можно монтировать самостоятельно.

см. также https://btrfs.wiki.kernel.org/index.php/FAQ

Взаимодействие с разделами, диспетчерами устройств и логическими томами

Btrfs имеет подобъемы, означает ли это, что мне не нужен менеджер логических томов, и я могу создать большую файловую систему Btrfs на необработанном разделе?

На этот вопрос нет единого ответа. Вот вопросы, которые следует учитывать при выборе необработанных разделов или LVM:

  • Производительность
    • необработанные разделы немного быстрее логических томов
    • btrfs действительно оптимизирует запись (последовательные записи) в файловой системе. Производительность записи будет увеличиваться благодаря этому алгоритму, создающему несколько файловых систем btrfs, каждая на отдельном LV, что означает, что алгоритм может быть неэффективным (хотя ядро ​​все равно выполнит некоторую оптимизацию на блочном устройстве). уровень)
  • Изменение размера и перемещение файловой системы между устройствами в режиме онлайн: команда pvmove из LVM позволяет файловым системам перемещаться между устройствами в режиме онлайн
    • необработанные разделы могут быть перемещены в другой стартовый цилиндр только в автономном режиме
    • Необработанные разделы могут быть увеличены только при наличии свободного места после раздела, в то время как LVM может расширить LV на свободное пространство в любом месте группы томов - и он может изменить размер онлайн
  • ограничения по объему / логическому объему тома
    • LVM удобен для создания логических томов фиксированного размера (например, 10 МБ для каждого пользователя, 20 ГБ для каждого образа виртуальной машины и т. Д.)
    • подразделы в настоящее время не применяют такие жесткие ограничения размера, хотя предстоящая функция qgroups решит эту проблему

.... FAQ продолжает объяснять сценарий, в котором LVM + BTRFS имеет смысл

Saint Crusty
источник
Спасибо, теперь я понимаю ключевые отличия. LVM действительно лучше для управления пространством с любыми файловыми системами поверх него, но BTRFS следует использовать для специфических для него функций - в основном, снимков. При простом использовании домашней сети, вероятно, лучше держаться подальше от него.
r0berts