
10.1.
Сетевая файловая система компании Sun 631
деленными файловыми системами состояла в том, что серверы не сохраняли ин-
формацию о состоянии. Другими словами, протокол NFS не требовал, чтобы сер-
веры как-то поддерживали состояние клиента. Этот подход соблюдался в верси-
ях 2 и 3, но был пересмотрен в версии 4.
Основное преимущество серверов без фиксации состояния
—
это их простота.
Так, например, если на сервере без фиксации состояния происходит сбой, то,
в
сущности, у нас пет необходимости проходить фазу восстановления, чтобы пе-
ревести сервер в предшествовавшее сбою состояние. Однако, как мы видели в раз-
деле 7.3, следует учитывать, что клиент в этом случае вообще не может претен-
довать на какую-либо гарантию обработки запроса. Позже мы еще вернемся
к вопросу отказоустойчивости NFS.
Подход без фиксации состояния в практических реализациях протокола NFS
полностью соблюдался не всегда. Так, например, блокировку файла достаточно
сложно осуществить на сервере без фиксации состояния. В случае NFS для ре-
шения этой проблемы использовался специальный менеджер блокировок. Кроме
того,
протоколы идентификации также нуждаются в том, чтобы сервер поддер-
живал состояние своих клиентов. Тем не менее серверы NFS обычно разрабаты-
вались так, чтобы хранить минимальный объем информации о своих клиентах.
В
большинстве случаев эта схема работала достаточно успешно.
Начиная с версии 4, разработчики NFS отказались от подхода без фиксации
состояния, хотя протокол по-прежнему разрабатывался так, чтобы серверу не при-
ходилось хранить слишком большой объем информации о клиентах. Кроме того,
о чем мы уже упомянули, для перехода к серверам с фиксацией состояния были
и другие причины. Ыаиболее важная из них состояла в том, что NFS версии 4
предполагалось использовать в глобальных сетях. При этом необходимо было
сделать так, чтобы клиенты могли активно использовать кэширование, что, в свою
очередь, требовало эффективных протоколов поддержания непротиворечивости
кэша. Подобные протоколы часто хорошо работают в комбинации с сервером,
который обеспечивает хранение определенной информации о файлах, используе-
мых его клиентами. Так, например, сервер может назначить аренду каждому
файлу, доступ к которому запрашивает клиент, предлагая клиенту исключитель-
ное право на чтение или запись в файл на весь срок аренды с возможностью ее
продления. Мы еще вернемся к этому вопросу.
Наиболее очевидное отличие от предыдущей версии NFS состоит в поддерж-
ке операции open, которая изначально требует наличия у сервера информации
о
состоянии. Кроме того, NFS поддерживает процедуры обратного вызова, при
помощи которых сервер может выполнить вызов RPC на клиенте. Понятно, что
обратный вызов также требует, чтобы сервер отслеживал состояние своих кли-
ентов.
10.1.4. Именование
Как и во многих других распределенных файловых системах, именование играет
в NFS важную роль. Основная идея, лежащая в основе модели именования NFS,
состоит в том, чтобы предоставить клиентам абсолютно прозрачный доступ к уда-