디렉터리의 BTRFS 스냅샷을 생성할 수 있습니까?

디렉터리의 BTRFS 스냅샷을 생성할 수 있습니까?

스냅샷을 만들려고 하면:

[root@localhost ~]# btrfs subvolume snapshot /home/admin2/ /.snapshots/s2
ERROR: Not a Btrfs subvolume: Invalid argument

디렉터리의 BTRFS 스냅샷을 만드는 방법은 무엇입니까?

답변1

나는 쉬운 방법을 모른다. 나는 아니오라고 말하고 싶습니다. 그것은 직접적으로 일어날 수 없습니다.

admin2/하위 볼륨이라면 문제가 없습니다 . 하지만 디렉토리를 즉시 하위 볼륨으로 투명하게 변환할 수는 없을 것 같습니다.

해결 방법이 있습니다.

  1. 포함된 전체 하위 볼륨의 스냅샷을 생성합니다 admin2/.

  2. admin2/스냅샷에서 *를 제외한 모든 항목을 제거합니다.

  3. 스냅샷의 데이터를 재정렬합니다.

    • *의 내용을 admin2/스냅샷의 최상위 디렉터리로 이동합니다.
    • admin2/스냅샷에서 나머지 콘텐츠를 제거합니다(예: * 디렉터리, 현재 비어 있음).
  4. 원래 디렉토리를 기반으로 스냅샷 최상위 디렉토리의 소유권과 모드를 변경합니다 admin2/.

이 방법으로 필요한 하위 볼륨, 즉 디렉터리의 스냅샷을 수동으로 생성할 수 있습니다.

나중에 이 프로세스를 반복하고 싶다면 원래 디렉터리를 하위 볼륨으로 바꾸는 것을 고려하십시오. 디렉터리를 다른 곳으로 이동하고(이름 변경 또는 삭제) 하위 볼륨을 해당 위치로 이동합니다. 하위 볼륨이 생성되면 /home/admin2/다른 스냅샷을 생성할 가능성이 높아집니다. 하지만 이제 스냅샷을 만드는 것이 쉽고 시도한 명령이 이제 작동할 것입니다.


admin2/* 스냅샷을 원본 디렉토리와 혼동 하지 마십시오 . 제가 admin2/별표로 표시한 곳이 admin2/스냅샷에 있는 곳입니다.


메타노트: 솔직히 반복할 뻔했어요이 다른 답변. 문제는 디렉토리를 하위 볼륨으로 변환하는 것인데, 이를 원할 수도 있고 원하지 않을 수도 있습니다. 이러한 차이점 때문에 나는 단순히 다른 답변을 제시하는 것이 아닙니다. 귀하의 질문에 따라 절차를 설명하기로 결정했습니다. 그러나 차이점은 주로 질문에 있습니다. 프로세스의 유일한 차이점은 몇 가지 이름을 변경하게 되는지 여부입니다. 내 답변이 유용하다고 생각되면 링크된 답변에 찬성 투표를 해주시기 바랍니다.

답변2

스냅샷은 하위 볼륨에 대해서만 생성될 수 있습니다. 디렉토리를 하위 볼륨으로 변환하는 직접적인 방법은 없습니다.

그러나 동일한 데이터가 포함된 디스크의 디렉터리 복사본을 공유하려는 경우 다음을 수행할 수 있습니다.위키피디아그리고 사용cp --reflink:

cp -ax --reflink=always src/. dest

이렇게 하면 디렉터리의 일반 복사본이 생성되지만 모든 파일 데이터를 복사하는 대신 원본 디렉터리와 공유(=재링크)됩니다. 기본적으로 이는 스냅샷과 동일합니다. 복사본을 별도의 하위 볼륨에 넣으려면 빈 하위 볼륨을 생성하고 디렉터리를 여기에 복사하면 됩니다.

데이터에 따라 이 방법이 더 나을 수도 있습니다.@camiles 답변다른 파일을 모두 삭제하면 많은 수의 파일을 삭제하는 데 시간이 걸릴 수 있기 때문입니다.

관련 정보