나는 변경되지 않은 파일의 스냅샷 사이에 하드 링크를 저장하기 위해 link-dest 기능을 rsync
사용하여 파일 서버의 매일(곧 매주, 매월) "스냅샷"을 유지하는 백업 구성표를 사용합니다. rsync
이는 매우 효율적입니다. 330GB가 넘는 데이터를 백업하는 경우 파일이 변경되지 않은 경우 전체 스냅샷은 디스크에서 1.5MB만 차지합니다.
최근 이 서버의 하드 드라이브 오류로 인해 제가 지금 얼마나 취약한지 충격적으로 깨달았습니다. 백업 스냅샷으로 인해 데이터가 손실되지는 않았지만 백업과 백업된 데이터는 모두 서버의 동일한 물리적 상자에 있습니다. 섬기는 사람. 내 아파트에 있는 사무실, 내 아파트 건물에 작은 화재가 발생하면 내 데이터의 모든 마지막 부분이 완전히 지워질 수 있습니다.
외부 하드 드라이브를 가져갈 수 있는 오프사이트 위치가 있으므로 한 하드 드라이브가 오프라인이고 오프사이트인 동안 두 번째 하드 드라이브가 연결되어 내 드라이브의 스냅샷을 백업하는 순환 오프사이트 백업을 구현할 계획입니다. 하드 드라이브를 사용하고 주기적으로(예: 일주일에 한 번) 교체하여 최악의 상황이 발생하면 기껏해야 지난 몇 주 동안의 데이터를 잃게 됩니다.
이제 문제는 데이터 자체가 아닌 외장 하드 드라이브에 스냅샷을 백업하고 싶다는 것입니다. (어느 날 하드 드라이브가 고장난 것을 눈치 채지 못했기 때문에 그날의 일일 스냅샷은 거의 쓸모가 없었습니다. 그러나 추가 스냅샷을 사용하면 베이컨이 절약되므로 여기서도 동일한 수준의 확신을 원합니다. 참고 사항: 실제로감시 장치cp
편리한 SMART 데이터...) 검증된 방법은 하드 링크 대신 단일 파일을 보기 때문에 작동하지 않으며 , 7배 더 많은 저장 공간이 필요합니다! rsync
예, 하지만 더 작은 드라이브를 사용할 수 있도록 외부 드라이브의 데이터를 압축하고 싶습니다. (저는 1TB를 목표로 하고 있습니다. 이는 현재 337GB의 데이터에 충분하지만 대부분의 파일 서버 용량보다는 훨씬 적습니다. 3TB 중 1TB 드라이브에 3TB를 모두 백업할 수는 없습니다. 압축을 하더라도 데이터가 증가함에 따라 1TB의 수명이 최대로 유지되기를 바랍니다.
그렇다면 스냅샷 간의 하드 링크 연결을 유지하면서 백업 중인 파일을 압축하는 방법을 아는 사람이 있습니까? 이상적인 솔루션은 제외 목록도 지원하므로 이미 압축된 파일(.zip, .gz, .mp3, .jpg 등) 압축을 건너뛸 수 있습니다.
명확성을 위해 /backup/snapshots/daily.0/file1을 가리키는 /backup/snapshots/daily.1/file1의 하드 링크가 /mnt/external_hdd /snapshots/daily에 복사되는 시나리오를 찾고 있습니다. .1/file1은 /mnt/external_hdd/snapshots/daily.0/file1에 대한 하드 링크 역할을 하며, 이 파일(실제 파일 자체)은 이제 압축됩니다(예: gzip).
답변1
바라보다rdup-simple
(에서rdup). 압축을 원하신다고 하셨는데 마음이 바뀌시면 적극 추천드려요스냅 사진.
그런데 두 개의 하드 링크가 하나의 파일을 가리키면 동일한 파일입니다. 파일 시스템의 기본 데이터가 동일하기 때문에 하드 링크 중 하나를 압축할 수는 없습니다.
답변2
파일 시스템 수준에서 압축할 수 있습니다. 그러나 Linux의 기존 파일 시스템 중 어느 것도 파일 시스템을 지원하지 않으므로 세 가지 옵션이 있습니다.
- BTRFS, 여전히 실험적인 것으로 간주됨
- ZFS(메인라인 커널에는 없으며 다음과 같이 사용 가능추가또는퓨즈를 통해)
- ㅏ퓨즈스택형 파일 시스템압축 제공, 예를 들어퓨즈 압축또는복합 퓨즈.
큰 아카이브를 압축하면 많은 작은 파일을 개별적으로 압축하는 것보다 더 나은 압축률을 얻을 수 있습니다. 따라서 외부 미디어의 아카이브를 사용하는 것이 좋습니다. 예를 들어 아카이브를 사용하는 백업 소프트웨어를 사용하면 됩니다.이중성. Gnome이나 KDE 가상 파일 시스템 또는 다른 프로그램을 사용하여 파일을 쉽게 찾아볼 수 있습니다.AVFS( mountavfs; ls ~/.avfs$PWD/archive.tgz#/path/to/archive/member
).