为lxc容器内的文件系统设置noatime标志

我的主机文件系统是用noatime标志挂载的ext4 。 但在一个lxc容器内,旗子是缺席的。

这是主机上的mount的输出: /dev/sdb1 on /home type ext4 (rw,noatime)

这里是容器中的mount的输出: /dev/sdb1 on / type ext4 (rw)

我现在有两个问题:

1.如果在容器中设置了noatime它会有所作为吗?

我的猜测是肯定的

2.什么是最好的方法来设置容器的noatime

理想情况下,我想configuration这样一种方式,它始终尊重主机的文件系统标志。

更新 /proc/mounts显示稍有不同的条目:

 rootfs / rootfs rw 0 0 /dev/sdb1 /home ext4 rw,noatime 0 0 

  1. 它的确有所作为。 在容器中的某一时间function如您所期望的那样,对性能产生负面影响。
  2. 根据这张票,你需要使用一个解决方法,使用挂钩,而不是让LXC为你安装

我的猜测是,当一个系统调用写入文件时,实现的内核代码将查看noatime标志的状态,并从提供信息给proc文件系统的相同内核例程中获取该信息。

但是,这远非一个权威的观点,如果重要的话,你应该validation它。

atime实际上是否更新? 检查主机和托pipe系统。 我怀疑时间是不同的logging,但是再次,这是一个猜测。

根据你需要多长时间才能得出正确的答案,你可能还需要去寻求一个权威的答案,就是应该是什么样的行为。 如果目前没有按照预期工作,未来可能会改变,请记住,LXC还不是最早的产品发布版本。 提出问题可以帮助稳定答案,但也许把它带到一个LXC开发人员名单?

我认为这是如何更新/ etc / mtime文件的一个错误。 在容器和主机上检查/ proc / mounts。

不是一个真正的答案,更多的是一个想法:除此之外,人们会相信,基本的FS工具(mount,df)使用/ etc / mtime,这是由mount和其他工具编写的简单文本文件,作为fs / mount信息的来源。 如果你使用chroot,你的/ etc / mtab可能会或者可能不会有反映系统真实情况的内容,具体取决于chrooted / etc / mtab的创build时间。 容器中的/ etc / mtab显然不能反映实际的configuration(如在/ proc / mounts中所见)。