답변:
SSHFS는 편리하지만 rsync 또는 더 일반적으로는 동기화 도구와 잘 맞지 않습니다.
가장 큰 문제는 SSHFS가 rsync의 성능 최적화를 크게 중단 시킨다는 것입니다. 특히 중간에서 큰 파일의 경우 rsync에서 파일이 수정 된 것을 발견하면 수정 된 부분 만 전송하기 위해 각 측면에서 파일 부분의 체크섬을 계산합니다. 이는 네트워크 대역폭이 디스크 대역폭보다 상당히 작은 경우에만 최적화입니다 (일반적인 경우). 그러나 SSHFS의 경우 "디스크"대역폭은 사실상 네트워크 대역폭이므로 rsync는 복사 할 대상을 결정하기 위해 전체 파일을 읽어야합니다. 사실, 로컬 사본 (면 중 하나가 SSHFS에 있더라도 rsync에 관한 한)은 rsync 만 전체 파일을 복사합니다.
작은 파일이 많으면 SSHFS도 성능에 해 롭습니다. Rsync는 모든 파일의 메타 데이터를 확인하여 파일이 수정되었는지 확인해야합니다. SSHFS를 사용하려면 각 파일에 대한 네트워크 왕복이 필요합니다. rsync over SSH를 사용하면 양면이 병렬로 작동하고 정보를 대량으로 전송할 수 있으므로 훨씬 빠릅니다.
액세스 제한 측면에서 SSHFS에는 SFTP 액세스가 필요하지만 rsync에는 셸을 통해 코드 (특히 rsync 프로그램)를 실행하는 기능이 필요합니다. 사용자가 쉘 계정이없는 경우, 그것은 단지를 포함하여 몇 가지 프로그램을 실행 허용하는 특별한 쉘 계정을 제공 할 수 및 일반의 sftp-server
와 rsync
. SCP를 위해 껍질이 필요합니까?를 참조하십시오 .
새 파일 만 복사하고 파일 수가 많지 않으면 성능 차이가 의미가 없습니다.
SSHFS는 파일 시스템이 마운트 될 때 SSH 연결을 설정하고 마운트 해제 될 때까지 해당 연결을 유지합니다. Rsync는 실행할 때마다 새로운 연결을 만들지 만 매번 인증하지 않도록 단일 기본 연결에서 멀티플렉싱 기능과 피기 백을 사용할 수 있습니다 .
SSHFS는 FUSE 파일 시스템이므로 기존 Unix 메타 데이터 및 ACL 만 지원합니다. Rsync는 확장 된 속성을 전송할 수 있습니다 (를 사용해야 rsync -aAX
합니다. 일반 -a
은 기존 Unix 메타 데이터 만 유지함).
sshfs
연결이 아닌 마운트 된 폴더 인 경우에도 동일 합니까? 참조 : unix.stackexchange.com/q/544404/198423 @Gilles
주요 질문에 대답하려면 그렇습니다. 차이가 있습니다. 으로 sshfs
보안 채널이 설정되어 있는지, 보안 채널을 통해 및 SSH를 통해 rsync를 원격 파일에 대한 액세스를 허용하는 기존 연결이 원격 rsync를 인스턴스 이야기는 .
두 번째 질문에 대답하려면 : 원격 시스템의 rsync는 동기화가 필요하지 않은 파일을 찾는 데 더 많은 지능을 제공하지만 주로 기본 서버와 병렬로 실행되므로 ssh를 통한 rsync는 대부분의 경우 더 빠릅니다. 해당 정보를 수집하는 로컬 rsync.
두 가지 방법의 보안은 ssh 매개 변수 (키 길이, 알고리즘)의 유사한 구성이 동일하다고 가정합니다. 소스 및 대상 시스템의 기본값은 해당 시스템의 배포 조합에 따라 다릅니다.
rsync --no-whole-file /mounted/file.tar.gz /home/local/file.tar.gz
.rsync
이 작업에 사용할 때 수정 된 부분 만 전송하기 위해 체크섬을 계산하는 동안rsync
전체 파일을 읽어야하므로 업데이트 된 섹션 대신 전체 데이터를 다운로드해야합니까? @Gilles