애플리케이션 마이그레이션의 일부로 디렉터리 구조를 새 호스트에 복사해야 합니다. 디렉토리 구조는 다음과 같습니다.
{10 - ff} / {00 - ff} / {00 - ff}(비포함) / 고유파일 이름
그래서 수백만 개의 파일이 있습니다. 트리의 세 번째 수준은 완전히 채워지지 않았으며 모든 세 번째 수준 디렉터리에 파일이 있는 것은 아닙니다.
du는 두 번째 수준 폴더의 경우에도 완료하는 데 오랜 시간이 걸립니다. 타르 사용 | NC는 10일 정도 걸립니다. 1일은 중단될 수 있지만 10일은 불가능합니다.
답변1
rsync
이것을 위해 사용하십시오 .
- 새 서버를 사용하기 전에
rsync
한 호스트에서 다른 호스트로 전체 디렉터리를 변경해야 합니다. 듣기로는 이 작업을 완료하는 데 시간이 오래 걸릴 것 같습니다. - 완료되면
rsync
다시 실행하여 첫 번째 rsync 중에 수정된 파일을 확인하세요. rsync
컷오버를 수행하고 싶을 때까지 주기적으로 계속 실행하세요. 이는 전송해야 하는 데이터의 양을 낮게 유지하기 위한 것입니다.- 가동을 중단하고 이전 서버에 대한 모든 쓰기를 중지합니다.
- 마지막으로 한 번 더 수행
rsync
- 새 서버에서 서비스 시작
답변2
이 디렉터리 구조가 해당 장치/파티션에 있는 데이터의 대부분인 경우 디렉터리 구조가 문제의 원인이라면 무시하십시오.
대신, 장치를 마운트 해제(또는 읽기 전용으로 다시 마운트)하고 dd(1)
netcat을 사용하여 파일 시스템 블록을 새 호스트의 동일한 크기의 파티션에 복사하십시오.
원하는 계층 구조 외부에 불필요한 데이터가 있는 경우 마이그레이션 후 삭제하세요.
호스트 간의 네트워크에 병목 현상이 발생할 수 있는 경우 드라이브를 가져와 새 호스트에 연결하는 것도 고려할 수 있습니다.
답변3
원샷 복사본의 경우 소스와 타겟을 동일한 시스템에 마운트할 수 있는 경우 다음을 수행할 수 있습니다.
find [source top dir] | cpio -dump [target mountpoint]
파일 속성을 복사하고 보존합니다. cpio 도구에도 압축 매개변수가 있어야 합니다.