Позволяет ли NFS отсоединять / удалять открытые файлы, как я могу это делать с локальными файловыми системами?
Причина, по которой я спрашиваю, состоит в том, что я разрабатываю что-то, что работает на нескольких серверах и может получить доступ к NFS в качестве серверной части. Это несколько упрощает ситуацию, если я могу отсоединить открытый файл.
Это хорошая особенность файловых систем linux (unix?), Позволяющая отсоединить открытый файл. Это просто удаляет запись каталога. Файл все еще доступен для процесса, который держит его открытым, пока он открыт. После закрытия инод уничтожается.
Применима ли та же функциональность к файлам, открытым на монтируемых NFS?
Ответы:
Краткий ответ - да с оговорками.
Поскольку NFSv3 не имеет состояния, драйвер клиента NFS выполняет это с помощью так называемого «глупого переименования», когда удаленный файл переименовывается во что-то вроде .nfsXXXXXXXXXX. Это обычно работает, но есть несколько предостережений по сравнению с локальной файловой системой. Например, в случае сбоя клиента эти файлы .nfsXXXX не будут удалены, и вам придется их очистить вручную.
Я думаю, что в NFSv4.1 протокол обладает необходимыми функциями для реализации delete-on-last-close без глупого переименования, но я не знаю, реализуют ли еще клиенты / сервер это.
источник