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기본 하위 볼륨 설정을 우회하기 위해 마운트할 때입니다.

관련 정보