설치된 sshfs에서 원격 rsync와 rsync 로컬의 차이점은 무엇입니까?

설치된 sshfs에서 원격 rsync와 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

주요 질문에 대답하려면: 예, 차이가 있습니다. 보안 채널을 통해 원격 파일에 액세스하고 SSH를 통한 rsync를 허용하는 기존 연결이 있는 경우 sshfs보안 채널이 설정됩니다.원격 rsync 인스턴스와 대화.

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

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

관련 정보