У меня есть сервер NFS с точкой монтирования, который установлен на нескольких серверах. Я могу получить доступ к файлам на всех из них.
На всех клиентах я наблюдаю следующее поведение.
$ ls
_index_ssl.html_old
$ ls -i _index_ssl.html
2966711 _index_ssl.html
$ ls -i _index_ssl.html_old
2966711 _index_ssl.html_old
Обратите внимание, что одна команда ls отображает только файл .html_old. Однако я знаю, что файл .html существует, потому что веб-сервер правильно обслуживает файл. И если я использую _index_ssl.html, я правильно вижу содержимое файла. Также обратите внимание, что у них одинаковый номер inode.
Старый файл создается веб-сервером. Это сайт Wordpress с общим кешем w3. И когда кеш очищается / опорожняется, он переименовывает все файлы в _old. Итак, старый файл был ранее .html, а затем переименован. В конце концов, когда кеш будет снова создан, там должен появиться файл .html.
Еще один очень странный момент заключается в том, что на самом сервере NFS есть только файл .html_old.
$ ls -i _index_ssl.html
ls: cannot access '_index_ssl.html': No such file or directory
Еще раз хочу отметить, что все клиенты NFS показывают одни и те же файлы. Таким образом, папка правильно смонтирована, и файл существует на каждом клиенте. Но на сервере файла нет. Кроме того, веб-сервер правильно получает файл _index_ssl.html. Он не использует файлы .html_old.
Файл экспорта на сервере:
/folder <subnet>(rw,sync,no_subtree_check,no_root_squash)
На клиентах вывод команды mount:
<server_ip>:/folder on /folder type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=<client_ip>,local_lock=none,addr=<server_ip>)
Я также только что протестировал запуск следующего на одном из веб-серверов и файла (и содержимое видно на сервере nfs и всех клиентах.
date > newfile
Я также пробовал переименовать файл, и изменение тоже появляется везде.
Я не использую псевдофайловую систему (или родительский экспорт), добавленную NFS4.