Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – rsync挂在一个大文件上大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

每天晚上我都会使用rsync将几个虚拟磁盘从一台 Linux Debian计算机复制到另一台Linux Debian. 大多数文件都是带有“漏洞”的原始图像:某些部分从未写入,因此保留在磁盘上未分配. rsync挂在一个文件上,总是一样的.传输50 Gb后,每次都会发生挂起.我不确定这是否总是在完全相同的点,但是ls -sh显示50 Gb. 这是一个@R_43_11262@51 Gb的800 Gb文件(所以649
每天晚上我都会使用rsync将几个虚拟磁盘从一台 Linux Debian计算机复制到另一台Linux Debian.
大多数文件都是带有“漏洞”的原始图像:某些部分从未写入,因此保留在磁盘上未分配.

rsync挂在一个文件上,总是一样的.传输50 Gb后,每次都会发生挂起.我不确定这是否总是在完全相同的点,但是ls -sh显示50 Gb.
这是一个@R_43_11262@51 Gb的800 Gb文件(所以649 Gb是未分配的).其他一些虚拟磁盘有类似的数字,rsync在它们上运行良好.

如果我使用rsync在本地更新文件,没有任何网络参与(使用–no-whole-file,这是一个要求,请参阅后面的内容),我的行为完全相同.

一旦rsync停止运行,它就会使用一个cpu核心达到100%并且在接收端使用零磁盘活动(这是一个拉取请求,因此rsync从这一侧运行)并且在发送端使用零cpu和零磁盘.
我让它在几个小时内运行.
Ctrl c立即停止rsync.
当运行本地复制时,一旦停止,我还有一个100%的cpu核心和零磁盘活动.

我找到的唯一例外是当我将此文件rsync到新位置时(即目标文件不存在).所以我怀疑这个问题与旧数据和新数据之间的比较有关.

我使用–inplace来限制对目标磁盘的写入,因为每次备份后都会使用快照.所以这个选项是一个要求,也是rsync,除非我发现一个工具只能更新这些文件的更改部分.

解决方法

众所周知,rsync在大型文件上存在这种问题,因为内部哈希缓冲区的算法效率低下.

@R_696_8554@具有较大值的–block-size选项.但是当前版本不允许使用超过128 kB.一些网页告诉使用–block-size = 10485760 –protocol = 29但在我的情况下它被rsync拒绝.

>使用29或更早版本>或@L_194_25@mAX_BLOCK_SIZE常量后重新编译

大佬总结

以上是大佬教程为你收集整理的linux – rsync挂在一个大文件上全部内容,希望文章能够帮你解决linux – rsync挂在一个大文件上所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。