느린 네트워크를 위한 백업 시스템

느린 네트워크를 위한 백업 시스템

나는 새로운 백업이 만들어질 때마다 최소한의 데이터만 전송할 수 있는 백업 시스템을 만들려고 노력하고 있습니다.

현재 저는 smb 마운트에 대한 이중성을 통해 증분 백업을 수행하고 있습니다. 현재로서는 약 1MB/s로 제한되어 있습니다(wifi/ndiswrapper는 어리석은 일이지만 여전히 - 이를 수정해도 속도가 5배 이상 향상되지는 않습니다).

불행히도 제거, 수정 등의 데이터로 인해 증분 백업을 영원히 유지하기가 어렵습니다. 전체 백업으로 쉽게 병합할 수 없으며 40GB 이상의 전체 복사본을 만드는 데 지금은 약간 시간이 걸립니다.

새로운 시스템을 통해 달성하고 싶은 몇 가지 사항과 별로 신경 쓰지 않는 몇 가지 사항이 있습니다.

  • 체크포인트를 두어 개 갖고 싶지만 아마도 2~3개를 넘지 않을 것입니다.
  • 저장소가 로컬 네트워크에 있으므로 암호화에 신경쓰지 않습니다.
  • 압축하면 좋겠지만 파일 시스템/장치 압축만 사용해도 될 것 같습니다.
  • 전체 복사를 다시 수행하지 않고도 최신 백업을 제외한 모든 백업을 완전히 제거할 수 있기를 원합니다.

이것은 rsync + 루프 장치 압축 + fs 스냅샷을 사용하여 가능한 것 같습니다... 하지만 불행하게도 내 장치는 실제로 스냅샷을 지원하지 않습니다. 표준 데비안의 지원 파일 시스템 목록만 있고 백업에 btrfs를 사용하고 싶지 않습니다.

비슷한 솔루션이 있나요? 또 어떻게 접근할 수 있나요?

편집: 스냅샷 부분은 실제로 lvm 읽기 전용 스냅샷으로 수행할 수 있다고 생각합니다. 이는 또한 잘못 동작하는 앱으로부터 또 다른 보호 계층을 제공합니다.

답변1

RSnapshot하드링크 및 rsync를 사용하여 증분 백업을 수행합니다. 파일이 마지막으로 백업이 실행되었을 때와 동일하면 하드링크만 수행됩니다. 따라서 아무것도 변경하지 않고 3시간 동안 매시간 rsnapshot을 실행하면 다음과 같은 세 개의 폴더가 생성됩니다.

hourly.0
hourly.1
hourly.2

각각은 "전체" 백업을 포함하는 것처럼 보이지만 각 파일의 복사본은 하나만 디스크에 상주합니다. 즉, hourly.2를 삭제해도 hourly.1 및 hourly.0에는 여전히 모든 파일이 포함됩니다. 백업 빈도와 스냅샷 수를 설정할 수 있습니다.

이렇게 하면 첫 번째 목표가 달성되지만 대상 파일 시스템이 이 작업을 수행하려면 하드링크를 지원해야 합니다.

이에 대한 대안은 rsync +를 사용하는 것입니다.LVM백업 장치에 저장하고 주기적으로 스냅샷을 찍습니다. LVM 스냅샷은 "기록 중 복사" 볼륨으로, 블록이 변경되지 않는 한 스냅샷 볼륨과 동일한 블록을 재사용하여 원본과 동일하게 유지되며, 스냅샷 볼륨은 다른 블록만 저장합니다. 따라서 백업 간에 스냅샷이 생성되는 볼륨의 변경 속도와 일치하도록 크기를 조정할 수 있습니다.

압축은 좋지만 btrfs를 사용하고 싶지 않다면 루프나 퓨즈를 통한 일종의 파일 시스템 압축이 필요할 것입니다.

관련 정보