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

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

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

这是效率低下因为磁盘映像实际上并没有使用 200GB(只是最终可能会使用)。我需要做什么才能传输仅有的VM 使用什么?

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

答案1

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

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

听起来你的 qcow2 镜像也没有被压缩。如果你有多余的 CPU 资源,并且你的带宽小于你的 CPU 的速度gzip,你也可以将-z标志传递给rsync,它也会rsync压缩其文件传输。

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

答案2

scp -C使用压缩,这对于如此稀疏的文件来说应该非常有效。一个优点是您可以在目标位置获得一个随时可用的文件。

相关内容