회사에서 엄청난(?) 데이터를 마이그레이션 할 일이 생겼습니다. 여기서 엄청나다는 표현의 기준이 애매하기는 하지만... 제 입장에서는 정말 엄청난 양의 데이터입니다. 데이터의 크기는 그렇게 크지 않은데, 4KB도 안 되는 크기의 파일과 폴더의 개수가 엄청나게 많기 때문에 일반적인 윈도우 탐색기나 copy 명령어로는 절대로 이 작업을 할 수 없습니다. 속도가 답이 안 나오기 때문입니다.

현재 작업하고 있는 데이터는 대략 총 2억개의(폴더 포함) 파일 7.1TB 정도 되는 크기입니다. 위 스샷에는 현재 1억 3744만개 파일과 725만개 폴더가 복사되고 있는 상황이네요.

아마 경험적으로 아시는 분들 많으리라 생각합니다만, 파일의 크기가 작으면서 개수가 엄청 많으면 복사 속도는 상당히 느려집니다. 위 스샷에 보면 속도가 11MB/s 정도 나오고 있는데요, Teracopy나 Fastcopy 같은 툴로 해보니 초당 1MB도 안 나왔습니다. 물론 이 서버 환경이 특수한 상황이긴 합니다만(네트웍 기반 iSCSI 디스크), 그래도 초당 1MB는 정말 너무 심하죠. 초당 1MB 속도로 7.1TB 옮기려면 약 3개월 정도가 걸리겠네요.

RichCopy는 이러한 환경에 사용할 최상의 도구입니다.

1. 파일 크기가 엄청나게 작고
2. 파일 개수가 엄청나게 많고
3. 폴더 개수도 엄청나게 많은 경우

RichCopy가 왜 좋은가 하면 바로 Multi Thread 방식이기 때문입니다. 즉 파일 입출력이 순차적으로 1개씩 일어나는 것이 아니라 동시에 Thread 방식으로 일어나기 때문에 위와같은 특수한 상황에서는 엄청난 속도 향상을 맛볼 수 있습니다.

RichCopy 다운로드
http://download.microsoft.com/download/f/d/0/fd05def7-68a1-4f71-8546-25c359cc0842/HoffmanUtilitySpotlight2009_04.exe

제가 여러가지 옵션을 사용해보지 않아서 자세한 사용방법은 생략하겠습니다. 다른거 다 필요없고 Thread 부분에만 신경써 주시면 되겠습니다. 저는 넉넉하게 Thread를 각각 20씩 적어서 돌렸습니다. 기본값 1,3,1로 하면 속도 향상은 거의 없을 것입니다. 이 프로그램의 최대 장점인 Thread를 잘 활용해 보세요. 무조건 숫자를 크게 적어봐야 의미가 없을 것 같고 숫자를 몇번 바꿔가면서 테스트를 해보시면 각자 환경에 맞는 최적의 값이 나오지 않을까 싶습니다.


그리고 원본이 손상되어 접근할 수 없는 경우 Retry 10번 해보고 안 되면 그냥 Skip 하기 때문에, 중간에 복사하다 멈출 일이 거의 없습니다. 게다가 Pause 버튼도 있어서 중간에 잠깐 멈춰놨다가 다시 작업을 진행할 수도 있구요.

아무튼 다수의 대용량 파일을 전송해야 하는 경우(SMB 전송도 가능) RichCopy를 활용해보세요. 저는 매우 만족하며 사용하고 있습니다.
secret