btrfs 하위 볼륨의 요점은 무엇입니까?

btrfs 하위 볼륨의 요점은 무엇입니까?

Btrfs 위키에 대한 시스템 관리자 안내서(여기)설명하다:

Btrfs 하위 볼륨은 POSIX 파일 네임스페이스로 생각할 수 있습니다.

처음에 하위 볼륨이라고 말한 것을 기억합니다., 할 수 있는 것보다그렇게 생각해, "POSIX 파일 네임스페이스". Google 검색은 "POSIX file namespace"Btrfs에 대해서만 표시되므로 해당 문구는 도움이 되지 않습니다.

Btrfs의 하위 볼륨은 정확히 무엇입니까? 파일 시스템의 루트에 있는 디렉터리로 하위 볼륨에 액세스할 수 있는 경우 하위 볼륨을 마운트하는 것은 다른 파일 시스템의 디렉터리를 다른 위치에 바인드 마운트하는 것과 같습니다(해당 파일의 루트를 중간에 마운트할 필요 없음). 시스템). 차이점은 무엇입니까? 이것이 내가 의미하는 바입니다:

# standard bind mount
mkdir /mnt/data
mkdir /mnt/docs
mount /dev/sda2 /mnt/data
mount --bind /mnt/data/docs /mnt/docs
umount /mnt/data
rmdir /mnt/data

# hypothetical method of directly mounting
# a file/directory on a filesystem
# to some path that achieves the same
# as the above
mkdir /mnt/docs
mount -o path_on_fs=/docs /dev/sda2 /mnt/docs

# if /docs on sda2 was a subvolume
mkdir /mnt/docs
mount -o subvol=/mnt /dev/sda2 /mnt/docs

하위 볼륨 기능의 목적은 무엇입니까? 예: /var/lib/machines.raw가상 머신 및/또는 컨테이너에서 사용 systemd-machined및 저장되는 Btrfs 파일 시스템 이미지. machinectl아마도 Btrfs는 하위 볼륨에 사용됩니다. Zi Juan은 이를 위해 무엇을 했나요?

하위 볼륨이 컨테이너에 유용한 경우 다른 하위 볼륨에서 실행되는 프로세스에 대한 격리 기능이 내장되어 있습니까?

답변1

나는 전문가가 아닙니다 – 그것도 아닙니다! -- 하지만 최근에 Btrfs에 대해 많이 읽었고 6개월 동안 귀하의 질문에 대한 답변이 없었기 때문에 한번 시도해 봐야겠다고 생각했습니다.

다음은 두 가지 가능한 사용 사례입니다. 이런 일이 흔한 일인지 심지어는 잘 모르겠습니다.존경받는하위 볼륨이 있는 이유(전문가가 아니라 내가 말했듯이). 하지만 스스로 판단하는 데 도움이 되도록 내가 논의한 위치에 대한 링크를 포함하겠습니다.

독립형 스냅샷

Btrfs 스냅샷은 전체 하위 볼륨의 복사본입니다. 이는 스냅샷 기반 복구 또는 백업 전략에 유용할 수 있습니다. 예를 들어 /분리는 /home사용자 데이터에 영향을 주지 않고 시스템 업데이트를 롤백할 수 있음을 의미합니다. 반대로 시스템 파일을 유지하지 않고 사용자 데이터를 백업할 수 있습니다.

하위 볼륨을 사용하여 원하는 디렉터리를 제외할 수도 있습니다.아니요백업을 원합니다. 예를 들어, /home/home/bob/Downloads가 다른 하위 볼륨인 경우 bob의 스냅샷은 /homebob의 다운로드를 제외합니다.

논의하다:

다양한 설치 옵션

각 하위 볼륨은 개별적으로 마운트되므로 다양한 방법으로 마운트할 수 있습니다.설치 옵션서로에게서.

아니면 적어도 그것이 이론입니다. 실제로는 그런 것 같다현재 하위 볼륨당 특정 마운트 옵션만 지원됩니다..

이것이 어떤 시나리오를 가능하게 할지 모르겠습니다(다시 말하지만:전문가가 아님), 그러나 제가 방금 작성한 것 중 하나는 하나의 하위 볼륨이 속도에 최적화되고 다른 하나는 공간에 최적화되도록 압축을 설정하는 것입니다. compress물론 각 하위 볼륨이 한 번만 지원됩니다.

논의하다:

관련 정보