Сервер экспортировал файловую систему ufs, монтированную клиентом. Если процесс на клиентской машине производит системный вызов, относящийся к файлу NFS, независимая от файловой системы часть кода идентифицирует vnode файла и выполняет
соответствующую этому объекту операцию.
Также может иметь смысл заглянуть на сайт mtarenda.ru, ведь именно там можно узнать много нового на тему http://www.mtarenda.ru/arenda_ekskavatora. Тема аренда экскаватора может показаться на первый взгляд незначительной и даже не тематичной. Но стоит посетить сайт mtarenda.ru, и тема аренда экскаватора начинает проявлять себя с неожиданной стороны и вызывает всё больший интерес. Дело в том, что тема аренда экскаватора очень подробно представлена на сайте mtarenda.ru. Трудно найти более детальное освещение темы аренда экскаватора чем это сделано на сайте mtarenda.ru. Спасибо сайту mtarenda.ru за такое доскональное преподнесение темы аренда экскаватора.
В случае NFS зависимая от файловой системы структура данных, ассоциированная с vnode, называется mode («для удаленного узла»), Поле v_op объекта vnode указывает на вектор клиентских процедур NFS (структуру vnodeops), реализующих различные операции над vnode. Процедуры производят создание запросов RPC и отправку их серверу. Вызывающий клиентский процесс блокируется до получения ответа от сервера. Сервер обслуживает запрос путем идентификации vnode соответствующего локального файла и активизации его структуры vnodeops, реализованной для конкретной локальной файловой системы (в рассматриваемом примере — ufs).
Сервер завершает обработку запроса, упаковывает результаты в ответное сообщение RPC и пересылает его обратно клиенту.
Получателем ответа является процесс, работающий на уровне RPC, который разбудит ожидающий процесс. Процесс, в свою очередь, завершит выполнение операции над клиентским объектом vnode и оставшейся части системного вызова и возвратит управление системой пользователю.
Пример показывает необходимость поддержки клиентом локального объекта vnode каждого активного файла NFS. Такой подход позволяет осуществлять более точные связи между операциями над vnode и клиентскими функциями NFS. Он также позволяет клиенту кэшировать атрибуты удаленных файлов, производя некоторые операции без доступа к серверу. Вопросы, связанные с кэшированием в клиентской системе, обсуждаются в разделе 10.7.2.
Дескрипторы файлов
При создании запроса NFS клиентом ему необходимо указать серверу, какой из файлов ему необходим для доступа. Передача полного имени при каждом доступе может оказаться слишком медленной. Вместо этого протокол NFS ассоциирует с каждым файлом или каталогом объект, называемый дескриптором файла (file handle). Сервер создает такой дескриптор при первом доступе к файлу или при его создании путем запросов LOOKUP, CREATE или MKDIR. Сервер возвращает дескриптор клиенту в ответном сообщении, после чего тот может использовать его в последующих операциях над файлом.
Клиент воспринимает дескриптор файла как закрытый 32-разрядный объект и не интерпретирует его содержимое. Сервер создает дескриптор на свое усмотрение, а также осуществляет уникальную связь между файлами и их дескрипторами. Обычно дескриптор содержит идентификатор файловой системы (однозначно идентифицирующий локальную файловую систему), номер индексного дескриптора файла и генерируемый номер для указанного индексного дескриптора. Он может хранить также индексный дескриптор и его генерируемый номер для экспортируемого каталога, через который осуществляется доступ к файлу.
Генерируемый номер был добавлен в индексный дескриптор для решения некоторых проблем, относящихся к системе NFS. Существует вероятность удаления файла и повторного использования его индексного дескриптора между первоначальным клиентским доступом к файлу (обычно происходящем через вызов LOOKUP, возвращающим дескриптор файла) и запросом ввода-вывода по отношению к этому файлу. Следовательно, сервер должен обладать возможностями определения факта устаревания дескриптора, присланного клиентом. Это реализовано путем автоувеличения генерируемого номера индексного дескриптора, производимого при каждом освобождении соответствующего индексного дескриптора (при удалении ассоциированного с ним файла). Сервер таким образом может распознать запросы, относящиеся к уже не существующим файлам, и ответить на них отправкой ошибки ESTALE (устаревший дескриптор файла).
Опубликовал katy
July 12 2015 06:51:14 ·
0 Комментариев ·
2920 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.