lvm에 btrfs를 넣는 것이 합리적입니까?

lvm에 btrfs를 넣는 것이 합리적입니까?

OpenSUSE Leap 42 입니다. 나는 컴퓨터가있다2 x 500GB SATA 하드 드라이브운전해서 속도를 올려소형 30GB SSD시스템 드라이버. 설치 중에 하드 드라이브가 설치자(그리고 나)를 혼란스럽게 했기 때문에 연결이 끊어졌습니다. 시스템 부팅 후 쉽게 교체할 수 있습니다./집XFS 논리 볼륨의 디렉터리(저는 주로 공간을 쉽게 추가하기 위해 LVM을 사용합니다). 그 다음에/선택하다채워져 있습니다(Chrome 및 Plant). 하드 드라이브의 볼륨에 저장하고 싶습니다. 그래서 볼륨을 생성하고 BTRFS를 사용하여 포맷했습니다. 약간의 문제를 겪은 후 @ subvolumesfstab에 있는 내용으로 인해 BTRFS를 읽었고 필요한 작업을 수행했습니다. /opt의 크기는 이제 100GB입니다.

그러나 문제는 다음과 같습니다.btrfs를 사용하여 LVM 볼륨을 포맷하는 것이 합리적입니까?본질적으로 둘 다 볼륨 처리 시스템입니다.

설명을 위해 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는 주로 스냅샷과 같은 특정 기능에 사용해야 합니다. 단순한 홈 네트워크 사용에서는 멀리하는 것이 가장 좋습니다. 나는 작은 드라이브의 공간을 관리하는 데 너무 많은 어려움을 겪었지만 더 큰 드라이브에서도 공간이 잠식될 것이라고 상상합니다.

답변1

아마도 이것이 설명이 될 것입니다 (btw, btrfs wiki에서)

btrfs의 하위 볼륨은 LVM 논리 볼륨 또는 ZFS 하위 볼륨과 동일하지 않습니다. LVM을 사용하면 논리 볼륨 자체가 블록 장치입니다(예: 다른 파일 시스템이나 dm-crypt, MD RAID 등과 같은 컨테이너를 포함할 수 있음). 그러나 btrfs의 경우에는 그렇지 않습니다. btrfs 하위 볼륨은 블록 장치가 아니며 블록 장치로 처리될 수 없습니다. 대신 btrfs 하위 볼륨은 POSIX 파일 네임스페이스로 처리될 수 있습니다. 네임스페이스는 파일 시스템의 최상위 하위 볼륨을 통해 액세스하거나 별도로 마운트할 수 있습니다.

당신은 또한 볼 수 있습니다https://btrfs.wiki.kernel.org/index.php/FAQ

파티션, 장치 관리자 및 논리 볼륨과의 상호 작용

Btrfs에 하위 볼륨이 있습니다. 이는 논리 볼륨 관리자가 필요하지 않고 원시 파티션에 대규모 Btrfs 파일 시스템을 생성할 수 있다는 의미입니까?

이 질문에 대한 단일 답변은 없습니다. 원시 파티셔닝 또는 LVM을 선택할 때 다음 문제를 고려하십시오.

  • 성능
    • 원시 파티션은 논리 볼륨보다 약간 빠릅니다.
    • btrfs에는 파일 시스템 하위 볼륨(순차 쓰기) 전체에 대한 쓰기 최적화가 있으며, 쓰기 성능은 이 알고리즘을 통해 각각 다른 LV에 여러 btrfs 파일 시스템을 생성하는 데 도움이 됩니다. 즉, 이 알고리즘은 효과적이지 않을 수 있습니다(커널은 여전히 ​​블록에서 일부 최적화를 수행하지만). 장치) 수준)
  • 장치 간 파일 시스템의 온라인 크기 조정 및 재배치: LVM의 pvmove 명령을 사용하면 온라인 상태에서 장치 간에 파일 시스템을 이동할 수 있습니다.
    • 원시 파티션은 오프라인 상태에서만 다른 시작 실린더로 이동할 수 있습니다.
    • 원시 파티션은 뒤에 여유 공간이 있는 경우에만 더 커질 수 있는 반면, LVM은 LV를 볼륨 그룹의 어느 곳에서나 여유 공간으로 확장할 수 있으며 온라인으로 크기를 조정할 수 있습니다.
  • 하위 볼륨/논리 볼륨 크기 제한
    • LVM은 고정 크기 논리 볼륨(예: 사용자당 10MB, 가상 머신 이미지당 20GB 등) 생성을 용이하게 합니다.
    • 하위 볼륨은 현재 이 엄격한 크기 제한을 적용하지 않지만 향후 qgroups 기능에서 이 문제를 해결할 것입니다.

....FAQ는 LVM+BTRFS 의미 있는 시나리오를 계속 설명합니다.

답변2

또 다른 대답은 "좋습니다!"입니다. LVM은 블록 장치 세트를 가져와 물리적 블록에 대한 고정 매핑을 통해 시스템에 새로운(LV) 블록 장치를 제공합니다. 그것은 단단하고 융통성이 없습니다. BTRFS는 실제 파일 시스템입니다. 둘을 비교하는 것은 반쯤 쓸데없는 일입니다.

ZFS 및 BTRFS(및 아마도 BCACHEFS)는 새롭고 일반적으로 우수한 패러다임을 제시합니다. 모두파일 시스템의 블록 장치는 사용 가능한 블록을 공유합니다. 하위 볼륨의 "df"는 거의 의미가 없습니다. "하위 볼륨"은 데이터 및 메타데이터 블록을 공유할 수 있습니다! BTRFS 스냅샷을 생성하거나 한 하위 볼륨에서 다른 하위 볼륨으로 생성한다는 것은 일부 메타데이터 블록을 즉시 변경한다는 의미입니다.

LVM은 이전 파일 시스템을 지원하기 위해 다소 어리석고 단순한 고정 "파티션" 개념을 지원합니다. LV 및 FS 크기 조정은 BTRFS 또는 ZFS 내에 완전히 포함된 작업입니다.

관련 정보