报错分析
no space left on device,磁盘空间不足导致的,故只需要排查系统资源使用问题就可以了
处理过程
第一 查看磁盘空间使用情况,如图所示明显Use是够用的,如果不够用可以考虑优化(比较简单的就是直接重启)
sudo df -h

第二,inodes满了。 inodes是文件系统的结构,记录了每个文件的元数据。如果 inode 被用完,系统将无法创建新文件。使用以下命令检查 inode 使用情况:
sudo df -i

如图所示IUse是够用的,如果不够用可以先检索文件排序,命令如下,逐层进入Inode占用最高的目录,继续执行下述命令,逐步定位占用过高空间的文件或目录,最后进行相应清理。
for i in/*; do echo $i; find $i | wc -l; done
如果不允许清理磁盘中的文件,或者清理完可清理的文件后Inode使用率仍然较高,则您需要通过备份数据、重新格式化磁盘增加Inode数、拷回数据等步骤,完成数据的保留并增加文件系统Inode数量。
不管增加还是删除,先备份谢谢
第三,reflink满了
排查方式1.先看正常cp always模式
cp -rf --relink=always 【源文件路径】 【复制的文件路径路径】
2.切换使用never 模式
cp -rf --relink=never【源文件路径】 【复制的文件路径路径】
正常情况下前俩步已经成功了,极少数的情况第三步reflink问题
请注意这里的只是把问题现象解决了,本质上后续还是建议继续优化的
参考文档:
深度剖析 Linux cp 的秘密-腾讯云开发者社区-腾讯云
Linux实例磁盘空间满和Inode满的问题_轻量应用服务器(SAS)-阿里云帮助中心
再次说明:注意备份!注意备份!注意备份!