클러스터에서 스토리지 서버로 매우 큰 데이터 세트 전송

클러스터에서 스토리지 서버로 매우 큰 데이터 세트 전송

우리는 매우 큰 데이터 세트(페타바이트 단위로 측정)를 HPC 클러스터에서 스토리지 서버로 이동해야 했습니다. 우리는 장치 간 대용량 통신 링크를 보유하고 있습니다. 그러나 병목 현상은 개별 파일을 병렬화할 수 있는 빠른 전송 도구인 것 같습니다(각 개별 파일의 크기가 테라바이트이므로).

이런 점에서 저는 관리자 권한이 필요하지 않고 scp나 rsync보다 훨씬 빠른 도구를 찾고 있습니다. 관리자 권한 없이 로컬에 설치할 수 있는 도구가 있다면 그것도 유용할 것입니다. 나는이 링크를 발견했습니다 (두 컴퓨터 간에 대량의 데이터를 전송하는 가장 빠른 방법은 무엇입니까?), netcat 방식을 언급했지만 작동하게 만들 수는 없었습니다.

참고로 우리는 비교적 적은 수의 매우 큰 파일(및 많은 작은 파일)을 복사하려고 합니다.

시간을 내어 도움을 주셔서 감사합니다.

답변1

rsync나는 +를 사용했다 parallel:

  • 모든 대용량 파일 식별
  • rsync30~100개의 파일을 병렬로 실행

다음과 같습니다(테스트되지 않음).

cd src-dir
find . -type f -size +10000 |
  parallel -j100 -X rsync -zR -Ha --inplace ./{} fooserver:/dest-dir/

끊어진 연결을 처리하려면 --appendfor rsync--retriesforparallel을 사용하십시오.

parallel --retries 987 -j100 -X rsync -zR -Ha --append ./{} fooserver:/dest-dir/

파일 소스가 변경되지 않았다고 가정합니다.

관련 정보