tar 와 ssh 를 이용한 파일 원격 전송 속도 향상 하기

수많은 수의 파일과 디렉토리를 원격지 서버로 빠르게 전송하는 방법으로 tar 와 ssh 를 이용한 방법을 소개함.

적은 수의 대용량 파일을 복사할 경우 흔히 사용하는 ftp나 scp를 이용하는 것이 성능 측면에서 더 효율적이다. 하지만 작은 크기의 수많은 파일을 원격지에 전송할때는 실제 전송되는 파일의 전체 크기에 비해 많은 시간이 소요된다.

이는 파일 전송 시 전체 용량의 문제가 아니라 전송해야하는 파일의 수가 문제가 된다.
즉 파일을 원격지로 전송하기 위해서는 ftp 나 ssh 프로토콜을 통해 해당 프로그램에서 전송에 관련된 instance 를 열어 전송을 하는데, 파일이 하나 전송될때 마다 이런 절차가 내부적으로 반복되어진다. 많이 파일 수가 수천만개라면, 실제 파일 용량을 전송하는데, 소요되는 시간보다, 해당 instance를 open/close하는 데 소요되는 시간이 더 많이 걸리게 된다. 이런 비효율적인 시간을
최대한 축소하고자 할때 아래 방법을 사용하면 된다.

# tar cz – <전송하는 최상위 디렉토리>/ | ssh <원격지서버주소> tar xz -C <전송받을디렉토리 위치>

위와 같이 처리하면 전송하고자 대상의 최상위 디렉토리를 tar로 하나의 파일로 묶으면서, 동시에
원격지서버로 전송을한 후, 바로 묶인 파일을 해제하게 된다.

전송 대상 파일 수가 많으면 많을수록 기존의 ftp 나 scp에 비해 높은 성능을 나타낼것이다.

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.