web-dev-qa-db-ja.com

LVMにbtrfsを置くことは理にかなっていますか?

これがOpenSUSE Leap 42です。私は2x 500 GB SATA HDDドライブを搭載したコンピュータを使用しており、高速化するためにシステムに小さな30GB SSDドライブを挿入しています。インストール中に、HDDが切断されました。システムが起動した後、私は/ homeディレクトリをXFS論理ボリュームに簡単に交換しました(主にLVMを使用して、簡単にスペースを追加します)。それから/ optがいっぱいになり(chromeとbotanicula)、私はそれをHDD上のボリュームに置きたかった。そこで、ボリュームを作成し、BTRFSでフォーマットしました。いくつかの頭を引っ掻いた後-@ subvolumes fstabでBTRFSを読み上げ、必要なことを行いました-/ optのサイズは100 GBになりました。

しかし、問題は次のとおりです。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はその固有の機能(主にスナップショット)に使用する必要があります。単純なホームネットワークの使用では、おそらくそれから離れた方が良いでしょう。私は小さなドライブでスペースを管理するのにあまりにも多くの悲しみを持っていましたが、大きなドライブでもスペースが食い尽くされると想像します。

12
r0berts

多分これは説明します(ところでbtrfs wikiから)

Btrfsのサブボリュームは、LVM論理ボリュームまたはZFSサブボリュームと同じではありません。 LVMでは、論理ボリュームはそれ自体がブロックデバイスです(たとえば、dm-crypt、MD RAIDなどの他のファイルシステムまたはコンテナーを含めることができます)。これは、btrfsの場合とは異なります。 btrfsサブボリュームはブロックデバイスではなく(ブロックデバイスとして扱うことはできません)、代わりにbtrfsサブボリュームはPOSIXファイル名前空間と考えることができます。この名前空間は、ファイルシステムのトップレベルのサブボリュームを介してアクセスできます。または、それ自体でマウントすることもできます。

参照 https://btrfs.wiki.kernel.org/index.php/FAQ

パーティション、デバイスマネージャ、および論理ボリュームとの相互作用

Btrfsにはサブボリュームがありますが、これは論理ボリュームマネージャーが不要で、RAWパーティションに大きなBtrfsファイルシステムを作成できることを意味しますか?

この質問に対する単一の答えはありません。 rawパーティションまたはLVMを選択する際に考慮すべき問題は次のとおりです。

  • パフォーマンス
    • rawパーティションは論理ボリュームよりもわずかに高速です
    • btrfsは、ファイルシステムサブボリュームの書き込みパフォーマンス全体で書き込み最適化(順次書き込み)を実行します。このアルゴリズムは、それぞれ異なるLV上に複数のbtrfsファイルシステムを作成することでメリットがあります。つまり、アルゴリズムは無効になる可能性があります(ただし、カーネルはブロックデバイスで何らかの最適化を実行します)レベル)
  • デバイス間でのファイルシステムのオンラインでのサイズ変更と再配置:LVMからのpvmoveコマンドを使用すると、オンライン中にファイルシステムをデバイス間で移動できます
    • rawパーティションは、オフライン時にのみ別の開始シリンダーに移動できます
    • rawパーティションは、パーティションの後に空きスペースがある場合にのみ大きくすることができますが、LVMはLVをボリュームグループ内の任意の場所の空きスペースに拡張でき、オンラインでサイズ変更を行うことができます
  • サブボリューム/論理ボリュームサイズの制約
    • LVMは、固定サイズの論理ボリュームを作成するのに便利です(たとえば、ユーザーごとに10MB、仮想マシンイメージごとに20GBなど)。
    • 現在、サブボリュームはそのような厳密なサイズの制約を強制していませんが、次のqgroups機能がこの問題に対処します

.... FAQは、LVM + BTRFSが意味をなすシナリオを説明し続けます

11
Saint Crusty