On 1/28/21 12:08 PM, longguang.yue wrote:
Michal, thanks.
i have another question which is related to kata-container.
when there is only one virtiofs-device , how does it do that in guest there are 4 times of virtiofs-mounts that have same src and different targets.
# in guest
[root@kvm kata-containers]# docker exec efda32ca6a93 mount | grep kataShared
kataShared on / type virtiofs (rw,relatime)
kataShared on /etc/resolv.conf type virtiofs (rw,relatime)
kataShared on /etc/hostname type virtiofs (rw,relatime)
kataShared on /etc/hosts type virtiofs (rw,relatime)
I'm not sure how this is related to libvirt, but I'll try to answer
anyway. I believe these mount points are set up by the initrd in the
guest. And this confusion you are seeing is not related to virtiofs at
all. It's non-intuitive way of how 'mount' shows bind mounts. One can
bind mount a file. For instance:
# touch /tmp/a /tmp/b
# mount --bind /tmp/a /tmp/b
# mount | grep /tmp/b
tmpfs on /tmp/b type tmpfs
(rw,nosuid,nodev,seclabel,nr_inodes=409600,inode64)
As you can see, mount doesn't show /tmp/a as the source of the mount
point but the FS associated. And I believe this is what's happening.
kataShared is mount as root, but then those three files from /etc are
bind mounted and thus mount shows kataShared as their source. I agree
it's misleading (and I remember running into this same problem when
developing private namespaces for QEMU VMs - but that's another story).
Michal