oro*_*hen 6 rsync sparse-files qemu xfs
我有一个稀疏的原始 qemu 图像,我想将其传输到另一台服务器。qemu-img info
给我:
image: sparse.img
file format: raw
virtual size: 50G
disk size: 16G
Run Code Online (Sandbox Code Playgroud)
我把它转移到:
rsync -azhP --sparse origin:/path/to/img/sparse.img .
Run Code Online (Sandbox Code Playgroud)
现在,在目标服务器上我有:
image: sparse.img
file format: raw
virtual size: 50G
disk size: 40G
Run Code Online (Sandbox Code Playgroud)
但是,在virt-sparsify
复制的图像上再次运行后,我得到了这个:
image: sparse.img
file format: raw
virtual size: 50G
disk size: 16G
Run Code Online (Sandbox Code Playgroud)
两台服务器都在 XFS 文件系统上运行 CentOS 7.2。所以发生了什么事?
经过更多研究,我发现几篇文章表明 rsync 不能很好地处理稀疏文件,最好使用不同的工具(例如 tar)来传输稀疏文件。
你可以跟进tar
与传输rsync --inplace
,以确保文件wtihout错误转移,如解释在这里。
提出的另一个解决方案是在目标上创建一个相同大小的空稀疏文件,然后rsync --inplace
用于传输实际数据。
我没有写这个作为解决方案,因为它并没有真正解释为什么rsync --sparse
会这样。
我敢打赌这是由于源和目的地之间的 FS 差异造成的。
让我用一个例子来详细说明。稀疏文件是指磁盘上未分配空块(即全为 0)的文件。FS 上的块大小越小,就越有可能找到这样的块。因此,您的问题可能是由于目标上的块大小大于源上的块大小。
可能还有其他我不知道的XFS参数。
归档时间: |
|
查看次数: |
3499 次 |
最近记录: |