背景:私は、サイズが200ギガバイトであるスパースQCOW2 VMイメージをコピーしますが、割り当てられたブロックの16ギガバイトを持っています。このスパースファイルを同じサーバー内にコピーするためにさまざまな方法を試しましたが、いくつか予備的な結果が得られました。環境は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)
さまざまなブロックサイズ
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 2015
タールはあまりにも試すには良いものです
—
オリヴィエ・デュラック
@OlivierDulac私はtarを試しましたが、これは非常に貧弱なパフォーマーでしたので、含めませんでした。私が持っている必要があります。上記はローカルコピーです。同じサブネットでコピーして、10Gbpsネットワークのパフォーマンスデータをコピーするネットワークを追加します。それがわかったら、全体的なパフォーマンスが最も優れている実行可能な結論を引き出すのに十分なデータが得られると思います。
—
Steve Amerige、2015
rsyncは、このスタイルのコピーを行うための--sparseもサポートしています。あなたはそれを試したいかもしれません。また、ローカルおよびネットワーク上のコピーの両方で測定可能であるという追加の利点があります。
—
Travis Campbell
@TravisCampbell rsyncのデータを追加しました。これは、私が実行したすべてのテストの中で最悪の実行者でした。
—
Steve Amerige 2015年