Linux 서버간 대용량 데이터 빠르게 옮기기
일반적으로 서버간 네트워크를 이용하여 파일을 옮길때에 scp
, ftp
등의 명령어를 사용하여 옮긴다. 하지만, 파일의 수가 매우 많은 경우에는 각각의 파일에 대해서 데이터 검증을 실행하기 때문에 그만큼 오버헤드가 많이생기고, 속도 저하로 이어진다. 때문에 이러한 경우 tar
와 같은 프로그램을 이용해 데이터를 압축하여 전송하는데, 이러한 경우 서버의 스토리지를 두배로 사용하게 되고 각각 압축, 전송에 걸리는 시간이 소모되어 비효율적이다.
전송법
ssh와 tar 명령어를 혼용하여 서버간에 데이터를 빠르고 효율적으로 옮기는 방법이 있어 소개한다.
#bash
tar -cp [복사할 디렉토리 상대경로] | ssh [목적지 주소] tar xvp -C [목적지 디렉토리 절대경로]
벤치마크
linuxaria의 여러가지 방법을 이용한 벤치마크 결과에 따르면, tar + ssh의 조합이 비교적 안정적이면서 속도가 준수한 것을 볼 수가 있다.
자료 출처 : https://linuxaria.com/article/tar-rsync-netcat-scp
- 벤치마크 결과 : netcat > tar+ssh > rsync+ssh > scp
반응형