원격의 rsync와 마운트된 sshf의 rsync 로컬 간의 차이점은 무엇입니까?

원격의 rsync와 마운트된 sshf의 rsync 로컬 간의 차이점은 무엇입니까?

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

스위치를 사용하지 않고도 보안이나 복사 속도와 관련하여 차이가 있을 수 있으므로 rsync 아카이브 모드와 원격 호스트 경로(ssh)를 사용하세요. 소스와 대상만 사용하여 sshfs 마운트와 동일합니다(암호 변경 없음, 기본값만).

답변1

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

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

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

액세스 제한 측면에서 SSHFS에는 SFTP 액세스가 필요한 반면, rsync에는 셸을 통해 코드(특히 rsync 프로그램)를 실행하는 기능이 필요합니다. 사용자에게 셸 계정이 없는 경우 및 를 포함한 몇 가지 프로그램만 실행할 수 있는 특수 셸이 있는 계정을 제공하는 것이 가능하고 일반적 sftp-server입니다 rsync. 보다SCP용 쉘이 필요합니까?

새 파일만 복사하고 파일 수가 그리 많지 않은 경우에는 의미 있는 성능 차이가 없습니다.

SSHFS는 파일 시스템이 마운트될 때 SSH 연결을 설정하고 마운트 해제될 때까지 해당 연결을 유지합니다. Rsync는 실행할 때마다 새로운 연결을 생성하지만 다음을 사용할 수 있습니다.단일 주 연결의 멀티플렉싱 기능 및 피기백매번 인증하는 것을 피하기 위해.

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

답변2

주요 질문에 대답하려면 예, 차이점이 있습니다. 보안 채널을 통해 원격 파일에 액세스할 수 있는 기존 연결이 있고 sshfsSSH를 통한 rsync를 사용하면 해당 보안 채널이 설정됩니다.원격 rsync 인스턴스와 대화하려면.

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

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

관련 정보