btrfs 파일 시스템의 루트/하위 볼륨은 무엇입니까?

btrfs 파일 시스템의 루트/하위 볼륨은 무엇입니까?

Btrfs 파일 시스템에서는 subvolume, root-volume, snapshot, 이라는 용어를 사용하는데 top-level, default subvolume이는 약간 혼란스럽습니다.

예는 다음과 같습니다하위 볼륨에 대한 btrfs 위키 페이지어느 상태

새로 생성된 파일 시스템도 최상위 레벨이라고 불리는 하위 볼륨이며 내부 ID는 5입니다. 이 하위 볼륨은 삭제하거나 다른 하위 볼륨으로 교체할 수 없습니다.

btrfs-progs그러나 명령과 같은 도구를 사용하면

  • btrfs 하위 볼륨 목록
  • btrfs 하위 볼륨 표시

표시된 것처럼 하위 볼륨이라는 용어는 실제로 루트 볼륨에 적용되지 않습니다(참조:이것은 또 다른 질문입니다). 또한 이 용어 top-level(위 명령의 출력에 표시됨)는 실제로 하위 볼륨 ID가 5인 하위 볼륨/루트 볼륨으로 제한되지 않습니다. 마지막으로 루트 볼륨은 사용할 수 없고 하위 볼륨만 사용할 수 있는 것 같습니다 btrfs send(역시 위의 정의와 대조).

도움이 필요하세요?

답변1

이를 설명하는 가장 쉬운 방법은 ZFS에 비유하는 것입니다. BTRFS의 하위 볼륨은 기본적으로 파일 시스템 자체의 어딘가에 루트되어 있다는 점을 제외하면 기능적으로 ZFS의 zvol과 동일합니다.

보다 일반적으로 하위 볼륨은 트리의 나머지 부분과 대부분 독립적인 파일 시스템 내부 데이터 구조 세트로 구성됩니다. 이 정의와 코드 자체의 내부 구조에 따르면 최상위 또는 루트 하위 볼륨(subvolid 5)은 기술적으로는 하위 볼륨이지만 하위 볼륨에 대한 정보를 표시하는 명령에서는 특별하게 처리됩니다. 일반 하위 볼륨으로 수행할 수 있습니다(예를 들어 루트 하위 볼륨의 스냅샷을 삭제할 수도 없습니다). 사용자 관점에서 주목할 점은 루트 하위 볼륨이 마운트 시 -o subvolid=5기본 하위 볼륨 설정을 우회하는 하위 볼륨이라는 점입니다.

관련 정보