사무실에서 데이터를 백업하기 위해 rsnapshot을 실행하는 Raspberry Pi Model B(예비품이 있음)를 사용합니다. 기본적으로 매일 밤 여러 개의 smb 설치 폴더에서 여러 외부 하드 드라이브(fuseblk)로 데이터를 복사합니다.
백업할 데이터를 점차 추가해 왔는데, 최근에는 전체 프로세스가 매우 느려졌습니다. 전체 작업을 수행하는 데 약 15시간이 걸립니다.
다음은 로그 사본입니다(한 디스크에만 해당).
[07/Nov/2018:21:16:05] /usr/bin/rsnapshot -c /etc/rsnapshot.conf Daily: started
[07/Nov/2018:21:16:05] echo 28378 > /var/run/rsnapshot.pid
[07/Nov/2018:21:16:08] /bin/rm -rf /mnt/Disk1/Backup/Daily.4/
[07/Nov/2018:23:31:33] mv /mnt/Disk1/Backup/Daily.3/ /mnt/Disk1/Backup/Daily.4/
[07/Nov/2018:23:31:33] mv /mnt/Disk1/Backup/Daily.2/ /mnt/Disk1/Backup/Daily.3/
[07/Nov/2018:23:31:33] mv /mnt/Disk1/Backup/Daily.1/ /mnt/Disk1/Backup/Daily.2/
[07/Nov/2018:23:31:33] /bin/cp -al /mnt/Disk1/Backup/Daily.0 /mnt/Disk1/Backup/Daily.1
[08/Nov/2018:02:17:45] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld01 /mnt/Disk1/Backup/Daily.0/./
[08/Nov/2018:02:43:28] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld02 /mnt/Disk1/Backup/Daily.0/./
[08/Nov/2018:02:46:29] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld03 /mnt/Disk1/Backup/Daily.0/./
[08/Nov/2018:02:54:05] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld04 /mnt/Disk1/Backup/Daily.0/./
[08/Nov/2018:02:54:48] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld05 /mnt/Disk1/Backup/Daily.0/./
[08/Nov/2018:02:54:49] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld06 /mnt/Disk1/Backup/Daily.0/./
[08/Nov/2018:02:54:49] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld07 /mnt/Disk1/Backup/Daily.0/./
[08/Nov/2018:03:00:10] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld08 /mnt/Disk1/Backup/Daily.0/./
[08/Nov/2018:03:25:57] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld09 /mnt/Disk1/Backup/Daily.0/./
[08/Nov/2018:03:25:57] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld10 /mnt/Disk1/Backup/Daily.0/./
[08/Nov/2018:03:28:42] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld11 /mnt/Disk1/Backup/Daily.0/./
[08/Nov/2018:03:53:39] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld12 /mnt/Disk1/Backup/Daily.0/./
[08/Nov/2018:03:58:05] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld13 /mnt/Disk1/Backup/Daily.0/./
[08/Nov/2018:04:00:24] touch /mnt/Disk1/Backup/Daily.0/
[08/Nov/2018:04:00:24] rm -f /var/run/rsnapshot.pid
[08/Nov/2018:04:00:24] /usr/bin/rsnapshot -c /etc/rsnapshot.conf Daily: completed successfully
이제 나는 RPi가 빠르지 않고 외부 드라이브도 빠르지 않다는 것을 알고 있습니다. 그런데 문제는 여기에 있는 것 같다.
[07/Nov/2018:21:16:08] /bin/rm -rf /mnt/Disk1/Backup/Dayly.4/
특히 여기
[07/Nov/2018:23:31:33] /bin/cp -al /mnt/Disk1/Backup/Dayly.0 /mnt/Disk1/Backup/Daily.1
아마도 수만 개의 파일이 있을 것이라는 점을 명심하십시오(글을 쓰면서 세고 있지만 시간이 얼마나 걸릴지 모르겠습니다). (편집: ~30GB에 ~250,000개 파일)
문제가 무엇인지, 어떻게 해결할 수 있는지 아시나요?
제가 여기 있는 동안에는 --relative
명령의 [...] 옵션에 대해 아무것도 모릅니다. 솔직히 어떻게 생각해 냈는지 기억이 나지 않습니다. 구성한 지 꽤 시간이 지났습니다. 트리를 저장해야 한다면 ? 아니면 작동하기 때문에 괜찮은 걸까요?--no-relative
rsync
relative
-=*업데이트*=-
권장사항에 따라 USB 드라이브를 ext4로 포맷했습니다. 실행 후 로그는 다음과 같습니다.
[16/Nov/2018:21:16:04] /usr/bin/rsnapshot -c /etc/rsnapshot.conf Daily: started
[16/Nov/2018:21:16:04] echo 19966 > /var/run/rsnapshot.pid
[16/Nov/2018:21:16:04] /bin/rm -rf /mnt/Disk1/Backup/Daily.4/
[16/Nov/2018:21:18:52] mv /mnt/Disk1/Backup/Daily.3/ /mnt/Disk1/Backup/Daily.4/
[16/Nov/2018:21:18:52] mv /mnt/Disk1/Backup/Daily.2/ /mnt/Disk1/Backup/Daily.3/
[16/Nov/2018:21:18:52] mv /mnt/Disk1/Backup/Daily.1/ /mnt/Disk1/Backup/Daily.2/
[16/Nov/2018:21:18:52] /bin/cp -al /mnt/Disk1/Backup/Daily.0 /mnt/Disk1/Backup/Daily.1
[16/Nov/2018:21:22:25] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld01 /mnt/Disk1/Backup/Daily.0/./
[16/Nov/2018:21:24:19] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld02 /mnt/Disk1/Backup/Daily.0/./
[16/Nov/2018:21:24:27] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld03 /mnt/Disk1/Backup/Daily.0/./
[16/Nov/2018:21:24:41] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld04 /mnt/Disk1/Backup/Daily.0/./
[16/Nov/2018:21:24:44] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld05 /mnt/Disk1/Backup/Daily.0/./
[16/Nov/2018:21:24:44] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld06 /mnt/Disk1/Backup/Daily.0/./
[16/Nov/2018:21:24:45] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld07 /mnt/Disk1/Backup/Daily.0/./
[16/Nov/2018:21:25:04] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld08 /mnt/Disk1/Backup/Daily.0/./
[16/Nov/2018:21:26:04] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld09 /mnt/Disk1/Backup/Daily.0/./
[16/Nov/2018:21:26:04] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld10 /mnt/Disk1/Backup/Daily.0/./
[16/Nov/2018:21:26:20] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld11 /mnt/Disk1/Backup/Daily.0/./
[16/Nov/2018:21:26:58] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld12 /mnt/Disk1/Backup/Daily.0/./
[16/Nov/2018:21:28:54] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld13 /mnt/Disk1/Backup/Daily.0/./
[16/Nov/2018:21:30:03] touch /mnt/Disk1/Backup/Daily.0/
[16/Nov/2018:21:30:03] rm -f /var/run/rsnapshot.pid
[16/Nov/2018:21:30:03] /usr/bin/rsnapshot -c /etc/rsnapshot.conf Daily: completed successfully
보시다시피 전체 시간은 15분에서 약 7시간으로 크게 단축됩니다.
여러분, 솔직히 말해서 정말 감동받았어요.
내가 남긴 유일한 의심은 의견에서 논의된 내용입니다. rsync가 smb 소스 폴더를 로컬 폴더로 처리하더라도 증분 복사를 수행한다고 믿습니다. 이러한 폴더 중 일부에는 10,000개 이상의 파일이 포함되어 있으며(아마도 그 이상일 수 있으며 지금은 확인할 수 없음) 단 2분 안에 모든 파일을 복사하는 것은 불가능합니다.
답변1
여기에는 백업 솔루션 속도를 저하시킬 수 있는 몇 가지 문제가 있습니다.
rsync
두 개의 "로컬" 파일 시스템 간에 복사를 사용하고 있습니다 .그 중 하나가 SMB이기 때문에
rsync
파일 시스템이 로컬 시스템의 일부로 마운트된 경우rsync
로컬 시스템으로 취급되어야 합니다. 즉, 변경된 파일은 변경된 부분뿐만 아니라 SMB 네트워크 공유에서 전체를 복사해야 함을 의미합니다.파일 서버가 직접 실행될 수 있는 경우 원격 프로세스를 시작하고 증분 복사본의 이점을 얻을
rsync
수 있도록 백업 프로세스를 수정하십시오 .rsync
fusionblk를 통해 백업 디스크에 쓰고 있습니다.
디스크에 NTFS 파일 시스템이 있기 때문인 것 같습니다. 기본 Linux 파일 시스템을 사용하도록 다시 포맷할 수 있으면
ext4
파일 IO 속도가 크게 향상됩니다.rm -rf
너무 오래 걸린 것을 포함합니다 .VFAT에 기록하는 경우 품질 타임스탬프 문제도 발생하므로
rsync
다른 동일한 파일을 백업 미디어에 계속 복사하지 않도록 그에 따라 경고해야 합니다.나는 귀하가 실제로 NTFS를 사용하고 있으며 Windows에서 디스크를 읽을 수 있도록 계속 사용하고 싶다는 의견을 이해합니다. 또 다른 방법은
ext4
Windows에 디스크 드라이버를 설치하는 것입니다. 나는 사용한다ext2fs, 나는 이것이 매우 신뢰할 만하다고 생각합니다.