Cri File System Tools Link Online
# Find snapshot path SNAPSHOT_PATH=$(crictl inspect <container> | jq -r '.info.rootDir') cp -al $SNAPSHOT_PATH /tmp/clone-rootfs Now modify /tmp/clone-rootfs without affecting the original (COW at file level)
Also, the new feature (v1.25+) uses hard links to preserve container state before migration. Conclusion: The Link is the Lost Art of Container Storage The CRI file system tools — crictl , ctr , crio-status —give you x-ray vision into how Kubernetes manages storage. But without understanding the link (whether symbolic, hard, or the conceptual parent pointer between layers), you are blind to half of the system. cri file system tools link
Master these tools. Respect the link. Debug with confidence. Have a specific CRI filesystem issue related to links? Use the commands above to inspect your environment, and always test link operations in a non-production cluster first. Master these tools
Rebuild the image ensuring absolute symlinks or correct relative paths. Scenario 2: Disk space leak from dangling snapshot links Sometimes, the parent link remains even after the child snapshot is deleted, preventing garbage collection. Have a specific CRI filesystem issue related to links
ctr -n k8s.io snapshot rm <snapshot-key> ctr -n k8s.io snapshot gc # Garbage collects unlinked snapshots Check /var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/metadata.db (a BoltDB file) for orphaned links. Tools like boltdb-viewer can inspect it. Scenario 3: Migrating container rootfs to another disk using symlinks Suppose your /var/lib/containerd partition is full. You can move the storage directory and create a symbolic link.
# Get container PID crictl inspect <container> | grep pid nsenter -t <pid> -m bash Inside, check for broken symlinks find / -type l -xtype l 2>/dev/null
crio-status info | grep -A 10 "storage" crio-status containers --id <id> # Shows container rootfs path The keyword "link" in the context of CRI file system tools refers to two distinct but related concepts: filesystem links (ln) and layer links (parent pointers) . Symbolic Links vs. Hard Links in Container Storage | Feature | Symbolic Link (symlink) | Hard Link | |---------|------------------------|------------| | Cross-filesystem | Yes | No | | Points to inode or path | Path | Inode | | Break if target deleted | Yes (dangling link) | No (file persists) | | Used in CRI for | Config file references, log paths | Deduplication of identical layers |