ZFS 스냅 샷을 회전하여 백업 파일로 -aes-256-cbc -a -salt >

로컬 FreeNAS 시스템이 있고 백업에 ZFS 스냅 샷을 사용하려고합니다.
FreeNAS에는 기본 제공 복제 작업이 있으며

zfs send snapshot_name

원격 시스템에 스냅 샷을 보냅니다. 그러나 이것은 다른 쪽 끝에 ZFS가있는 시스템이 필요합니다.

스냅 샷을 파일로 보내고이 압축 및 암호화 된 파일을 원격 컴퓨터로 보냅니다.

이것은 가능하다

zfs send snapshot_name | gzip | openssl enc -aes-256-cbc -a -salt > file.gz.ssl

매일 스토리지 풀의 스냅 샷을 만들고 30 일 동안 모든 스냅 샷을 유지합니다.
모든 스냅 샷을 촬영할 때마다이 스냅 샷을 파일로 파이프합니다.
-snapshot_file 1에는 모든 파일이 있습니다 (2GB라고 함)
.-snapshot_file 2는 snapshot_file 1 (5MB라고 함) 만 변경합니다.
-snapshot_file 3은 snapshot_file 2에 대한 변경 사항을 보유합니다. 등등.

31 일에 snapshot_file 1이 삭제됩니다 (지난 30 일 동안의 변경 사항 만 원하기 때문에)

따라서 snapshot_file 2는 모든 파일을 보유해야합니다 (2GB의 snapshot_file 1 + 5MB 변경)

그러나 매일이 방법을 사용하면 (31 일부터) 새로운 2GB 파일을 작성하여 원격 시스템으로 보내야합니다. 너무 많은 오버 헤드입니다.

X 일의 이력을 가진 백업 전략으로 파일에 파이프 된 스냅 샷을 사용하는 가장 좋은 방법은 무엇입니까?

추신 : 나는 사용할 수있는 백업 소프트웨어가 많이 있다는 것을 알고 있습니다 (예 : rdiff-backup). 그러나 이것이 어떻게 이루어질 수 있는지 궁금합니다.



답변

파일 시스템과 달리 (예 :와 같이 zfs receive) 스냅 샷을 파일에 저장하면 이것이 불가능합니다.

수신 측의 ZFS

송신 및 수신 측에서 ZFS를 사용하는 경우 전체 스냅 샷을 전송하지 않아도되며 이전 스냅 샷과 비교하여 스냅 샷의 차이점 만 전송할 수 있습니다.

ssh myserver 'zfs send -i pool/dataset@2014-02-04 pool/dataset@2014-02-05' | \
  zfs receive

ZFS는 스냅 샷을 알고 상호 블록을 한 번만 저장합니다. 파일 시스템이 스냅 샷을 이해하게하면 문제없이 이전 스냅 샷을 삭제할 수 있습니다.

수신 측의 다른 파일 시스템

귀하의 경우 스냅 샷을 개별 파일에 저장하고 파일 시스템은 스냅 샷을 인식하지 못합니다. 이미 알고 있듯이 회전이 중단됩니다. 전체 스냅 샷을 전송해야하므로 대역폭과 스토리지 공간이 낭비되지만 개별 스냅 샷을 삭제할 수 있습니다. 그들은 서로에게 의존하지 않습니다. 다음과 같이 증분 스냅 샷을 수행 할 수 있습니다.

ssh myserver 'zfs send -i pool/dataset@2014-02-04 pool/dataset@2014-02-05' \
  > incremental-2014-02-04:05

증분 스냅 샷을 복원하려면 이전 스냅 샷도 필요합니다. 이는 이전 증분을 삭제할 수 없음을 의미합니다.

가능한 해결책

마지막 예제와 같이 증분을 수행하고 매월 새로운 비 증분을 수행 할 수 있습니다. 새로운 증분은이 비 증분에 의존하며 이전 스냅 샷을 자유롭게 삭제할 수 있습니다.

또는 다른 백업 솔루션을 살펴볼 수도 있습니다. rsnapshot
rsync있으며 하드 링크 를 사용 합니다. 전체 백업이 한 번만 필요하기 때문에 회전시 매우 잘 작동하며 대역폭 효율성이 뛰어납니다.

그렇다면 베어 로스가 있습니다. 대역폭을 늘리고 공간을 절약하는 증분을 수행합니다. 매우 좋은 기능이 있습니다. 증분 세트에서 전체 백업을 계산할 수 있습니다. 이전 증분을 삭제할 수 있습니다. 그러나 그것은 다소 복잡한 시스템이며 더 큰 설정을 위해 고안되었습니다.

그러나 가장 좋은 해결책은 수신 측에서 ZFS를 사용하는 것입니다. 대역폭 효율성, 스토리지 효율성 및 기타 솔루션보다 훨씬 빠릅니다. 내가 생각할 수있는 유일한 단점은 해당 상자에 최소 8GiB ECC 메모리가 있어야한다는 것입니다 (서비스를 실행하지 않고 사용하는 경우 4GiB로 괜찮을 수 있습니다 zfs receive).


답변