배경 : 200GB 크기이지만 16GB의 할당 된 블록이있는 희소 qcow2 VM 이미지를 복사하고 있습니다. 이 스파 스 파일을 동일한 서버 내에서 복사하기 위해 다양한 방법을 시도했으며 예비 결과가 있습니다. 환경은 RHEL 6.6 또는 CentOS 6.6 x64입니다.
ls -lhs srcFile
16G -rw-r--r-- 1 qemu qemu 201G Feb 4 11:50 srcFile
cp를 통해-최고 속도
cp --sparse=always srcFile dstFile
Performance Notes:
Copied 200GB max/16GB actual VM as 200GB max/26GB actual, bloat: 10GB
Copy time: 1:02 (mm:ss)
Via dd-전체적으로 최고의 공연자
dd if=srcFile of=dstFile iflag=direct oflag=direct bs=4M conv=sparse
Performance Notes:
Copied 200GB max/16GB actual VM as 200GB max/21GB actual, bloat: 5GB
Copy time: 2:02 (mm:ss)
cpio를 통해
mkdir tmp$$
echo srcFile | cpio -p --sparse tmp$$; mv tmp$$/srcFile dstFile
rmdir tmp$$
Performance Notes:
Copied 200GB max/16GB actual VM as 200GB max/26GB actual, bloat: 10GB
Copy time: 9:26 (mm:ss)
rsync를 통해
rsync --ignore-existing -aS srcFile dstFile
Performance Notes:
Copied 200GB max/16GB actual VM as 200GB max/26GB actual, bloat: 10GB
Copy time: 24:49 (mm:ss)
virt-sparsify를 통해-최고의 크기
virt-sparsify srcFile dstFile
Copied 200GB max/16GB actual VM as 200GB max/16GB actual, bloat: 0
Copy time: 17:37 (mm:ss)
다양한 블록 크기
dd 복사 중 '부풀림'(파일 크기가 원본보다 증가)에 대해 걱정했기 때문에 블록 크기를 변경했습니다. '시간'을 사용하여 총 시간과 CPU %도 얻었습니다. 이 경우 원본 파일은 7.3GB 스파 스 200GB 파일입니다.
4K: 5:54.64, 56%, 7.3GB
8K: 3:43.25, 58%, 7.3GB
16K: 2:23.20, 59%, 7.3GB
32K: 1:49.25, 62%, 7.3GB
64K: 1:33.62, 64%, 7.3GB
128K: 1:40.83, 55%, 7.4GB
256K: 1:22.73, 64%, 7.5GB
512K: 1:44.84, 74%, 7.6GB
1M: 1:16.59, 70%, 7.9GB
2M: 1:21.58, 66%, 8.4GB
4M: 1:17.52, 69%, 9.5GB
8M: 1:10.92, 76%, 12GB
16M: 1:17.09, 78%, 16GB
32M: 2:54.10, 90%, 22GB
질문 : 최고의 성능을 얻기 위해 스파 스 파일을 복사하는 가장 좋은 방법을 찾았는지 확인할 수 있습니까? 더 나은 방법에 대한 제안은 내가 사용하는 방법에 대한 우려와 마찬가지로 환영합니다.
당신의 훌륭한 노력을 감안할 때 내가 시도한 유일한 것은 --sparse 옵션과의 rsync입니다. dd의 다른 블록 크기가 속도 나 팽창을 개선 할 수도 있습니다.
—
mpez0
타르도 시도해
—
볼만한
@OlivierDulac 나는 tar를 시도했지만, 나는 그것을 포함하지 않은 공연자가 너무 나빴습니다. 내가해야합니다. 위는 로컬 사본입니다. 10Gbps 네트워크에 대한 네트워크 복사 성능 데이터를 추가하여 동일한 서브넷에 복사합니다. 일단 그것을 얻은 후에는 전체적으로 최고의 성과를내는 실행 가능한 결론을 도출하기에 충분한 데이터가 있다고 생각합니다.
—
Steve Amerige
rsync는 이러한 스타일의 복사를 수행하기 위해 --sparse도 지원합니다. 시도해 볼 수 있습니다. 또한 로컬 및 네트워크를 통한 복사 모두에서 측정 할 수 있다는 추가 이점이 있습니다.
—
트래비스 캠벨
@TravisCampbell rsync에 대한 데이터를 추가했습니다. 내가 실행 한 모든 테스트 중 최악의 성능이었습니다.
—
Steve Amerige 12