我们有 NFS 存储,用于存储备份。我们从安装了 nfs 的 Linux 机器上操作它们。因此,例如精简配置的 Thin.vmdk 磁盘在 Linux 上显示为 Thin.vmdk 和 Thin-flat.vmdk。我们想用 tar 和 gzip 存档和压缩它们,但是当对这两个命令发出简单的 tar 命令时,精简文件就消失了,所有内容突然变成了 10G。
即使我尝试单独对大小为 1.6G 的 Thin-flat.vmdk 进行 tar 操作(使用“tar cf thin.tar thin-flat.vmdk”),也会生成 10G 的 tar 文件。当我尝试运行 tar cf /extfs/thin.tar 在 ext fs 上创建 tar 时,也发生了这种情况。
这是什么魔法?有人知道吗?
多谢。
答案1
如果你使用的是 Linux,那么你应该拥有 GNU tar,它支持使用-S
(或--sparse
)选项处理稀疏文件。尝试
tar cSf thin.tar thin-flat.vmdk
答案2
来自 GNUtar(1)
手册页:
-S, --sparse
handle sparse files efficiently
答案3
您应该告诉 tar 使用命令行开关有效地处理稀疏文件-S --sparse
。
-S, --sparse 有效处理稀疏文件
答案4
你不应该这样做。至少,如果你正在尝试围绕这一点开发一个流程,更具可扩展性的方法是使用不同的方法进行归档。
如果您想要导出虚拟机并保留其属性,则可以将其导出为 OVF 文件。或者,如果您有可用的虚拟机感知备份方法,这可能更有意义。