btrfs의 Rsync 백업이 매우 느림

btrfs의 Rsync 백업이 매우 느림

내 환경은 커널 3.19.0-28-generic 및 Btrfs v3.17이 포함된 Ubuntu 15.04입니다.

백업 스크립트에 사용하는 동일한 외부 USB 하드 디스크가 두 개 있습니다. 그 중 하나는 로 포맷 btrfs되고 다른 하나는 ext4. 소스 파일 시스템은 항상 ext4. 명령 rsync은 다음과 같습니다.

rsync --inplace --no-whole-file --link-dest="$previousBackup" "$sourceDir" "$destDir"

btrfs방금 백업을 수행하는 데 시간이 걸린다는 것을 깨달았습니다.극도로오랜 시간: 에 동일한 복사를 수행하는 데 4분이 걸리는 것과 비교하면 1시간이 약간 더 걸립니다 ext4.

디스크 오작동을 배제하기 위해 ddUbuntu와 함께 제공되는 "디스크 유틸리티"를 사용하여 몇 가지 벤치마크를 수행했지만 두 디스크 모두에서 동일한 성능을 얻었습니다. 느린 부분은 이전 백업에 대해 하드링크되는 것 같습니다. 조각 모음 및 스크러빙 후에도 다음 명령은 에서는 약 53분이 걸리지 btrfs만 에서는 1분 밖에 걸리지 않습니다 ext4.

cp -arl "$previousBackup" "$destDir"

인터넷에서 조사한 결과 btrfs하드링크로 인해 의 성능이 저하된다는 힌트를 찾았지만 이를 예상하지는 않습니다.거대한차이점. 이 명령이 더 빠르지만 완료하는 데 여전히 30분 이상 걸린다는 것을 알았습니다.

cp -ar --reflink "$previousBackup" "$destDir"

이 동작에 대한 경험이 있고 이를 확인할 수 있는 사람이 있습니까? 이를 수정하는 간단한 방법이 있습니까(예: 다른 마운트 옵션) 아니면 가능한 한 많은 하드링크를 삭제하고 참조링크만 사용해야 합니까?

편집하다

나도 방금 알았어 심지어삭제 중의 디렉토리에는 btrfs1시간 이상이 필요합니다. "트윈" 디스크에서는 동일한 작업이 즉각적으로 수행됩니다 ext4. 여기에는 분명히 메타데이터에 문제가 있습니다.

답변1

당신은 당신이 하드 링크를 복사하고 있다고 말합니다.rsync명령인데 -H깃발은 어디에 있나요? 나는 당신의 명령에서 그것을 볼 수 없습니다 :

rsync --inplace --no-whole-file --link-dest="$previousBackup" "$sourceDir" "$destDir"

rsync하드링크와 관련하여 내가 어떻게 작동하는지 이해하는 방법은 -H플래그가 없으면 하드링크 대신 실제 데이터가 복사된다는 것입니다.rsync매뉴얼 페이지:

-H, --하드 링크

이는 rsync에게 전송에서 하드 링크된 파일을 찾고 수신 측에서 해당 파일을 함께 연결하도록 지시합니다. 이 옵션이 없으면 전송 시 하드 링크된 파일이 별도의 파일인 것처럼 처리됩니다.

많은 유사한 파일을 하드링크하는 대신 반복해서 복사하는 절차를 수행하면 전송 시간이 느려질 것이라고 상상할 수 있습니다.

-z또한 ( ) 플래그 사용 --compress도 고려해 보세요.

-z, --압축

이 옵션을 사용하면 rsync는 파일 데이터가 대상 시스템으로 전송될 때 압축하여 전송되는 데이터의 양을 줄입니다. 이는 느린 연결에서 유용합니다.

예, 이는 동일한 시스템에서의 USB-USB 전송이므로 속도가 이미 최적화되었을 가능성이 높지만 -z자연스러운 USB 데이터 전송 병목 현상을 극복하는 데 도움이 될 것입니다.

이러한 플래그와 기타 플래그를 설명하는 훌륭하고 간단한 튜토리얼여기에서 찾을 수 있습니다.

관련 정보