깊게 중첩된 디렉터리 구조 복사

깊게 중첩된 디렉터리 구조 복사

애플리케이션 마이그레이션의 일부로 디렉터리 구조를 새 호스트에 복사해야 합니다. 디렉토리 구조는 다음과 같습니다.

{10 - ff} / {00 - ff} / {00 - ff}(비포함) / 고유파일 이름

그래서 수백만 개의 파일이 있습니다. 트리의 세 번째 수준은 완전히 채워지지 않았으며 모든 세 번째 수준 디렉터리에 파일이 있는 것은 아닙니다.

du는 두 번째 수준 폴더의 경우에도 완료하는 데 오랜 시간이 걸립니다. 타르 사용 | NC는 10일 정도 걸립니다. 1일은 중단될 수 있지만 10일은 불가능합니다.

답변1

rsync이것을 위해 사용하십시오 .

  1. 새 서버를 사용하기 전에 rsync한 호스트에서 다른 호스트로 전체 디렉터리를 변경해야 합니다. 듣기로는 이 작업을 완료하는 데 시간이 오래 걸릴 것 같습니다.
  2. 완료되면 rsync다시 실행하여 첫 번째 rsync 중에 수정된 파일을 확인하세요.
  3. rsync컷오버를 수행하고 싶을 때까지 주기적으로 계속 실행하세요. 이는 전송해야 하는 데이터의 양을 낮게 유지하기 위한 것입니다.
  4. 가동을 중단하고 이전 서버에 대한 모든 쓰기를 중지합니다.
  5. 마지막으로 한 번 더 수행rsync
  6. 새 서버에서 서비스 시작

답변2

이 디렉터리 구조가 해당 장치/파티션에 있는 데이터의 대부분인 경우 디렉터리 구조가 문제의 원인이라면 무시하십시오.

대신, 장치를 마운트 해제(또는 읽기 전용으로 다시 마운트)하고 dd(1)netcat을 사용하여 파일 시스템 블록을 새 호스트의 동일한 크기의 파티션에 복사하십시오.

원하는 계층 구조 외부에 불필요한 데이터가 있는 경우 마이그레이션 후 삭제하세요.

호스트 간의 네트워크에 병목 현상이 발생할 수 있는 경우 드라이브를 가져와 새 호스트에 연결하는 것도 고려할 수 있습니다.

답변3

원샷 복사본의 경우 소스와 타겟을 동일한 시스템에 마운트할 수 있는 경우 다음을 수행할 수 있습니다.

find [source top dir] | cpio -dump [target mountpoint]

파일 속성을 복사하고 보존합니다. cpio 도구에도 압축 매개변수가 있어야 합니다.

관련 정보