Я наблюдаю очень большую задержку в обнаружении EFS, что файл был воссоздан, то есть удален, а затем снова создан.
В этом простом тестовом примере у меня есть единственный файл, который удаляется и воссоздается примерно через 5 секунд. У меня есть два экземпляра EC2, подключенных к одной и той же EFS:
EC2-1: отвечает за чтение файла
EC2-2: отвечает за удаление и создание файла.
Проблема, которую я вижу, заключается в том, что когда EC2-2 удаляет файл, EC2-1 правильно обновляется, чтобы сказать, что его больше нет. Затем EC2-2 воссоздает файл примерно через 5 секунд. EC2-1 не обнаруживает, что файл вернулся в течение еще 25–30 секунд.
Теперь, если я запускаю какой-то запрос к файловой системе на EC2-1 сразу после воссоздания (как и команда LS), он ДЕЙСТВУЕТ, а затем немедленно обновляется, чтобы сказать, что файл создан.
Для ясности, я визуально вижу, как файл создается на EC2-1 FS сразу после создания, просто путем запуска LS. Его чтение программно терпит неудачу. В моем тестовом примере у меня есть сценарий Node.js, который буквально каждую секунду вызывает readFileSync (). Я также протестировал то же самое на Python, чтобы сделать вывод, что это проблема EFS.
Если я запустил тот же сценарий на EC2-2, я увижу ожидаемые результаты, то есть файл отсутствует на секунду, а затем становится доступен сразу после воссоздания. Итак, чтение этого экземпляра, выполняющего удаление и создание, работает, как ожидалось.
Как будто EFS вообще не обнаруживает удаление / воссоздание файла.
ОС - это Ubuntu Server 18.04 на обеих виртуальных машинах EC2. Протестировано на новых EFS типа "General Purpose" и "High I / O".
Спасибо @kofemann, который указал мне на noac
вариант Я смог узнать о кеше атрибутов файловой системы и найти сообщение ниже, в котором хорошо резюмируются параметры.