NFS 目录的 atime 未更新

NFS 目录的 atime 未更新

我一直在尝试stat从 NFS 服务器挂载的文件共享目录 [VM Debian 8.11],在我touch编辑目录中的文件并读取目录内容后lsatime,mtime and ctime进行了修改,所以一切顺利在这里,然后我对从物理机 [Debian 7.9] 挂载的文件共享执行了相同的操作,尽管我已经对目录进行了编辑和编辑,atime但目录的 目录保持不变。这两个文件共享都是由 挂载的,我想知道为什么会发生这种情况。当我刚刚在物理机[NFS SERVER]上运行时,我可以看到它的大部分本地文件都挂载了touchlsrealtimemountnoatime

tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=26352140k,mode=755)
/dev/sda2 on /lib/live/mount/medium type ext4 (rw,noatime,user_xattr,data=ordered)
/dev/loop0 on /lib/live/mount/rootfs/filesystem.squashfs type squashfs (ro,noatime)
tmpfs on /lib/live/mount/overlay type tmpfs (rw,relatime)
tmpfs on /lib/live/mount/overlay type tmpfs (rw,noatime,mode=755)
aufs on / type aufs (rw,noatime,si=b3e6ae3b999120a9,noxino)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=52704260k)
/dev/sda2 on /var/lib/dsnet-config type ext4 (rw,noatime,user_xattr,data=ordered)
/dev/sda2 on /var/log type ext4 (rw,noatime,user_xattr,data=ordered)
/dev/sda2 on /var/spool/rsyslog type ext4 (rw,noatime,user_xattr,data=ordered)
/dev/sda2 on /var/lib/dsnet-core type ext4 (rw,noatime,user_xattr,data=ordered)
/dev/sda2 on /var/lib/dsnet-md type ext4 (rw,noatime,user_xattr,data=ordered)
/dev/sda2 on /etc/corosync type ext4 (rw,noatime,user_xattr,data=ordered)
/dev/sda2 on /var/lib/heartbeat type ext4 (rw,noatime,user_xattr,data=ordered)

不确定上述安装是否必须解决我的问题,但这是我在它们之间看到的唯一奇怪之处。

如果我发出 NFS 请求,还有一个问题要问,例如MKDIR()此调用是否会从客户端获取时间信息,还是从 NFS 服务器获取时间信息

答案1

现代 Linux 系统不会记录目录访问时间,除非使用该选项挂载文件系统diratime。这是因为更新访问时间会对性能产生重大影响,并且目录访问时间与常规文件的访问时间不同,不是很有用,因为它们更新非常频繁(只要有人ls在目录中运行,更新定位数据库时,... )。

如果您希望记录目录访问时间,则需要使用diratime服务器上的选项挂载文件系统。 (原则上,您还应该传递diratime客户端,但我认为 NFS 驱动程序与大多数其他文件系统不同,会忽略此选项并让服务器有时隐式更新目录。)

相关内容