Apakah masuk akal untuk menempatkan btrfs pada lvm?

11

Ini adalah OpenSUSE Leap 42. Saya memiliki komputer dengan drive SATA HDD 2x500 GB dan untuk mempercepatnya saya memasukkan drive SSD 30GB kecil untuk sistem. Selama instalasi, HDD terputus karena mengacaukan penginstal (dan saya). Setelah sistem dinyalakan, saya cukup mudah menukar direktori / home untuk volume logis XFS (saya menggunakan LVM terutama untuk menambah ruang dengan mudah). Lalu / opt terisi (chrome dan botanicula) dan saya ingin meletakkannya di volume pada HDD. Jadi saya membuat volume dan memformatnya dengan BTRFS. Setelah beberapa goresan kepala - @ subvolumesfstab membuat saya membaca di BTRFS saya melakukan apa yang saya butuhkan - / memilih sekarang ukurannya 100 GB.

Tetapi pertanyaannya adalah: Apakah masuk akal untuk memformat volume LVM dengan btrfs? Pada dasarnya mereka berdua adalah sistem penanganan volume.

Sebagai ilustrasi, saya menempelkan fstab (# komentar menunjukkan hasil edit saya) dan output 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

Setelah jawabannya: Terima kasih, sekarang saya mengerti perbedaan utama. Bagi saya LVM memang lebih baik untuk mengelola ruang dengan sistem file apa pun di atasnya, tetapi BTRFS harus digunakan untuk fitur-fitur khusus untuk itu - terutama snapshots. Dalam penggunaan jaringan rumah sederhana mungkin lebih baik untuk menjauh darinya. Saya memiliki terlalu banyak kesedihan mengelola ruang pada drive kecil, tetapi saya membayangkan ruang akan dimakan juga pada drive besar.

r0berts
sumber

Jawaban:

11

Mungkin ini menjelaskan (dari the btrfs wiki by the way)

Subvolume dalam btrfs tidak sama dengan volume logis LVM atau subvolume ZFS. Dengan LVM, volume logis adalah perangkat blok dalam dirinya sendiri (yang misalnya dapat berisi sistem file atau wadah lain seperti dm-crypt, MD RAID, dll.) - ini bukan kasus dengan btrfs. Subvolume btrf bukan perangkat blok (dan tidak dapat diperlakukan sebagai satu), subvolume btrf dapat dianggap sebagai namespace file POSIX. Namespace ini dapat diakses melalui subvolume tingkat atas dari sistem file, atau dapat dipasang dengan sendirinya.

lihat juga https://btrfs.wiki.kernel.org/index.php/FAQ

Interaksi dengan partisi, manajer perangkat dan volume logis

Btrfs memiliki subvolume, apakah ini berarti saya tidak memerlukan manajer volume logis dan saya dapat membuat sistem file Btrf besar pada partisi mentah?

Tidak ada jawaban tunggal untuk pertanyaan ini. Berikut adalah masalah yang harus dipikirkan ketika Anda memilih partisi mentah atau LVM:

  • Performa
    • partisi mentah sedikit lebih cepat daripada volume logis
    • btrfs tidak menulis optimisasi (menulis berurutan) di seluruh filesystem kinerja penulisan subvolume akan mendapat manfaat dari algoritma ini membuat beberapa filesystem btrfs, masing-masing pada LV yang berbeda, berarti bahwa algoritme dapat menjadi tidak efektif (walaupun kernel masih akan melakukan beberapa optimasi pada perangkat blok) tingkat)
  • Mengubah ukuran dan memindahkan sistem file secara online di perangkat: perintah pvmove dari LVM memungkinkan sistem file untuk berpindah di antara perangkat saat online
    • partisi mentah hanya dapat dipindahkan ke silinder awal yang berbeda saat offline
    • partisi mentah hanya dapat dibuat lebih besar jika ada ruang kosong setelah partisi, sementara LVM dapat memperluas LV ke ruang kosong di mana saja di grup volume - dan dapat melakukan pengubahan ukuran secara online
  • subvolume / batasan ukuran volume logis
    • LVM nyaman untuk membuat volume logis ukuran tetap (mis. 10MB untuk setiap pengguna, 20GB untuk setiap gambar mesin virtual, dll)
    • subvolume saat ini tidak menerapkan batasan ukuran yang kaku, meskipun fitur qgroup mendatang akan mengatasi masalah ini

.... FAQ terus menjelaskan skenario di mana LVM + BTRFS masuk akal

Saint Crusty
sumber
Terima kasih, saya mengerti sekarang perbedaan utama. LVM memang lebih baik untuk mengelola ruang dengan sistem file apa pun di atasnya, tetapi BTRFS harus digunakan untuk fitur-fitur khusus untuk itu - terutama snapshots. Dalam penggunaan jaringan rumah sederhana mungkin lebih baik untuk menjauh darinya.
r0berts