我有两个大文件。
a.qcow2是16 is。b.qcow2是17 is。前16 95的b.qcow2与a.qcow2的95%相同。
哪些Linux命令将允许我生成两个文件之间的增量?(其大小应小于2GB )。
哪些linux命令允许我将增量应用于a.qcow2以产生与b.qcow2相同的输出?
增量格式是否有安全措施,如源和目标大小和散列?
发布于 2020-10-25 10:18:48
如果您要有两个类似的VM,我建议您使用qemu选项: backing_file
qemu-img create -f qcow2 \
-o backing_file=/path/to/base/image.qcow2 \
/path/to/new_guest/image.qcow2 这允许您拥有一个主映像,然后只有一个原始文件和seccond之间的差异文件,为您节省了大量的GB。此外,如果您确实需要了解这些文件之间的二进制差异,我建议您签出以下命令:
发布于 2020-10-26 09:33:48
我假设您希望传输两个系统之间的差异,这就是为什么不能将QCOW图像重新基于共享根的原因。
rsync工具将允许您生成二进制差异。下面是一个使用(相当小的)文件的工作示例
ls -l ?.qcow2
-rwxrwx--- 1 root root 76993536 Jan 2 2020 a.qcow2
-rwxrwx--- 1 root root 77337600 Oct 25 19:00 b.qcow2根据您的问题,我们需要了解从b.qcow2到a.qcow2的差异。注意,只要rsync可以同时到达源和目的地,它们就不需要在同一台服务器上。
rsync -av --only-write-batch b_to_a.rsyncdiff b.qcow2 a.qcow2这确定了差异,并将其写入b_to_a.rsyncdiff,并在此过程中创建了一个助手helper脚本。
ls -l b_to_a*
-rw------- 1 root root 35617731 Oct 26 09:26 b_to_a.rsyncdiff
-rwx------ 1 root root 54 Oct 26 09:26 b_to_a.rsyncdiff.sh
cat b_to_a.rsyncdiff.sh
rsync -av --read-batch b_to_a.rsyncdiff ${1:-a.qcow2}要应用更改,只需要原始源a.qcow2和diff
rsync -av --read-batch b_to_a.rsyncdiff a.qcow2
receiving incremental file list
b.qcow2
sent 61,509 bytes received 35,621,188 bytes 71,365,394.00 bytes/sec
total size is 77,337,600 speedup is 2.17结果
ls -l ?.qcow2
-rwxrwx--- 1 root root 77337600 Oct 25 19:00 a.qcow2
-rwxrwx--- 1 root root 77337600 Oct 25 19:00 b.qcow2发布于 2020-10-25 15:48:10
就我个人而言,我是迟滞的超级粉丝,它只在Gentoo用户中广为人知。
它速度非常快,而且经常以很大的优势超过xdelta。
https://unix.stackexchange.com/questions/616282
复制相似问题