Btrfs는 명령을 원자적으로 수신합니까?

Btrfs는 명령을 원자적으로 수신합니까?

간결한 버전:sendBtrfs 및 command 의 도움으로 정기적인 백업을 수행하고 있습니다 receive. 백업할 데이터가 포함된 스냅샷( )은 SOURCE읽기 전용 스냅샷입니다. Btrfs를 사용하여 이 스냅샷을 생성하는 것은 원자성입니다. 그런 다음 sendBtrfs와 명령을 조합 하여 백업을 만듭니다 receive. 내 질문은: Btrfs receive명령도 대상 볼륨에 백업 스냅샷을 자동으로 생성합니까?

긴 버전: 일일 백업 전략에서는 Btrfs를 사용하여 소스 하위 볼륨의 변경 사항을 백업 드라이브로 보냅니다. 백업하려는 하위 볼륨은 에 있으며 SOURCE백업 자체는 에 저장됩니다 DEST.

백업을 수행하기 전에 읽기 전용 스냅샷이 필요하며 이를 하위 디렉토리에 SOURCE저장합니다 . 이 작업은 명령을 통해 수행됩니다.SOURCE.snapshots

btrfs subvolume snapshot -r SOURCE SOURCE/.snapshots/current_backup
sync

syncBtrfs-wiki에 따르면 위 명령이 작동하려면 btrfs send. 이제 호출된 스냅샷을 다른 드라이브의 백업 볼륨으로 보내고 싶습니다 current_backup. DEST나는 명령을 사용하여 이 작업을 수행합니다.

btrfs send SOURCE/.snapshots/current_backup | btrfs receive DEST

내 질문은 btrfs receive백업 프로세스의 이 부분에 관한 것입니다. 이 작업이 자동으로 발생합니까? 즉, DEST완전히 수신 및 기록된 후에만 볼륨의 백업을 사용할 수 있습니까?

답변1

아니요, 원자적이지 않습니다. Btrfs 수신은 하위 볼륨을 생성하므로 이는 원자적이지만 처음에는 하위 볼륨이 비어 있습니다. 그런 다음 btrfs receive는 하위 볼륨을 수신 데이터로 채웁니다.

DEST로 cd'ing하고 백업을 수행하는 동안 ls 또는 find를 반복적으로 실행하여 이를 테스트할 수 있습니다.

관련 정보