Система сетевой блокировки в NFS работает следующим образом: 1
- Когда приложению необходимо заблокировать локальный файл, оно направляет свой запрос ядру с помощью функций lockf, fcntl и flock. 1 Затем ядро обрабатывает запрос на блокировку. 1
- Если приложение на клиенте NFS запрашивает блокировку для удалённого файла, диспетчер сетевой блокировки генерирует вызов удаленной процедуры (RPC). 1
- Когда клиент получает начальный запрос на удалённую блокировку, он с помощью демона rpc.statd регистрирует этот запрос на сервере. 1 То же самое верно и для диспетчера сетевой блокировки на сервере: при получении начального запроса от клиента, сервер зарегистрирует его на клиенте с помощью монитора состояния локальной сети. 1
- Программа lockd устанавливает и снимает блокировку файлов по запросу, а демон statd следит за состоянием блокировок и работоспособностью NFS-сервера. 2
В сети демон statd сервера NFS обменивается информацией с демонами statd на других компьютерах. 2 Демон lockd посылает запросы демону statd для установления статуса компьютеров, взаимодействующих с ним. 2
В случае выхода сервера из строя клиенты с заблокированными файлами должны иметь возможность восстановить блокировку. 1 В случае выхода из строя клиента сервер должен сохранять блокировку файлов до восстановления клиента. 1