Btrfs를 사용해 보고 싶습니다. 라이브 시스템의 스냅샷을 만들 수 있다는 사실을 발견했지만 아직 답을 찾지 못한 몇 가지 사항이 있습니다. 글쎄요, 제가 이해한 바로는 스냅샷은 기본적으로 어떤 형태로든 아카이브의 완전한 복사본입니다. 그러면 내 라이브 btrfs 시스템의 스냅샷을 생성하고 해당 스냅샷을 btrfs가 아닌 하드 드라이브(예: ext4)에 배치할 수 있습니까?
또한 전체 디스크 암호화(luks)를 실행하고 있습니다. 스냅샷을 다른 곳으로 전송하면 암호화되나요? 스냅샷은 파티션 자체의 실제 데이터를 복사합니까(이 경우 분명히 암호화됩니다), 아니면 다르게 작동합니까?
또한 읽기 액세스로부터 btrfs 스냅샷을 보호하는 방법은 무엇입니까? 다른 사용자가 스냅샷을 읽을 수 있나요? 아니면 그냥 루트인가요? 관리가 가능한가요?
답변1
cp
" ,, 등" 을 사용할 수 있지만 Giles의 답변에 추가하겠습니다. rsync
읽기 전용 하위 볼륨/스냅샷을 전송하려면 명령을 사용하여 btrfs send
하위 볼륨을 btrfs 스트림으로 보내고 저장할 수도 있습니다.Btrfs 위키다음과 같은 용도가 언급됩니다:
# btrfs subvolume snapshot -r / /my/snapshot-YYYY-MM-DD && sync
# btrfs send /my/snapshot-YYYY-MM-DD | ssh user@host btrfs receive /my/backups
# btrfs subvolume snapshot -r / /my/incremental-snapshot-YYYY-MM-DD && sync
# btrfs send -p /my/snapshot-YYYY-MM-DD /my/incremental-snapshot-YYYY-MM-DD |
ssh user@host btrfs receive /backup/home
그러나 나중에 사용하기 위해 스트림을 저장할 수도 있습니다.
# btrfs subvolume snapshot -r / /my/snapshot-YYYY-MM-DD && sync
# btrfs send /my/snapshot-YYYY-MM-DD |
ssh user@host 'cat >/backup/home/snapshot-YYYY-MM-DD.btrfs'
# btrfs subvolume snapshot -r / /my/incremental-snapshot-YYYY-MM-DD && sync
# btrfs send -p /my/snapshot-YYYY-MM-DD /my/incremental-snapshot-YYYY-MM-DD |
ssh user@host 'cat >/backup/home/incremental-snapshot-YYYY-MM-DD.btrfs'
이는 임의의 파일 시스템에 btrfs 스냅샷을 그대로 저장하는 데 유용합니다. 이와 대조적으로 스냅샷은 증분식이며 델타만 전송된다는 장점이 tar
있습니다 . btrfs
btrfs Wiki는 이 증분 백업 방법이 rsync
.
답변2
스냅샷은 (이런 의미에서) 파일 시스템의 일부입니다. btrfs 용어에서는 하위 볼륨입니다. 즉, 볼륨의 디렉터리 트리 중 하나입니다. "보관된 형식"이 아닙니다. 하위 볼륨의 스냅샷을 생성하면 스냅샷이 생성된 날짜를 기준으로 원래 볼륨의 데이터가 포함된 새 하위 볼륨이 생성됩니다. 원래 하위 볼륨에 대한 후속 쓰기는 스냅샷에 영향을 주지 않으며 그 반대의 경우도 마찬가지입니다. 모든 하위 볼륨은 동일한 볼륨의 일부입니다. 이는 볼륨에 있는 데이터의 (겹칠 수 있는) 하위 집합을 지정합니다.
하위 볼륨에 있는 스냅샷의 수정되지 않은 부분은 스토리지를 공유합니다. 처음에 스냅샷을 생성하려면 스냅샷 제어 데이터 외에는 스토리지가 필요하지 않습니다. 스토리지 양은 하위 볼륨의 내용에 따라 시간이 지남에 따라 증가합니다.
스냅샷 생성의 가장 중요한 속성은 원자성이라는 것입니다. 즉, 특정 시점의 데이터 사진을 찍습니다. 이는 백업을 만드는 데 유용합니다. 백업 프로그램이 라이브 시스템에서 파일을 복사하는 경우 파일 수정과 제대로 상호 작용할 수 없습니다. 예를 들어, 파일을 디렉터리 A에서 디렉터리 B로 이동했지만 백업 프로그램이 이동하기 전에 B를 통과하고 이동한 후에 A를 통과하는 경우 해당 파일은 백업에 포함되지 않습니다. 스냅샷은 이 문제를 해결합니다. 이동 전에 스냅샷이 생성된 경우 파일은 A에 있고, 이동 후에 스냅샷이 생성된 경우 파일은 B에 있지만 어느 쪽이든 그대로 유지됩니다. 그러면 백업 프로그램이 스냅샷에서 외부 미디어로 복사할 수 있습니다.
스냅샷은 원본 볼륨과 동일한 볼륨에 있기 때문에 동일한 방식으로 저장됩니다. 예를 들어 볼륨이 암호화되면 스냅샷도 암호화됩니다.
스냅샷은 권한 및 기타 모든 메타데이터를 포함하여 원래 디렉터리 트리를 복사합니다. 따라서 권한은 이전과 동일합니다. 또한 사용자는 스냅샷 디렉터리 자체에 대한 액세스 권한이 있어야 합니다. 사용자가 스냅샷에 전혀 액세스할 수 없도록 하려면 사용자가 액세스할 수 없는 디렉토리에 스냅샷을 생성하십시오(원하는 곳에 스냅샷을 배치할 수 있음).
파일 시스템 외부에서 스냅샷의 복사본을 생성하려면 Snapshot에 액세스하거나 이를 설치하고 즐겨 사용하는 프로그램( , 등)을 사용하여 cp
복사본을 생성하십시오 rsync
. 예제 명령은 다음에서 찾을 수 있습니다.위키피디아;완전한 참조는 매뉴얼 페이지를 참조하세요.