kvm-virtualization – 什么是复制稀疏文件的最快方法?什么方法导致最小的文件?

背景:我正在复制一个200GB大小的稀疏qcow2 VM映像,但是它有16GB的分配块.我已经尝试了各种方法在同一服务器中复制这个稀疏文件,并有一些初步结果.环境是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)

通过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)

改变Blocksize

我担心dd复制期间的’膨胀'(文件大小从原来增加),所以我改变了块大小.我使用’time’来获得总时间和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,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

问题:您能否确认我已经确定了复制稀疏文件以获得最佳整体性能的最佳方法?如果您对我正在使用的方法可能有任何疑虑,欢迎任何关于如何做得更好的建议.

从上面的基准测试中看,在我们的目标硬件上使用dd,块大小为64K,考虑到复制时间和膨胀,我们可以得到最好的整体结果:
dd if=srcFile of=dstFile iflag=direct oflag=direct bs=64K conv=sparse

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Centos下搭建性能监控Spotlight
CentOS 6.3下Strongswan搭建IPSec VPN
在CentOS6.5上安装Skype与QQ
阿里云基于centos6.5主机VPN配置
CentOS 6.3下配置multipah
CentOS安装、配置APR和tomcat-native
centos6.5下postgres-XC集群安装与配置
CentOS 6使用openssl搭建根CA
CentOS6.6中安装VNC server
CentOS下更新Python最新版本
Centos安装pycurl
CentOS 7 安装PostGIS
CentOS 7.1PXE网络自动化安装
CentOS下ffmpeg与第三方编码编译安装
CentOS 6.4安装配置squid
CentOS6.5 安装配置drbd
CentOS6.4 安装jenkins
centos安装增强工具
CentOS6.4安装配置redis
CentOS 6上部署OpenVPN Server