현재 백업을 위해 rsync 및 하드 링크를 사용하고 있습니다. 매년 새로운 정식 버전을 만들고 매일 증가합니다. 일반 파일 관리자에서 검색할 수 있는 방식이 마음에 들고 액세스도 매우 빠릅니다. 나는 하드 링크를 만드는 데 걸리는 시간과 공간을 좋아하지 않습니다. 또한 압축을 원합니다(단, 손상이 단일 파일에만 영향을 미치는 방식). Linux 속성을 지원하지 않는 파일 시스템(예: 클라우드 스토리지)에 저장할 수 있으면 더 좋을 것입니다.
나는 몇 가지 연구와 테스트를 수행했고 몇 가지를 배웠습니다. 첫째, 나는 squashfs가 델타를 제외한 모든 요구 사항을 충족한다는 것을 알았습니다. 각 블록을 개별적으로 압축하므로(그러나 내 홈 디렉터리는 원래 크기의 70%로 압축됨) 손상은 적은 양의 데이터에만 영향을 미칩니다. 일반 파일로 저장할 수도 있으며 여전히 Linux 속성을 포함할 수 있습니다. 또한 마운트 가능하며 임의 액세스를 지원합니다. 증분 백업에 대한 나머지 요구 사항을 해결하기 위해 파일 시스템 덮어쓰기를 살펴보았습니다. 나는 aufs가 다중 브랜치를 지원하고 사용이 간편해 보이기 때문에 사용하기로 결정했습니다.
제가 고려하고 있는 백업 방법은 다음과 같습니다.
- 백업 드라이브에는 세 개의 폴더가 있습니다.
- 작업 폴더(원자성 백업을 수행할 수 있도록 rsync를 사용하여 컴퓨터와 여러 번 동기화됨)
- 임시 폴더(임시 마운트 지점을 저장하는 데 사용됨)
- 백업 폴더:
- 다음 패턴의 이름을 가진 squashfs로 전체 연간 스냅샷을 저장합니다.
full-${unix_timestamp}.squashfs
- 월별 증분 스냅샷은 가장 최근의 전체 스냅샷을 기반으로 다음 패턴으로 저장됩니다.
full-${unix_timestamp_of_full}-differential-${unix_timestamp}.squashfs
- 스토리지는 전날부터 최근 달까지의 일일 증분 스냅샷을 기반으로 합니다. 이름은 다음과 같습니다.
daily-${unix_timestamp_of_monthly}-incremental-${unix_timestamp}.squashfs
- 백업 프로세스는 다음과 같습니다.
rsync -axvh --delete /home /backups/work/
몇 번 실행해 보세요 (캐시와 정크는 제외).mkdir /backups/temp/overlay
- 관련된 모든 일일, 월간 및 전체 백업을 다음의 마운트 지점에 마운트합니다.
/backups/temp/
- aufs를 마운트하면
/backups/base
모든 squashf는 ro로 마운트되고 오버레이는 rw입니다. - Rsync 작업 디렉토리 적용 범위, 비교 대상은 다음과 같습니다.
/backups/base
- mksquashfs는 관련 일일 증분을 다룹니다.
- rm 디렉토리 덮어쓰기
- 모두 제거
- 검색은 검색하려는 날짜까지 백업 프로세스의 aufs 설치 부분만 수행합니다.
이것이 가능한가? 아니면 주요 문제(예: aufs 성능 문제)에 직면하게 됩니까? 내 생각이 좋은 것 같나요?
내 아이디어에 큰 문제가 없다면 이 프로세스를 자동화하는 스크립트를 작성할 계획입니다.