使用oc rsync拷贝文件因/tmp存储空间不足报错如何解决
oc rsync大文件传输/tmp空间不足的解决方案
可以修改缓存目录,无法完全禁用缓存
修改临时缓存目录的操作方法
oc命令以及其底层调用的rsync工具默认都会读取系统TMPDIR环境变量作为临时缓存目录,你只需要临时指定该变量为剩余空间足够的目录即可,无需修改全局配置:
- 首先创建一个拥有足够空间、且当前操作用户具备读写权限的目录,示例如下:
mkdir -p /data/oc_temp chmod 700 /data/oc_temp
- 执行oc rsync命令时前缀指定
TMPDIR参数即可:TMPDIR=/data/oc_temp oc rsync <Pod名称>:/Pod内待拷贝的文件路径 /本地服务器目标路径 -n <命名空间名称>
关于禁用缓存的说明
rsync的传输机制依赖临时空间存储校验块、传输分片,尤其是大文件的增量同步、断点续传能力都基于临时缓存实现,因此无法完全禁用缓存机制。
如果需要降低缓存占用,可以在oc rsync命令中追加rsync参数优化:
- 追加
--compress参数开启传输压缩,减少总传输数据量,同时降低临时缓存的占用 - 单文件超过10G时,建议先在Pod内用
split命令将大文件拆分为1-2G的分片,传输完成后再用cat命令合并,避免网络波动导致全量重传,也能进一步降低单次缓存的空间要求。
内容的提问来源于stack exchange,提问作者Cdr
相关产品推荐
相关产品推荐

