В документации NFSv3 много говорится о концепции «безопасной асинхронной записи» (последний пункт A1):
http://nfs.sourceforge.net/#section_a
Это НЕ относится к параметру sync / async в файле экспорта сервера (поскольку параметр async в файле экспорта НЕ безопасен). Насколько я понимаю, безопасная асинхронная запись - это гибрид между синхронизацией и асинхронным экспортом. Это позволяет серверу отвечать обратно без немедленного сброса в стабильное хранилище, но клиент не удалит запрос на запись из кеша, пока не получит подтверждение, что он был сохранен в стабильном хранилище (а также обнаружит, теряет ли сервер питание / перезагружается. ). Я считаю, что этот параметр установлен на стороне клиента, но я не встречал никакой документации, которая показывала бы, как это сделать. Любые идеи?
Это просто серия вызовов WRITE с COMMIT или WRITE с синхронизацией. Поведение контролируется командой write + fsync приложения или когда виртуальная машина решила перезапустить страницы памяти. Параметры экспорта async / sync могут обеспечить поведение сервера, например сервер всегда может синхронизировать данные, даже если клиент этого не запрашивал. Проверьте http://tools.ietf.org/html/rfc1813#section-3.3.7 и http://tools.ietf.org/html/rfc1813#section-3.3.21 Больше подробностей.