如何有效地将大型空磁盘映像移动到另一个系统

Jou*_*eek 5 linux fedora rsync

我目前正在尝试将一个相当空的、新鲜的 qcow2 图像从一个系统移动到另一个很远的系统。我基本上已经全新安装了 ubuntu LTS(实际大小 6GB,表观大小 200GB)。大多数文件传输方法(通过 ssh 进行 rsync)和 sftp with duck 尝试传输超过 200GB。

这是低效的,因为磁盘映像实际上并未使用 200GB(只是最终可能会使用)。我需要做什么才能传输虚拟机使用的内容?

传输的两端都运行 fedora 22,理想情况下我不想切换磁盘映像格式,但这也是一个选项。速度会很好 - 我不想为了处理时间而牺牲传输时间。

Del*_*tik 5

rsync实际上处理稀疏文件。当你说实际大小为6GB而表观大小为600GB时,你的意思是du -h IMAGE.qcow2显示“ 6G”但du -h --apparent-size IMAGE.qcow2显示“ 200G”?

如果是这样,您可以添加该-S标志rsync以使其稀疏地传输文件,这意味着您将发送超过 6GiB 而不是 200GiB 的数据。

听起来您的 qcow2 图像也未压缩。如果您有空闲的 CPU 资源,并且您的带宽低于 CPU 的速度gzip,您还可以将-z标志传递给rsync,它也会rsync压缩其文件传输。

rsync我有一个基于这个超级用户问题的即发即忘热键,它在大多数情况下都可以实现高效且保护性的文件传输:rsync -avzHXShPs