显示并跟踪挂载命名空间树对等组 ID

显示并跟踪挂载命名空间树对等组 ID

Linux 有挂载命名空间通过“共享子树”功能用于进程范围的安装树。

当您检查/proc/$pid/mountinfo父/子安装命名空间中的进程时,您可以看到每个进程的对等组关系共享子树.txt。例如,外部名称空间的挂载/child可能具有 tag shared:538。在由创建的子挂载命名空间中unshare -M,子进程可能会看到master:538相同的挂载。

但有时这些 ID 不匹配。从父进程的角度来看,子进程对等组 ID 似乎不存在。例如,在我containerd的角度中,nsenter -t 1 --all我看到/proc/1/mountinfo容器安装的条目具有shared:538。但从nsenter -t $in_container_pid --all cat /proc/self/mountinfo我的角度来看master:532

我认为这是由于设置容器环境然后exec在容器内设置容器来宾进程的中间过程所致。

有没有办法列出这些挂载组对等 ID 并将它们映射到进程树和/或挂载命名空间 inode?据推测,这个对等组层次结构是在内核中的某个地方维护的,但我找不到它由任何实用程序(如lsnssysfs 或 sysfs)公开的。

相关内容