O atime de um diretório NFS não é atualizado

1

Eu tenho tentado stat um diretório no meu compartilhamento de arquivos que foi montado a partir do servidor NFS [que é VM Debian 8.11], depois de ter touch ed um arquivo no diretório e ler o conteúdo do diretório ls , o atime,mtime and ctime foi modificado, Então as coisas correram bem aqui, E então eu fiz o mesmo no meu compartilhamento de arquivos montado a partir da máquina física [que é Debian 7.9], o atime do diretório continua o mesmo Eu tenho touch ed e ls ed o diretório. ambos os arquivos compartilhados foram montados por realtime , eu me pergunto por que isso acontece. quando acabei de executar mount na máquina física [NFS SERVER], pude ver que a maioria de seus arquivos locais são montados com noatime

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)

Não tenho certeza se as montagens acima têm que lidar com o meu problema, mas estas são as únicas coisas estranhas que tenho visto entre elas.

E mais uma pergunta a fazer se eu der uma requisição NFS como MKDIR() , esta chamada irá pegar as informações de tempo do cliente ou ele pega no NFS SERVER

    
por Explorer_N 16.09.2016 / 14:06

1 resposta

1

Os sistemas Linux modernos não registram os tempos de acesso ao diretório, a menos que o sistema de arquivos seja montado com a opção diratime . Isso ocorre porque a atualização do tempo de acesso tem um impacto significativo no desempenho e os tempos de acesso ao diretório, diferentemente dos tempos de acesso de arquivos regulares, não são muito úteis porque são atualizados com muita frequência (assim que alguém executa ls no diretório ao atualizar o arquivo banco de dados,…).

Se quiser que os tempos de acesso ao diretório sejam registrados, você precisa montar o sistema de arquivos com a opção diratime no servidor. (Em princípio, você também deve passar diratime no cliente, mas acho que o driver NFS, diferente da maioria dos outros sistemas de arquivos, ignora essa opção e deixa o servidor atualizar o diretório atimes implicitamente.)

    
por 16.09.2016 / 21:31