하위 하위 볼륨으로 btrfs 하위 볼륨 롤백

하위 하위 볼륨으로 btrfs 하위 볼륨 롤백

하위 볼륨이 있는 하위 볼륨 스냅샷으로 롤백하는 정식 방법이 있습니까? 예를 들어, 이것은 내 btrfs 볼륨 레이아웃입니다.

ID 257 gen 59802 top level 5 path __active
ID 258 gen 59784 top level 5 path __snapshot
ID 259 gen 59802 top level 257 path home
ID 260 gen 36538 top level 257 path opt
ID 261 gen 59802 top level 257 path var

따라서 home, opt 및 var가 __active의 하위 볼륨임을 알 수 있습니다. __active의 스냅샷을 찍으면 이것이 나의 새로운 레이아웃입니다:

ID 257 gen 59802 top level 5 path __active
ID 258 gen 59784 top level 5 path __snapshot
ID 259 gen 59802 top level 257 path home
ID 260 gen 36538 top level 257 path opt
ID 261 gen 59802 top level 257 path var
ID 416 gen 59784 top level 258 path __snapshot/__active

__active의 스냅샷으로 롤백하려는 경우 home, opt 및 var를 새 __active에 다시 연결할 수 있는 방법이 있습니까?

답변1

다시 연결을 의미하면 다음이 btrfs subvolume list표시됩니다.

ID 257 gen 59802 top level 5 path __active
ID 258 gen 59784 top level 5 path __snapshot
ID 259 gen 59802 top level 416 path home
ID 260 gen 36538 top level 416 path opt
ID 261 gen 59802 top level 416 path var
ID 416 gen 59784 top level 258 path __snapshot/__active

그 다음에아니요이제 그것을 사용하는 방법이 있습니다 btrfs-progs.

하위 볼륨은 모든 하위 볼륨이 비어 있는 경우(생성 사용)에만 삭제할 수 있지만 btrfs subvolume create ...스냅샷(생성 사용)의 경우에는 삭제할 수 없습니다 btrfs subvolume snapshot .... 스냅샷은 언제든지 삭제할 수 있으므로 이동할 수 있으면 삭제하는 데 문제가 발생합니다.

하위 하위 볼륨과 스냅샷은 모두 동일한 트리 구조에 나타나며 명령을 공유하기도 하지만 btrfs subvolume delete ..동일하게 동작하지는 않습니다.

답변2

첫째, 생산 시 __snapshot/__active하위 볼륨(home, opt, var)은 캡처되지 않습니다. 대신 빈 디렉터리가 생성됩니다. 따라서 __snapshot/__active쉽게 제거할 수 있지만 그 __active반대는 아닙니다.

그러나 요점은 __active복구를 사용하는 것 입니다 __snapshot/__active. 내가 아는 한 이것은 원자적으로 수행될 수 없습니다. 하지만 mv쓰기 가능한 한 스냅샷과 기타 하위 볼륨을 생성 할 수 있습니다 . 예를 들어 이렇게 하세요

mv __active __snapshot/__active.old
mv __snapshot/__active __active

__active스냅샷에서 복원하되 하위 볼륨을 __snapshot/__active.old/{home,opt,var}다시 연결하려면 이제 다음을 사용할 수 있습니다.

mv __snapshot/__active.old/{home,opt,var} __active/

당신은 얻을 것이다

ID 257 gen 59804 top level 258 path __snapshot/__active.old
ID 258 gen 59786 top level 5 path __snapshot
ID 259 gen 59802 top level 416 path home
ID 260 gen 36538 top level 416 path opt
ID 261 gen 59802 top level 416 path var
ID 416 gen 59784 top level 5 path __active

스냅샷이 읽기 전용으로 설정된 경우 다음을 수행할 수 있습니다.

mv __active __snapshot/__active.old
btrfs subvolume snapshot __snapshot/__active __active
rmdir __active/{home,opt,var}
mv __snapshot/__active.old/{home,opt,var} __active/

관련 정보