You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K3s导入大型镜像时因服务器崩溃导致提取快照准备失败的问题求助

K3s导入大型镜像时因服务器崩溃导致提取快照准备失败的问题求助

问题描述

我在使用k3s ctr images import my_image.tar导入大型tar镜像时,服务器突然崩溃了。重启服务器后尝试重新导入,却遇到了如下错误:

unpacking docker.io/library/my_image (sha256:b69c6d6ebdb9517f7a93deede3ccf6380aebbc6a8fa68da14ab06bc1be131423)...ctr: failed to prepare extraction snapshot "extract-774071004-6PJT sha256:6e98c2a3f1228e003bc43b054a526b4bf36783f2ff04b8b6ce12b0beb64055d": failed to stat parent: stat /var/lib/rancher/k3s/agent/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/327/fs: no such file or directory: unknown

检查发现/var/lib/rancher/k3s/agent/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/327目录确实不存在。运行k3s ctr snapshots tree查看快照树,显示如下结构:

...
\_ sha256:594fd317ce6c40c5675454df43ad62b3a50115eb90ab7c9a15f1a4cb6f1115ed
 \_ sha256:89d2814f8e8a9fb32c126c93e86bc86984ef3483a65d5a53141d56f80bcc12fe
  \_ extract-662974335-9mi3 sha256:6e98c2a3f1228e003bc43b054a526b4bf36783f2ff04b8b6ce12b0beb64055d

我尝试删除最后两个快照:

k3s ctr snapshots delete sha256:6e98c2a3f1228e003bc43b054a526b4bf36783f2ff04b8b6ce12b0beb64055d
k3s ctr snapshots delete sha256:89d2814f8e8a9fb32c126c93e86bc86984ef3483a65d5a53141d56f80bcc12fe

但问题依然存在,有没有大佬能帮忙解决这个问题?

可能的解决方案

根据containerd快照损坏的常见处理逻辑,你可以尝试以下步骤:

  • 清理残留的损坏快照元数据:
    先停止k3s服务,避免操作时出现资源占用冲突:

    systemctl stop k3s
    

    进入snapshots存储目录:

    cd /var/lib/rancher/k3s/agent/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots
    

    找到和报错中sha256:6e98c2a3f1228e003bc43b054a526b4bf36783f2ff04b8b6ce12b0beb64055d相关的快照目录(如果还有残留),以及对应的metadata.json文件,直接删除这些内容。注意别误删其他正常快照的文件。

  • 重置containerd快照存储:
    如果手动清理无效,可以尝试彻底重置快照存储。操作前记得备份重要的镜像或容器数据,然后执行:

    systemctl stop k3s
    rm -rf /var/lib/rancher/k3s/agent/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots
    systemctl start k3s
    

    重启服务后重新导入镜像,应该就能正常进行了。

  • 检查overlayfs支持状态:
    有时候overlayfs的挂载异常也会引发快照问题,先确认系统是否支持overlayfs:

    grep overlay /proc/filesystems
    

    如果输出显示nodev overlay说明系统支持。另外可以查看containerd配置文件/var/lib/rancher/k3s/agent/etc/containerd/config.toml中,overlayfs相关的配置项是否正常。

注意事项

  • 操作前务必备份/var/lib/rancher/k3s/agent/containerd目录,避免误操作导致重要数据丢失。
  • 重置快照存储后,之前已导入的镜像需要重新导入,确保你有镜像tar包的备份。

备注:内容来源于stack exchange,提问作者Viktor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 13:58:18