원격의 rsync와 마운트 된 sshfs의 rsync local의 차이점은 무엇입니까?


12

원격 호스트 (ssh : //)를 소스 / 대상으로 rsync를 실행하거나 로컬 경로를 사용하여 sshfs를 통해 마운트 된 디렉토리를 공유하는 경우 차이점이 있습니까?

스위치 사용없이 보안 또는 복사 속도와 관련하여 차이점이있을 수 있습니다. 단지 rsync 아카이브 모드와 원격 호스트 경로 (ssh)를 일시 중지하십시오. sshfs와 동일하게 소스 및 대상으로 만 마운트됩니다 (암호 변경 없음, 기본값).

답변:


17

SSHFS는 편리하지만 rsync 또는 더 일반적으로는 동기화 도구와 잘 맞지 않습니다.

가장 큰 문제는 SSHFS가 rsync의 성능 최적화를 크게 중단 시킨다는 것입니다. 특히 중간에서 큰 파일의 경우 rsync에서 파일이 수정 된 것을 발견하면 수정 된 부분 만 전송하기 위해 각 측면에서 파일 부분의 체크섬을 계산합니다. 이는 네트워크 대역폭이 디스크 대역폭보다 상당히 작은 경우에만 최적화입니다 (일반적인 경우). 그러나 SSHFS의 경우 "디스크"대역폭은 사실상 네트워크 대역폭이므로 rsync는 복사 할 대상을 결정하기 위해 전체 파일을 읽어야합니다. 사실, 로컬 사본 (면 중 하나가 SSHFS에 있더라도 rsync에 관한 한)은 rsync 만 전체 파일을 복사합니다.

작은 파일이 많으면 SSHFS도 성능에 해 롭습니다. Rsync는 모든 파일의 메타 데이터를 확인하여 파일이 수정되었는지 확인해야합니다. SSHFS를 사용하려면 각 파일에 대한 네트워크 왕복이 필요합니다. rsync over SSH를 사용하면 양면이 병렬로 작동하고 정보를 대량으로 전송할 수 있으므로 훨씬 빠릅니다.

액세스 제한 측면에서 SSHFS에는 SFTP 액세스가 필요하지만 rsync에는 셸을 통해 코드 (특히 rsync 프로그램)를 실행하는 기능이 필요합니다. 사용자가 쉘 계정이없는 경우, 그것은 단지를 포함하여 몇 가지 프로그램을 실행 허용하는 특별한 쉘 계정을 제공 할 수 및 일반의 sftp-serverrsync. SCP를 위해 껍질이 필요합니까?를 참조하십시오 .

새 파일 만 복사하고 파일 수가 많지 않으면 성능 차이가 의미가 없습니다.

SSHFS는 파일 시스템이 마운트 될 때 SSH 연결을 설정하고 마운트 해제 될 때까지 해당 연결을 유지합니다. Rsync는 실행할 때마다 새로운 연결을 만들지 만 매번 인증하지 않도록 단일 기본 연결에서 멀티플렉싱 기능과 피기 백을 사용할 수 있습니다 .

SSHFS는 FUSE 파일 시스템이므로 기존 Unix 메타 데이터 및 ACL 만 지원합니다. Rsync는 확장 된 속성을 전송할 수 있습니다 (를 사용해야 rsync -aAX합니다. 일반 -a은 기존 Unix 메타 데이터 만 유지함).


예를 들어 마운트 된 SSHFS 디렉토리에 단일 압축 파일이 있고 해당 파일이 내 로컬 디렉토리로 복사됩니다. 나중에 해당 파일이 마운트 된 디렉토리에서 업데이트되며을 사용하여 업데이트 된 섹션 만 로컬 디렉토리로 복사하고 싶습니다 rsync --no-whole-file /mounted/file.tar.gz /home/local/file.tar.gz. rsync이 작업에 사용할 때 수정 된 부분 만 전송하기 위해 체크섬을 계산하는 동안 rsync전체 파일을 읽어야하므로 업데이트 된 섹션 대신 전체 데이터를 다운로드해야합니까? @Gilles
alper

1
@alper sshfs를 통해 rsync를 사용할 때 rsync는 전체 파일을 읽어야합니다. 그렇지 않으면 무엇을 업데이트해야하는지 알 수 없습니다. 서버에서 체크섬을 계산할 방법이 없으므로 체크섬 만 전송하여 최적화 할 수있는 방법이 없습니다.
Gilles 'SO- 악마 그만'

대상 위치가 sshfs연결이 아닌 마운트 된 폴더 인 경우에도 동일 합니까? 참조 : unix.stackexchange.com/q/544404/198423 @Gilles
alper

4

주요 질문에 대답하려면 그렇습니다. 차이가 있습니다. 으로 sshfs보안 채널이 설정되어 있는지, 보안 채널을 통해 및 SSH를 통해 rsync를 원격 파일에 대한 액세스를 허용하는 기존 연결이 원격 rsync를 인스턴스 이야기는 .

두 번째 질문에 대답하려면 : 원격 시스템의 rsync는 동기화가 필요하지 않은 파일을 찾는 데 더 많은 지능을 제공하지만 주로 기본 서버와 병렬로 실행되므로 ssh를 통한 rsync는 대부분의 경우 더 빠릅니다. 해당 정보를 수집하는 로컬 rsync.

두 가지 방법의 보안은 ssh 매개 변수 (키 길이, 알고리즘)의 유사한 구성이 동일하다고 가정합니다. 소스 및 대상 시스템의 기본값은 해당 시스템의 배포 조합에 따라 다릅니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.